man Pages(9F): DDI and DKI Kernel Functions
  Rechercher uniquement dans ce livre
Télécharger cet ouvrage au format PDF

NAME

Intro, intro - introduction to DDI/DKI functions

DESCRIPTION

Section 9F describes the kernel functions available for use by device drivers.
In this section, the information for each driver function is organized under the following headings:
NAME summarizes the function's purpose.
SYNOPSIS shows the syntax of the function's entry point in the source code. #include directives are shown for required headers.
INTERFACE LEVEL describes any architecture dependencies.
ARGUMENTS describes any arguments required to invoke the function.
DESCRIPTION describes general information about the function.
RETURN VALUES describes the return values and messages that can result from invoking the function.
CONTEXT indicates from which driver context (user, kernel, interrupt, or high-level interrupt) the function can be called.
A driver function has user context if it was directly invoked because of a user thread. The read (9E)entry point of the driver, invoked by a read (2)system call, has user context.
A driver function has kernel context if was invoked by some other part of the kernel. In a block device driver, the strategy(9E) entry point may be called by the page daemon to write pages to the device. The page daemon has no relation to the current user thread, so in this case strategy(9E) has kernel context.
Interrupt context is kernel context, but also has an interrupt level associated with it. Driver interrupt routines have interrupt context.
High-level interrupt context is a more restricted form of interrupt context. If ddi_intr_hilevel(9F) indicates that an interrupt is high-level, driver interrupt routines added for that interrupt with ddi_add_intr(9F) run in high-level interrupt context. These interrupt routines are only allowed to call ddi_trigger_softintr(9F), mutex_enter(9F) and mutex_exit(9F). Furthermore, mutex_enter(9F) and mutex_exit(9F) may only be called on mutexes initialized with the ddi_iblock_cookie returned by ddi_add_intr(9F).
SEE ALSO indicates functions that are related by usage and sources, and which can be referred to for further information.
EXAMPLES shows how the function can be used in driver code.
Every driver MUST include <sys/ddi.h> and <sys/sunddi.h>, in that order, and as the last files the driver includes.

STREAMS Kernel Function Summary

The following table summarizes the STREAMS functions described in this section.
Routine                            Type

adjmsg
DDI/DKI
allocb
DDI/DKI
backq
DDI/DKI
bcanput
DDI/DKI
bcanputnext
DDI/DKI
bufcall
DDI/DKI
canput
DDI/DKI
canputnext
DDI/DKI
clrbuf
DDI/DKI
copyb
DDI/DKI
copymsg
DDI/DKI
datamsg
DDI/DKI
dupb
DDI/DKI
dupmsg
DDI/DKI
enableok
DDI/DKI
esballoc
DDI/DKI
esbbcall
DDI/DKI
flushband
DDI/DKI
flushq
DDI/DKI
freeb
DDI/DKI
freemsg
DDI/DKI
freezestr
DDI/DKI
getq
DDI/DKI
insq
DDI/DKI
linkb
DDI/DKI
msgdsize
DDI/DKI
msgpullup
DDI/DKI
mt-streams
Solaris DDI
noenable
DDI/DKI
OTHERQ
DDI/DKI
pullupmsg
DDI/DKI
put
DDI/DKI
putbq
DDI/DKI
putctl
DDI/DKI
putctl1
DDI/DKI
putnext
DDI/DKI
putnextctl
DDI/DKI
putq
DDI/DKI
qbufcall
Solaris DDI
qenable
DDI/DKI
qprocson
DDI/DKI
qprocsoff
DDI/DKI
qreply
DDI/DKI
qsize
DDI/DKI
qtimeout
Solaris DDI
qunbufcall
Solaris DDI
quntimeout
Solaris DDI
qwait
Solaris DDI
qwait_sig
Solaris DDI
qwriter
Solaris DDI
RD
DDI/DKI
rmvb
DDI/DKI
rmvq
DDI/DKI
SAMESTR
DDI/DKI
strlog
DDI/DKI
strqget
DDI/DKI
strqset
DDI/DKI
testb
DDI/DKI
unbufcall
DDI/DKI
unfreezestr
DDI/DKI
unlinkb
DDI/DKI
WR
DDI/DKI
The following table summarizes the functions not specific to STREAMS.
Routine                            Type

