SVR5
start(D2)
start --
initialize a static device driver (with interrupts enabled)
Synopsis (Not in current DDI version)
void prefixstart(void);
Description
The driver's
start( )
entry point routine is called during system initalization
(after system services are available and interrupts have been enabled)
to initialize the driver and the devices it controls.
Return values
None
Usage
This entry point is optional.
If a driver is dynamically loaded,
this entry point routine will not be called.
The
start( )
routine is a named entry point
and must be defined as a global symbol.
The start routine can perform the following types of activities:
-
initialize data structures
-
allocate buffers for private buffering schemes
-
map the device into virtual address space
-
initialize hardware
-
initialize timeouts
A driver that needs to perform setup and initialization tasks
that must take place before system services are available
and interrupts are enabled
should use the
init(D2)
routine to perform such tasks.
The start routine should be used
for all other initialization tasks.
start routines for dynamically loadable modules
are not called during system startup
as they are for statically linked modules.
A loadable module's initialization
is performed by its
_load(D2)
routine,
which is called each time the module is loaded
into a running system.
However, if the processing done by a module's start routine
when the module is configured as a statically linked module
can also be used when the module is configured as
a loadable module,
the module can call its
start( )
routine from its
_load(D2)
routine.
Context and synchronization
Non-blockable
context.
Interrupts are enabled
but processes are not yet or no longer available.
Hardware applicability
All
Version applicability
ddi:
1, 2, 3, 4, 5, 5mp, 6, 6mp, 7, 7mp, 7.1, 7.1mp
External dependencies
Named entry point routines must be declared
in the driver's
Master(DSP/4dsp)
file.
The declaration for this entry point is
$entry start.
Differences between versions
Starting with DDI version 8, the
start(D2)
entry point routine is no longer supported.
Instead, all driver initialization is done in the
_load(D2)
entry point routine.
References
init(D2),
_load(D2)
19 June 2005
© 2005 The SCO Group, Inc. All rights reserved.
OpenServer 6 and UnixWare (SVR5) HDK - June 2005