intro.D2(D2)

intro.D2 - introduction to driver entry point routines

As shipped in IRIX 6.5.7. Unchanged since IRIX 6.5.

NAME
     intro.D2 - introduction to driver entry point routines

SYNOPSIS
     #include <sys/types.h>
     #include <sys/ddi.h>

DESCRIPTION
     This section describes the routines a developer needs to include in a
     device driver or STREAMS module.

USAGE
     The routines described in this section are called ``entry point
     routines'' because they provide the interfaces that the kernel needs from
     drivers and STREAMS modules.  The kernel calls these routines when
     needed.  Some are called at well-defined times, such as system start up
     and system shut down.  Others are called as a result of I/O-related
     system calls or external events, such as interrupts from peripheral
     devices.

     Each driver or module is organized into two logical parts: the base level
     and the interrupt level.  The base level interacts with the kernel and
     the device on behalf of processes performing I/O operations.  The
     interrupt level interacts with the device and the kernel as a result of
     an event such as data arrival, and usually cannot be associated with any
     particular process.

     Each driver or module is uniquely identified by a prefix string specified
     in its configuration file.  The name of all the driver-supplied routines
     and global variables should begin with this prefix.  This will reduce the
     chance of a symbol collision with another driver or module.  Any private
     routines defined by a driver  or module that are not entry point routines
     should be declared as static.  Also, any global variables that are
     private to the driver or module should be declared as static.

     In general, any number of instances of the same driver (or module) entry
     point routine can be running concurrently.  It is the responsibility of
     the driver or module to synchronize access to its private data
     structures.