ASSERT
DDI/DKI
bcmp
DDI/DKI
bcopy
DDI/DKI
biodone
DDI/DKI
bioerror
Solaris DDI
bioreset
Solaris DDI
biowait
DDI/DKI
bp_mapin
DDI/DKI
bp_mapout
DDI/DKI
brelse
DDI/DKI
btop
DDI/DKI
btopr
DDI/DKI
bzero
DDI/DKI
cmn_err
DDI/DKI
copyin
DDI/DKI
copyout
DDI/DKI
cv_broadcast
Solaris DDI
cv_destroy
Solaris DDI
cv_init
Solaris DDI
cv_signal
Solaris DDI
cv_timedwait
Solaris DDI
cv_wait
Solaris DDI
cv_wait_sig
Solaris DDI
ddi_add_intr
Solaris DDI
ddi_add_softintr
Solaris DDI
ddi_btop
Solaris DDI
ddi_btopr
Solaris DDI
ddi_copyin
Solaris DDI
ddi_copyout
Solaris DDI
ddi_create_minor_node
Solaris DDI
ddi_dev_is_sid
Solaris DDI
ddi_dev_nintrs
Solaris DDI
ddi_dev_nregs
Solaris DDI
ddi_dev_regsize
Solaris DDI
ddi_dma_addr_setup
Solaris DDI
ddi_dma_buf_setup
Solaris DDI
ddi_dma_burstsizes
Solaris DDI
ddi_dma_coff
Solaris SPARC DDI
ddi_dma_curwin
Solaris SPARC DDI
ddi_dma_devalign
Solaris DDI
ddi_dma_free
Solaris DDI
ddi_dma_htoc
Solaris SPARC DDI
ddi_dma_movwin
Solaris SPARC DDI
ddi_dma_nextseg
Solaris DDI
ddi_dma_nextwin
Solaris DDI
ddi_dma_segtocookie
Solaris DDI
ddi_dma_setup
Solaris DDI
ddi_dma_sync
Solaris DDI
ddi_dmae_alloc
Solaris x86 DDI
ddi_dmae_release
Solaris x86 DDI
ddi_dmae_prog
Solaris x86 DDI
ddi_dmae_disable
Solaris x86 DDI
ddi_dmae_enable
Solaris x86 DDI
ddi_dmae_stop
Solaris x86 DDI
ddi_dmae_getcnt
Solaris x86 DDI
ddi_dmae_1stparty
Solaris x86 DDI
ddi_dmae_getlim
Solaris x86 DDI
ddi_enter_critical
Solaris DDI
ddi_exit_critical
Solaris DDI
ddi_ffs
Solaris DDI
ddi_fls
Solaris DDI
ddi_get_cred
Solaris DDI
ddi_get_driver_private
Solaris DDI
ddi_get_instance
Solaris DDI
ddi_getlongprop
Solaris DDI
ddi_getlongprop_buf
Solaris DDI
ddi_get_name
Solaris DDI
ddi_get_parent
Solaris DDI
ddi_getprop
Solaris DDI
ddi_getproplen
Solaris DDI
ddi_get_soft_state
Solaris DDI
ddi_intr_hilevel
Solaris DDI
ddi_iomin
Solaris DDI
ddi_iopb_alloc
Solaris DDI
ddi_iopb_free
Solaris DDI
ddi_map_regs
Solaris DDI
ddi_mapdev
Solaris DDI
ddi_mapdev_intercept
Solaris DDI
ddi_mapdev_nointercept
Solaris DDI
ddi_mem_alloc
Solaris DDI
ddi_mem_free
Solaris DDI
ddi_peekc
Solaris DDI
ddi_peekd
Solaris DDI
ddi_peekl
Solaris DDI
ddi_peeks
Solaris DDI
ddi_pokec
Solaris DDI
ddi_poked
Solaris DDI
ddi_pokel
Solaris DDI
ddi_pokes
Solaris DDI
ddi_prop_create
Solaris DDI
ddi_prop_modify
Solaris DDI
ddi_prop_op
Solaris DDI
ddi_prop_remove
Solaris DDI
ddi_prop_remove_all
Solaris DDI
ddi_prop_undefine
Solaris DDI
ddi_ptob
Solaris DDI
ddi_remove_intr
Solaris DDI
ddi_remove_minor_node
Solaris DDI
ddi_remove_softintr
Solaris DDI
ddi_report_dev
Solaris DDI
ddi_root_node
Solaris DDI
ddi_segmap
Solaris DDI
ddi_set_driver_private
Solaris DDI
ddi_slaveonly
Solaris DDI
ddi_soft_state
Solaris DDI
ddi_soft_state_fini
Solaris DDI
ddi_soft_state_free
Solaris DDI
ddi_soft_state_init
Solaris DDI
ddi_soft_state_zalloc
Solaris DDI
ddi_trigger_softintr
Solaris DDI
ddi_unmap_regs
Solaris DDI
delay
DDI/DKI
disksort
Solaris DDI
drv_getparm
DDI/DKI
drv_hztousec
DDI/DKI
drv_priv
DDI/DKI
drv_usectohz
DDI/DKI
drv_usecwait
DDI/DKI
free_pktiopb
Solaris DDI
freerbuf
DDI/DKI
geterror
DDI/DKI
getmajor
DDI/DKI
getminor
DDI/DKI
get_pktiopb
Solaris DDI
getrbuf
DDI/DKI
hat_getkpfnum
DKI only
inb
Solaris x86 DDI
inl
Solaris x86 DDI
inw
Solaris x86 DDI
kmem_alloc
DDI/DKI
kmem_free
DDI/DKI
kmem_zalloc
DDI/DKI
kstat_create
Solaris DDI
kstat_delete
Solaris DDI
kstat_install
Solaris DDI
kstat_named_init
Solaris DDI
kstat_queue
Solaris DDI
kstat_runq_enter
Solaris DDI
kstat_runq_exit
Solaris DDI
kstat_runq_back_to_waitq
Solaris DDI
kstat_waitq_enter
Solaris DDI
kstat_waitq_exit
Solaris DDI
kstat_waitq_to_runq
Solaris DDI
makecom_g0
Solaris DDI
makecom_g0_s
Solaris DDI
makecom_g1
Solaris DDI
makecom_g5
Solaris DDI
makedevice
DDI/DKI
max
DDI/DKI
min
DDI/DKI
minphys
Solaris DDI
mod_info
Solaris DDI
mod_install
Solaris DDI
mod_remove
Solaris DDI
mutex_destroy
Solaris DDI
mutex_enter
Solaris DDI
mutex_exit
Solaris DDI
mutex_init
Solaris DDI
mutex_owned
Solaris DDI
mutex_tryenter
Solaris DDI
nochpoll
Solaris DDI
nodev
DDI/DKI
nulldev
DDI/DKI
numtos
Solaris DDI
outb
Solaris x86 DDI
outl
Solaris x86 DDI
outw
Solaris x86 DDI
physio
Solaris DDI
pollwakeup
DDI/DKI
proc_ref
Solaris DDI
proc_signal
Solaris DDI
proc_unref
Solaris DDI
ptob
DDI/DKI
repinsb
Solaris x86 DDI
repinsd
Solaris x86 DDI
repinsw
Solaris x86 DDI
repoutsb
Solaris x86 DDI
repoutsd
Solaris x86 DDI
repoutsw
Solaris x86 DDI
rmalloc
DDI/DKI
rmalloc_wait
DDI/DKI
rmallocmap
DDI/DKI
rmfree
DDI/DKI
rmfreemap
DDI/DKI
rw_destroy
Solaris DDI
rw_downgrade
Solaris DDI
rw_enter
Solaris DDI
rw_exit
Solaris DDI
rw_init
Solaris DDI
rw_read_locked
Solaris DDI
rw_tryenter
Solaris DDI
rw_tryupgrade
Solaris DDI
scsi_abort
Solaris DDI
scsi_alloc_consistent_buf
Solaris DDI
scsi_cname
Solaris DDI
scsi_destroy_pkt
Solaris DDI
scsi_dmafree
Solaris DDI
scsi_dmaget
Solaris DDI
scsi_dname
Solaris DDI
scsi_errmsg
Solaris DDI
scsi_free_consistent_buf
Solaris DDI
scsi_hba_attach
Solaris DDI
scsi_hba_detach
Solaris DDI
scsi_hba_fini
Solaris DDI
scsi_hba_init
Solaris DDI
scsi_hba_lookup_capstr
Solaris DDI
scsi_hba_pkt_alloc
Solaris DDI
scsi_hba_pkt_free
Solaris DDI
scsi_hba_probe
Solaris DDI
scsi_hba_tran_alloc
Solaris DDI
scsi_hba_tran_free
Solaris DDI
scsi_ifgetcap
Solaris DDI
scsi_ifsetcap
Solaris DDI
scsi_init_pkt
Solaris DDI
scsi_log
Solaris DDI
scsi_mname
Solaris DDI
scsi_pktalloc
Solaris DDI
scsi_pktfree
Solaris DDI
scsi_poll
Solaris DDI
scsi_probe
Solaris DDI
scsi_resalloc
Solaris DDI
scsi_reset
Solaris DDI
scsi_resfree
Solaris DDI
scsi_rname
Solaris DDI
scsi_slave
Solaris DDI
scsi_sname
Solaris DDI
scsi_sync_pkt
Solaris DDI
scsi_transport
Solaris DDI
scsi_unprobe
Solaris DDI
scsi_unslave
Solaris DDI
sema_destroy
Solaris DDI
sema_init
Solaris DDI
sema_p
Solaris DDI
sema_p_sig
Solaris DDI
sema_tryp
Solaris DDI
sema_v
Solaris DDI
sprintf
Solaris DDI
stoi
Solaris DDI
strchr
Solaris DDI
strcmp
Solaris DDI
strcpy
Solaris DDI
strlen
Solaris DDI
strncmp
Solaris DDI
strncpy
Solaris DDI
swab
DDI/DKI
timeout
DDI/DKI
uiomove
DDI/DKI
untimeout
DDI/DKI
ureadc
DDI/DKI
uwritec
DDI/DKI
vcmn_err
DDI/DKI
vsprintf
Solaris DDI
Name
Appears on Page
Description
adjmsg
adjmsg(9F)
trim bytes from a
message
allocb
allocb(9F)
allocate a message
block
ASSERT                        ASSERT (9F)                       expression verification
assert                        ASSERT (9F)                       expression verification
backq                         backq(9F)                         get pointer to the

