Introduction to DASD, SCSI, and CD-ROM Programming Interfaces

From EDM2
Jump to: navigation, search
Storage Device Driver Reference
  1. About This Book
  2. Introduction to DASD, SCSI, and CD-ROM Programming Interfaces
  3. Installation of OS/2, DASD, SCSI, and CD-ROM Device Drivers
  4. Adapter Device Driver Development Considerations
  5. DASD, SCSI, and CD-ROM Device Manager Interface Specification
  6. Error Handling
  7. Adapter Device Driver Command-Line Parameters
  8. DASD IOCtl Device Driver Test Tool
  9. Optical IOCtl Device Driver Test Tool
  10. Using Filter Device Drivers
  11. Library and Services
  12. CD-ROM Device Manager Interface Specification
  13. CD-ROM Device Driver Test Tool
  14. Building an OS/2 Virtual Disk Driver
  15. OS2DASD.DMD - Technical Reference
  16. Boot Record Architecture
  17. Extended Device Driver Interface Specification
  18. I/O Request Block - C Definitions
  19. OS/2 SCSI Device Driver Interface Specification
  20. Advanced SCSI Programming Interface (ASPI) OS/2 Specification
  21. Adapter Device Driver Interface Questions and Answers
  22. Device Driver Test Tool (DDTT)
  23. Glossary

Reprint Courtesy of International Business Machines Corporation, © International Business Machines Corporation

This reference defines the OS/2* 2.0 (and later) programming interfaces to support original equipment manufacturer (OEM) direct access storage devices (DASD), small computer system interface (SCSI) devices, and compact disc read only memory (CD-ROM) devices.

The programming interfaces described in this reference provide the following benefits:

  • Device drivers can be written in the C programming language.
  • The development of new DASD, SCSI, and CD-ROM support for unique device interfaces is expedited by reducing the amount of new code required and the complexity of that code.
  • Facilitate development of a new DASD, SCSI, or CD-ROM driver for a specific bus interface.
  • Relatively complex OS/2 kernel interfaces are replaced with a single interface.
  • Independent development organizations are better able to reuse existing DASD device driver code.
  • OS/2 2.0 (and later) is better equipped for installing, starting, and operating on a broad range of Intel** 80386SX-compatible workstations.

The following figure illustrates the organization of the new code:

Storage-img0.gif

The following types of device drivers are included in this reference:

  • Device managers
  • Adapter device drivers
  • Filter device drivers

A device manager (DM) is a hardware-independent module that services the standard OS/2 request packet interface. An adapter device driver is a hardware-dependent module and is a member of the lowest layer in the device-driver hierarchy. The adapter device driver to device manager interface is designed such that an adapter device driver is little more than a state machine responsible for moving blocks of I/O between system memory and a target device.

A filter device driver differs from an adapter device driver in that it normally does not manage hardware directly. See #Filter Device Drivers and #Using Filter Device Drivers for details about filter device drivers.

Device Managers

Device managers provide a uniform interface between their clients and adapter device drivers. Device manager clients normally are an OS/2 installable file system or the OS/2 kernel but can be other device drivers.

The interface between a device manager and the adapter device drivers managed is defined in this reference. The interface between device managers and the clients they service is defined by the client's interface specification.

IBM provides the devices managers shown in the following table:

Device Manager Client Client Specification
OS2DASD.DMD OS/2 File Systems OS/2 Physical Device Driver Reference
OS2SCSI.DMD SCSI.SYS option drivers OS/2 SCSI Device Driver Specification
OS2ASPI.DMD ASPI option drivers Advanced SCSI Programming Interface
OS2CDROM.DMD CD-ROM File System OS/2 CD-ROM Interface

Adapter Device Drivers

Adapter device drivers provide a uniform software interface to the hardware devices they manage. A device driver's external interface is defined in this reference.

Adapter device drivers for the following industry-standard interfaces are included in the OS/2 2.0 (and later) product:

Device Driver Supported Devices
IBM1S506.ADD
IBM1FLPY.ADD ISA removable media drives
IBM2ADSK.ADD ABIOS fixed drives
IBM2SCSI.ADD ABIOS SCSI adapters
IBM2FLPY.ADD ABIOS removable media drives
IBMINT13.I13 INT 13H BIOS DASD devices

Additional adapter device drivers for other OEM interfaces might be included in the OS/2 operating system.

Filter Device Drivers

Filter device drivers are a special class of device drivers that provide the following:

  • Generic value-added services, such as data stripping or encryption
  • Device-specific services, such as adjusting and altering the command stream between a device manager and an adapter device driver to support a particular type of device

The interfaces between device managers and filter device drivers are identical to the interfaces between device managers and ordinary adapter device drivers. Filter drivers differ from ordinary drivers in that they normally do not manage hardware directly; instead, they monitor the stream of commands between a device manager and regular adapter device drivers.

Filter device drivers to support the following devices are included in the OS/2 2.0 (and later) product:

Filter Supported Devices
HITCDS1.FLT
TOSHCDS1.FLT
NECCDS1.FLT
SONYCDS1.FLT