intro.D2(D2)
intro.D2 - introduction to driver entry point routines
Showing IRIX 6.5.30 (default release). 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.