queue behind the
current queue
bcanput
bcanput(9F)
test for flow control
in specified priority
band
bcanputnext
canputnext(9F)
test for room in next
module's message queue
bcmp                          bcmp(9F)                          compare two byte arrays
bcopy                         bcopy(9F)                         copy data between

address locations in
the kernel
biodone
biodone(9F)
release buffer after
buffer I/O transfer and
notify blocked threads
bioerror
bioerror(9F)
indicate error in
buffer header
bioreset
bioreset(9F)
reuse a private buffer
header after I/O is
complete
biowait
biowait(9F)
suspend processes
pending completion of
block I/O
bp_mapin
bp_mapin(9F)
allocate virtual
address space
bp_mapout
bp_mapout(9F)
deallocate virtual
address space
brelse
brelse(9F)
return buffer to the
free list
btop
btop(9F)
convert size in bytes
to size in pages (round
down)
btopr
btopr (9F)
convert size in bytes
to size in pages (round
up)
bufcall
bufcall(9F)
call a function when a
buffer becomes
available
bzero
bzero(9F)
clear memory for a
given number of bytes
canput
canput(9F)
test for room in a
message queue
canputnext
canputnext(9F)
test for room in next
module's message queue
clrbuf
clrbuf(9F)
erase the contents of a
buffer
cmn_err
cmn_err(9F)
display an error
message or panic the
system
condvar
condvar(9F)
condition variable
routines
copyb                         copyb(9F)                         copy a message block
copyin                        copyin(9F)                        copy data from a user

