intro(D2)intro(D2)NAMEintro.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.
Page 1