92 lines
2.6 KiB
Plaintext
92 lines
2.6 KiB
Plaintext
'\"! tbl | mmdoc
|
|
'\"macro stdmacro
|
|
.if n .pH 386.init @(#)init 43.16 of 11/25/92
|
|
.\" Copyright 1992, 1991 UNIX System Laboratories, Inc.
|
|
.TH init D2
|
|
.IX "\f4init\fP(D2)"
|
|
.SH NAME
|
|
init,edtinit,start \- initialize drivers and their devices
|
|
.SH SYNOPSIS
|
|
.nf
|
|
.na
|
|
.ft 4
|
|
void \f2prefix\fPinit(void);
|
|
void \f2prefix\fPedtinit(struct edt *);
|
|
void \f2prefix\fPstart(void);
|
|
.ft 1
|
|
.ad
|
|
.fi
|
|
.SH DESCRIPTION
|
|
The \f4init\fP, \f4edtinit\fP and \f4start\fP routines execute during
|
|
system initialization to initialize drivers and the devices
|
|
they control.
|
|
.SS "Return Values"
|
|
None
|
|
.SH USAGE
|
|
These entry points are optional.
|
|
.P
|
|
Although \f4init\fP, \f4edtinit\fP and \f4start\fP 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.
|
|
.P
|
|
\f4init\fP routines:
|
|
.RS 0
|
|
.IP
|
|
execute during system initialization
|
|
.IP
|
|
handle any driver and device setup and initialization
|
|
that must take place before I/O is initialized
|
|
.IP
|
|
typically perform tasks such as: inititalize semaphores
|
|
and locks, malloc memory for driver data structures,
|
|
initialize driver data structures, etc.
|
|
.RE
|
|
.P
|
|
\f4edtinit\fP routines:
|
|
.RS 0
|
|
.IP
|
|
exist for drivers that use VECTOR lines in the \f4system\fP(4) file
|
|
.IP
|
|
are executed immediately after the \f4init\fP routines
|
|
.IP
|
|
may be called multiple times per driver,
|
|
once for each controller
|
|
.IP
|
|
probe the given device and perform device specific initialization
|
|
.RE
|
|
.P
|
|
\f4start\fP routines:
|
|
.RS 0
|
|
.IP
|
|
execute after all I/O and system services are initialized
|
|
.IP
|
|
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 \f4start\fP routine)
|
|
.IP
|
|
handle any driver and device setup and initialization
|
|
that can only take place after system services are initialized
|
|
.RE
|
|
.P
|
|
\f4init\fP, \f4edtinit\fP and \f4start\fP 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.
|
|
.SS "Synchronization Constraints"
|
|
Functions that can result in the caller sleeping,
|
|
or that require user context,
|
|
such as \f4sleep\fP(D3), may not be called from \f4init\fP,
|
|
\f4edtinit\fP or \f4start\fP.
|
|
Any function that provides a flag to prevent
|
|
it from sleeping must be called such that the function does not sleep.
|
|
.SH REFERENCES
|
|
\f4start\fP(D2)
|
|
.ad
|