program to a driver
buffer
copymsg                       copymsg(9F)                       copy a message
copyout                       copyout(9F)                       copy data from a driver

to a user program
cv_broadcast
condvar(9F)
condition variable
routines
cv_destroy
condvar(9F)
condition variable
routines
cv_init
condvar(9F)
condition variable
routines
cv_signal
condvar(9F)
condition variable
routines
cv_timedwait
condvar(9F)
condition variable
routines
cv_timedwait_sig
condvar(9F)
condition variable
routines
cv_wait
condvar(9F)
condition variable
routines
cv_wait_sig
condvar(9F)
condition variable
routines
datamsg
datamsg(9F)
test whether a message
is a data message
ddi_add_intr
ddi_add_intr(9F)
add and remove an
interrupt handler
ddi_add_softintr
ddi_add_softintr(9F)
add, remove or trigger
a soft interrupt
ddi_btop                      ddi_btop(9F)                      page size conversions
ddi_btopr                     ddi_btop(9F)                      page size conversions
ddi_copyin                    ddi_copyin(9F)                    copy data to a driver

buffer
ddi_copyout                   ddi_copyout(9F)                   copy data from a driver
ddi_create_minor_node         ddi_create_minor_node(9F)         create a minor node for

this device
ddi_dev_is_sid
ddi_dev_is_sid(9F)
tell whether a device
is self-identifying
ddi_dev_nintrs
ddi_dev_nintrs(9F)
return the number of
interrupt
specifications a device
has
ddi_dev_nregs
ddi_dev_nregs(9F)
return the number of
register sets a device
has
ddi_dev_regsize
ddi_dev_regsize(9F)
return the size of a
device's register
ddi_dma_addr_setup
ddi_dma_addr_setup(9F)
easier DMA setup for
use with virtual
addresses
ddi_dma_buf_setup
ddi_dma_buf_setup(9F)
easier DMA setup for
use with buffer
structures
ddi_dma_burstsizes
ddi_dma_burstsizes(9F)
find out the allowed
burst sizes for a DMA
mapping
ddi_dma_coff
ddi_dma_coff(9F)
convert a DMA cookie to
an offset within a DMA
handle
ddi_dma_curwin
ddi_dma_curwin(9F)
report current DMA
window offset and size
ddi_dma_devalign
ddi_dma_devalign(9F)
find DMA mapping
alignment and minimum
transfer size
ddi_dma_free
ddi_dma_free(9F)
release system DMA
resources
ddi_dma_htoc
ddi_dma_htoc(9F)
convert a DMA handle to
a DMA address cookie
ddi_dma_movwin
ddi_dma_movwin(9F)
shift current DMA
window
ddi_dma_nextseg               ddi_dma_nextseg(9F)               get next DMA segment
ddi_dma_nextwin               ddi_dma_nextwin(9F)               get next DMA window
ddi_dma_segtocookie           ddi_dma_segtocookie(9F)           convert a DMA segment

to a DMA address cookie
ddi_dma_setup                 ddi_dma_setup(9F)                 setup DMA resources
ddi_dma_sync                  ddi_dma_sync(9F)                  synchronize CPU and I/O

