init(D2DK) —
.IX \f4init\fP(D2DK)
NAME
init − initialize a device
SYNOPSIS
void prefixinit();
DESCRIPTION
init and start(D2DK) routines are used to initialize drivers and the devices they control. init routines are executed during system initialization, and can be used in drivers that do not require system services to be initialized. start routines are executed after system services are enabled.
init routines can perform functions such as:
allocating memory for private buffering schemes
mapping a device into virtual address space
initializing hardware (for example, system generation or resetting the board)
Functions that may result in the caller sleeping, or that require user context, such as SV_WAIT(D3DK), may not be called. Any function that provides a flag to prevent it from sleeping must be called such that the function does not sleep. Also, init routines are executed before interrupts are enabled.
The following kernel functions can be called from the driver’s init routine:
ASSERT
bcopy
btop/btopr
bzero
cmn_err
drv_getparm
drv_hztousec
drv_usectohz
drv_usecwait
etoimajor
getemajor
geteminor
getmajor
getminor
inb/inl/inw
itoemajor
kmem_alloc
kmem_free
kmem_zalloc
LOCK_ALLOC
makedevice
max/min
rmalloc
rmallocmap
rmfreemap
rmfree
RWLOCK_ALLOC
SLEEP_ALLOC
SV_ALLOC
vtop
NOTES
This entry point is optional.
RETURN VALUE
None.
SEE ALSO
start(D2DK)
DDI