init(D2)init(D2)NAME
init,edtinit,start - initialize drivers and their devices
SYNOPSIS
void prefixinit(void);
void prefixedtinit(struct edt *);
void prefixstart(void);
DESCRIPTION
The init, edtinit and start routines execute during system initialization
to initialize drivers and the devices they control.
Return Values
None
USAGE
These entry points are optional.
Although init, edtinit and start routines all perform initialization
tasks, they execute at different times during system start-up. For this
reason, they should be used to handle different types of initialization
tasks. All of these routines are called after interrupts have been
enabled.
init routines:
execute during system initialization
handle any driver and device setup and initialization that must take
place before I/O is initialized
typically perform tasks such as: inititalize semaphores and locks,
malloc memory for driver data structures, initialize driver data
structures, etc.
edtinit routines:
exist for drivers that use VECTOR lines in the system(4) file
are executed immediately after the init routines
may be called multiple times per driver, once for each controller
probe the given device and perform device specific initialization
start routines:
execute after all I/O and system services are initialized
handle all driver and device setup and initialization that can take
place after system services are initialized (most driver setup and
initialization tasks can be performed at this time, using a start
Page 1
init(D2)init(D2)
routine)
handle any driver and device setup and initialization that can only
take place after system services are initialized
init, edtinit and start routines for dynamically loadable modules are not
called during system start-up as they are for statically linked modules.
A loadable module's initialization is called each time the module is
loaded into a running system.
Synchronization Constraints
Functions that can result in the caller sleeping, or that require user
context, such as sleep(D3), may not be called from init, edtinit or
start. Any function that provides a flag to prevent it from sleeping
must be called such that the function does not sleep.
REFERENCESstart(D2)
Page 2