views of memory
ddi_dmae
ddi_dmae(9F)
system DMA engine
functions
ddi_dmae_1stparty
ddi_dmae(9F)
system DMA engine
functions
ddi_dmae_alloc
ddi_dmae(9F)
system DMA engine
functions
ddi_dmae_disable
ddi_dmae(9F)
system DMA engine
functions
ddi_dmae_enable
ddi_dmae(9F)
system DMA engine
functions
ddi_dmae_getcnt
ddi_dmae(9F)
system DMA engine
functions
ddi_dmae_getlim
ddi_dmae(9F)
system DMA engine
functions
ddi_dmae_prog
ddi_dmae(9F)
system DMA engine
functions
ddi_dmae_release
ddi_dmae(9F)
system DMA engine
functions
ddi_dmae_stop
ddi_dmae(9F)
system DMA engine
functions
ddi_enter_critical
ddi_enter_critical(9F)
enter and exit a
critical region of
control
ddi_exit_critical
ddi_enter_critical(9F)
enter and exit a
critical region of
control
ddi_ffs
ddi_ffs(9F)
find first (last) bit
set in a long integer
ddi_fls
ddi_ffs(9F)
find first (last) bit
set in a long integer
ddi_get_cred
ddi_get_cred(9F)
returns a pointer to
the credential
structure of the
caller.
ddi_get_driver_private
ddi_get_driver_private(9F)
get or set the address
of the device's private
data area
ddi_get_instance
ddi_get_instance(9F)
get device instance
number
ddi_get_name
ddi_get_name(9F)
return the devinfo node
name
ddi_get_parent
ddi_get_parent(9F)
find the parent of a
device information
structure
ddi_get_soft_state
ddi_soft_state(9F)
driver soft state
utility routines
ddi_getlongprop
ddi_prop_op(9F)
get property
information for leaf
device drivers
ddi_getlongprop_buf
ddi_prop_op(9F)
get property
information for leaf
device drivers
ddi_getprop
ddi_prop_op(9F)
get property
information for leaf
device drivers
ddi_getproplen
ddi_prop_op(9F)
get property
information for leaf
device drivers
ddi_intr_hilevel
ddi_intr_hilevel(9F)
indicate interrupt
handler type
ddi_iomin
ddi_iomin(9F)
find minimum alignment
and transfer size for
DMA
ddi_iopb_alloc
ddi_iopb_alloc(9F)
allocate and free
non-sequentially
accessed memory
ddi_iopb_free
ddi_iopb_alloc(9F)
allocate and free
non-sequentially
accessed memory
ddi_map_regs                  ddi_map_regs(9F)                  map or unmap registers
ddi_mapdev                    ddi_mapdev(9F)                    create

driver-controlled
mapping of device
ddi_mapdev_intercept
ddi_mapdev_intercept(9F)
control driver
notification of user
accesses
ddi_mapdev_nointercept
ddi_mapdev_intercept(9F)
control driver
notification of user
accesses
ddi_mem_alloc
ddi_mem_alloc(9F)
allocate and free
sequentially accessed
memory
ddi_mem_free
ddi_mem_alloc(9F)
allocate and free
sequentially accessed
memory
ddi_peek
ddi_peek(9F)
read a value from a
location
ddi_peekc
ddi_peek(9F)
read a value from a
location
ddi_peekd
ddi_peek(9F)
read a value from a
location
ddi_peekl
ddi_peek(9F)
read a value from a
location
ddi_peeks
ddi_peek(9F)
read a value from a
location
ddi_poke
ddi_poke(9F)
write a value to a
location
ddi_pokec
ddi_poke(9F)
write a value to a
location
ddi_poked
ddi_poke(9F)
write a value to a
location
ddi_pokel
ddi_poke(9F)
write a value to a
location
ddi_pokes
ddi_poke(9F)
write a value to a
location
ddi_prop_create
ddi_prop_create(9F)
create, remove, or
modify properties for
leaf device drivers
ddi_prop_modify
ddi_prop_create(9F)
create, remove, or
modify properties for
leaf device drivers
ddi_prop_op
ddi_prop_op(9F)
get property
information for leaf
device drivers
ddi_prop_remove
ddi_prop_create(9F)
create, remove, or
modify properties for
leaf device drivers
ddi_prop_remove_all
ddi_prop_create(9F)
create, remove, or
modify properties for
leaf device drivers
ddi_prop_undefine
ddi_prop_create(9F)
create, remove, or
modify properties for
leaf device drivers
ddi_ptob                      ddi_btop(9F)                      page size conversions
ddi_remove_intr               ddi_add_intr(9F)                  add and remove an

interrupt handler
ddi_remove_minor_node
ddi_remove_minor_node(9F)
remove a minor node for
this dev_info
ddi_remove_softintr
ddi_add_softintr(9F)
add, remove or trigger
a soft interrupt
ddi_report_dev                ddi_report_dev (9F)               announce a device
ddi_root_node                 ddi_root_node(9F)                 get the root of the

dev_info tree
ddi_segmap
ddi_segmap(9F)
map a segment
ddi_set_driver_private
ddi_get_driver_private(9F)
get or set the address
of the device's private
data area
ddi_slaveonly
ddi_slaveonly(9F)
tell if a device is
installed in a slave
access only location
ddi_soft_state
ddi_soft_state(9F)
driver soft state
utility routines
ddi_soft_state_fini
ddi_soft_state(9F)
driver soft state
utility routines
ddi_soft_state_free
ddi_soft_state(9F)
driver soft state
utility routines
ddi_soft_state_init
ddi_soft_state(9F)
driver soft state
utility routines
ddi_soft_state_zalloc
ddi_soft_state(9F)
driver soft state
utility routines
ddi_trigger_softintr
ddi_add_softintr(9F)
add, remove or trigger
a soft interrupt
ddi_unmap_regs                ddi_map_regs(9F)                  map or unmap registers
delay                         delay (9F)                        delay execution for a

