start(D2) start(D2)
NAME
start - initialize a device at system start-up
SYNOPSIS
void prefixstart(void);
DESCRIPTION
The start routine is called at system boot time (after system
services are available and interrupts have been enabled) to
initialize drivers and the devices they control.
Return Values
None
USAGE
This entry point is optional.
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 start-up 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 routine.
Copyright 1994 Novell, Inc. Page 1
start(D2) start(D2)
Synchronization Constraints
Functions that can result in the caller sleeping, or that
require user context, such as sleep(D3), may not be called
from the start routine.
REFERENCES
init(D2), _load(D2)
NOTICES
Portability
All processors
Applicability
ddi: 1, 2, 3, 4, 5, 5mp, 6, 6mp, 7, 7mp
Copyright 1994 Novell, Inc. Page 2