specified number of
clock ticks
disksort
disksort(9F)
single direction
elevator seek sort for
buffers
drv_getparm
drv_getparm(9F)
retrieve kernel state
information
drv_hztousec
drv_hztousec(9F)
convert clock ticks to
microseconds
drv_priv
drv_priv(9F)
determine driver
privilege
drv_usectohz
drv_usectohz(9F)
convert microseconds to
clock ticks
drv_usecwait
drv_usecwait(9F)
busy-wait for specified
interval
dupb
dupb(9F)
duplicate a message
block descriptor
dupmsg                        dupmsg(9F)                        duplicate a message
enableok                      enableok(9F)                      reschedule a queue for

service
esballoc
esballoc(9F)
allocate a message
block using a
caller-supplied buffer
esbbcall
esbbcall(9F)
call function when
buffer is available
flushband
flushband(9F)
flush messages for a
specified priority band
flushq
flushq(9F)
remove messages from a
queue
free_pktiopb
get_pktiopb(9F)
allocate/free a SCSI
packet in the iopb map
freeb                         freeb(9F)                         free a message block
freemsg                       freemsg(9F)                       free all message blocks

in a message
freerbuf
freerbuf(9F)
free a raw buffer
header
freezestr
freezestr(9F)
freeze, thaw the state
of a stream
get_pktiopb
get_pktiopb(9F)
allocate/free a SCSI
packet in the iopb map
geterror                      geterror(9F)                      return I/O error
getmajor                      getmajor(9F)                      get major device number
getminor                      getminor(9F)                      get minor device number
getq                          getq (9F)                         get the next message

from a queue
getrbuf                       getrbuf(9F)                       get a raw buffer header
hat_getkpfnum                 hat_getkpfnum(9F)                 get page frame number

for kernel address
inb                           inb(9F)                           read from an I/O port
inl                           inb(9F)                           read from an I/O port
insq                          insq(9F)                          insert a message into a

queue
inw                           inb(9F)                           read from an I/O port
kmem_alloc                    kmem_alloc(9F)                    allocate space from

kernel free memory
kmem_free
kmem_free(9F)
free previously
allocated kernel memory
kmem_zalloc
kmem_zalloc(9F)
allocate and clear
space from kernel free
memory
kstat_create
kstat_create(9F)
create and initialize a
new kstat
kstat_delete
kstat_delete(9F)
remove a kstat from the
system
kstat_install
kstat_install(9F)
add a fully initialized
kstat to the system
kstat_named_init
kstat_named_init(9F)
initialize a named
kstat
kstat_queue
kstat_queue(9F)
update I/O kstat
statistics
kstat_runq_back_to_waitq
kstat_queue(9F)
update I/O kstat
statistics
kstat_runq_enter
kstat_queue(9F)
update I/O kstat
statistics
kstat_runq_exit
kstat_queue(9F)
update I/O kstat
statistics
kstat_waitq_enter
kstat_queue(9F)
update I/O kstat
statistics
kstat_waitq_exit
kstat_queue(9F)
update I/O kstat
statistics
kstat_waitq_to_runq
kstat_queue(9F)
update I/O kstat
statistics
linkb
linkb(9F)
concatenate two message
blocks
makecom
makecom(9F)
make a packet for SCSI
commands
makecom_g0
makecom(9F)
make a packet for SCSI
commands
makecom_g0_s
makecom(9F)
make a packet for SCSI
commands
makecom_g1
makecom(9F)
make a packet for SCSI
commands
makecom_g5
makecom(9F)
make a packet for SCSI
commands
makedevice
makedevice(9F)
make device number from
major and minor numbers
max
max(9F)
return the larger of
two integers
min
min(9F)
return the lesser of
two integers
minphys                       physio(9F)                        perform physical I/O
mod_info                      mod_install(9F)                   add, remove or query a

loadable module
mod_install
mod_install(9F)
add, remove or query a
loadable module
mod_remove
mod_install(9F)
add, remove or query a
loadable module
msgdsize
msgdsize(9F)
return the number of
bytes in a message
msgpullup
msgpullup(9F)
concatenate bytes in a
message
mt-streams                    mt-streams(9F)                    STREAMS multithreading
mutex                         mutex(9F)                         mutual exclusion lock

routines
mutex_destroy
mutex(9F)
mutual exclusion lock
routines
mutex_enter
mutex(9F)
mutual exclusion lock
routines
mutex_exit
mutex(9F)
mutual exclusion lock
routines
mutex_init
mutex(9F)
mutual exclusion lock
routines
mutex_owned
mutex(9F)
mutual exclusion lock
routines
mutex_tryenter
mutex(9F)
mutual exclusion lock
routines
nochpoll
nochpoll(9F)
error return function
for non-pollable
devices.
nodev                         nodev(9F)                         error return function
noenable                      noenable(9F)                      prevent a queue from

being scheduled
nulldev                       nulldev(9F)                       zero return function
numtos                        stoi(9F)                          convert between an

integer and a decimal
string
OTHERQ
OTHERQ(9F)
get pointer to queue's
partner queue
otherq
OTHERQ(9F)
get pointer to queue's
partner queue
outb                          outb(9F)                          write to an I/O port
outl                          outb(9F)                          write to an I/O port
outw                          outb(9F)                          write to an I/O port
physio                        physio(9F)                        perform physical I/O
pollwakeup                    pollwakeup(9F)                    inform a process that

an event has occurred
proc_ref
proc_signal(9F)
send a signal to a
process
proc_signal
proc_signal(9F)
send a signal to a
process
proc_unref
proc_signal(9F)
send a signal to a
process
ptob
ptob(9F)
convert size in pages
to size in bytes
pullupmsg
pullupmsg(9F)
concatenate bytes in a
message
put
put(9F)
call a STREAMS put
procedure
putbq
putbq(9F)
place a message at the
head of a queue
putctl1
putctl1(9F)
send a control message
with a one-byte
parameter to a queue
putctl
putctl(9F)
send a control message
to a queue
putnext
putnext(9F)
send a message to the
next queue
putnextctl1
putnextctl1(9F)
send a control message
with a one-byte
parameter to a queue
putnextctl
putnextctl(9F)
send a control message
to a queue
putq
putq(9F)
put a message on a
queue
qbufcall
qbufcall(9F)
call a function when a
buffer becomes
available
qenable                       qenable(9F)                       enable a queue
qprocsoff                     qprocson(9F)                      enable, disable put and

service routines
qprocson
qprocson(9F)
enable, disable put and
service routines
qreply
qreply (9F)
send a message on a
stream in the reverse
direction
qsize
qsize(9F)
find the number of
messages on a queue
qtimeout
qtimeout(9F)
execute a function
after a specified
length of time
qunbufcall
qunbufcall(9F)
cancel a pending
qbufcall request
quntimeout
quntimeout(9F)
cancel previous
qtimeout function call
qwait                         qwait(9F)                         STREAMS wait routines
qwait_sig                     qwait(9F)                         STREAMS wait routines

qwriter
qwriter(9F)
asynchronous STREAMS
perimeter upgrade
RD
RD(9F)
get pointer to the read
queue
rd
RD(9F)
get pointer to the read
queue
repinsb                       inb(9F)                           read from an I/O port
repinsd                       inb(9F)                           read from an I/O port
repinsw                       inb(9F)                           read from an I/O port
repoutsb                      outb(9F)                          write to an I/O port
repoutsd                      outb(9F)                          write to an I/O port
repoutsw                      outb(9F)                          write to an I/O port
rmalloc                       rmalloc(9F)                       allocate space from a

resource map
rmalloc_wait
rmalloc_wait(9F)
allocate space from a
resource map, wait if
necessary
rmallocmap
rmallocmap(9F)
allocate and free
(respectively) resource
maps
rmfree
rmfree(9F)
free space back into a
resource map
rmfreemap
rmallocmap(9F)
allocate and free
(respectively) resource
maps
rmvb
rmvb(9F)
remove a message block
from a message
rmvq
rmvq(9F)
remove a message from a
queue
rw_destroy
rwlock(9F)
readers/writer lock
functions
rw_downgrade
rwlock(9F)
readers/writer lock
functions
rw_enter
rwlock(9F)
readers/writer lock
functions
rw_exit
rwlock(9F)
readers/writer lock
functions
rw_init
rwlock(9F)
readers/writer lock
functions
rw_read_locked
rwlock(9F)
readers/writer lock
functions
rw_tryenter
rwlock(9F)
readers/writer lock
functions
rw_tryupgrade
rwlock(9F)
readers/writer lock
functions
rwlock
rwlock(9F)
readers/writer lock
functions
SAMESTR
SAMESTR (9F)
test if next queue is
in the same stream
samestr
SAMESTR (9F)
test if next queue is
in the same stream
scsi_abort                    scsi_abort(9F)                    abort a SCSI command
scsi_alloc_consistent_buf     scsi_alloc_consistent_buf(9F)     allocate an I/O buffer

for SCSI DMA
scsi_cname                    scsi_cname(9F)                    decode a SCSI name
scsi_destroy_pkt              scsi_destroy_pkt(9F)              free an allocated SCSI

packet and its DMA
resource
scsi_dmafree
scsi_dmaget(9F)
SCSI dma utility
routines
scsi_dmaget
scsi_dmaget(9F)
SCSI dma utility
routines
scsi_dname                    scsi_cname(9F)                    decode a SCSI name
scsi_errmsg                   scsi_errmsg(9F)                   display a SCSI request

sense message
scsi_free_consistent_buf
scsi_free_consistent_buf(9F)
free a previously
allocated SCSI DMA I/O
buffer
scsi_hba_attach
scsi_hba_attach(9F)
SCSI HBA attach and
detach routines
scsi_hba_detach
scsi_hba_attach(9F)
SCSI HBA attach and
detach routines
scsi_hba_fini
scsi_hba_init(9F)
SCSI Host Bus Adapter
system initialization
and completion routines
scsi_hba_init
scsi_hba_init(9F)
SCSI Host Bus Adapter
system initialization
and completion routines
scsi_hba_lookup_capstr
scsi_hba_lookup_capstr(9F)
return index matching
capability string
scsi_hba_pkt_alloc
scsi_hba_pkt_alloc(9F)
allocate and free a
scsi_pkt structure
scsi_hba_pkt_free
scsi_hba_pkt_alloc(9F)
allocate and free a
scsi_pkt structure
scsi_hba_probe
scsi_hba_probe(9F)
default SCSI HBA probe
function
scsi_hba_tran_alloc
scsi_hba_tran_alloc(9F)
allocate and free
transport structures
scsi_hba_tran_free
scsi_hba_tran_alloc(9F)
allocate and free
transport structures
scsi_ifgetcap
scsi_ifgetcap(9F)
get/set SCSI transport
capability
scsi_ifsetcap
scsi_ifgetcap(9F)
get/set SCSI transport
capability
scsi_init_pkt
scsi_init_pkt(9F)
prepare a complete SCSI
packet
scsi_log
scsi_log(9F)
display a
SCSI-device-related
message
scsi_mname                    scsi_cname(9F)                    decode a SCSI name
scsi_pktalloc                 scsi_pktalloc(9F)                 SCSI packet utility

routines
scsi_pktfree
scsi_pktalloc(9F)
SCSI packet utility
routines
scsi_poll
scsi_poll(9F)
run a polled SCSI
command on behalf of a
target driver
scsi_probe
scsi_probe(9F)
utility for probing a
scsi device
scsi_resalloc
scsi_pktalloc(9F)
SCSI packet utility
routines
scsi_reset
scsi_reset(9F)
reset a SCSI bus or
target
scsi_resfree
scsi_pktalloc(9F)
SCSI packet utility
routines
scsi_rname                    scsi_cname(9F)                    decode a SCSI name
scsi_slave                    scsi_slave(9F)                    utility for SCSI target

drivers to establish
the presence of a
target
scsi_sname                    scsi_cname(9F)                    decode a SCSI name
scsi_sync_pkt                 scsi_sync_pkt(9F)                 synchronize CPU and I/O

views of memory
scsi_transport
scsi_transport(9F)
request by a SCSI
target driver to start
a command
scsi_unprobe
scsi_unprobe(9F)
free resources
allocated during
initial probing
scsi_unslave
scsi_unprobe(9F)
free resources
allocated during
initial probing
sema_destroy                  semaphore (9F)                    semaphore functions
sema_init                     semaphore (9F)                    semaphore functions
sema_p                        semaphore (9F)                    semaphore functions
sema_p_sig                    semaphore (9F)                    semaphore functions
sema_tryp                     semaphore (9F)                    semaphore functions
sema_v                        semaphore (9F)                    semaphore functions
semaphore                     semaphore (9F)                    semaphore functions
sprintf                       sprintf(9F)                       format characters in

memory
stoi
stoi(9F)
convert between an
integer and a decimal
string
strchr
strchr(9F)
find a character in a
string
strcmp
strcmp(9F)
compare two null
terminated strings.
strcpy
strcpy(9F)
copy a string from one
location to another.
strlen
strlen(9F)
determine the number of
non-null bytes in a
string.
strlog
strlog(9F)
submit messages to the
log driver
strncmp
strcmp(9F)
compare two null
terminated strings.
strncpy
strcpy(9F)
copy a string from one
location to another.
strqget
strqget(9F)
get information about a
queue or band of the
queue
strqset
strqset(9F)
change information
about a queue or band
of the queue
swab
swab(9F)
swap bytes in 16-bit
halfwords
testb
testb(9F)
check for an available
buffer
timeout
timeout(9F)
execute a function
after a specified
length of time
uiomove
uiomove(9F)
copy kernel data using
uio structure
unbufcall
unbufcall(9F)
cancel a pending
bufcall request
unfreezestr
freezestr(9F)
freeze, thaw the state
of a stream
unlinkb
unlinkb(9F)
remove a message block
from the head of a
message
untimeout
untimeout(9F)
cancel previous timeout
function call
ureadc
ureadc(9F)
add character to a uio
structure
uwritec
uwritec(9F)
remove a character from
a uio structure
vcmn_err
cmn_err(9F)
display an error
message or panic the
system
vsprintf
vsprintf(9F)
format characters in
memory
WR
WR(9F)
get pointer to the
write queue for this
module or driver
wr
WR(9F)
get pointer to the
write queue for this
module or driver