Intro(9F)
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 |
LIST OF FUNCTIONS
NameAppears on PageDescription
ASSERTASSERT(9F)expression verification
OTHERQOTHERQ(9F)get pointer to queue’s
partner queue
RDRD(9F)get pointer to the read
queue
SAMESTRSAMESTR(9F)test if next queue is
in the same stream
WRWR(9F)get pointer to the
write queue for this
module or driver
adjmsgadjmsg(9F)trim bytes from a
message
allocballocb(9F)allocate a message
block
assertASSERT(9F)expression verification
backqbackq(9F)get pointer to the
queue behind the
current queue
bcanputbcanput(9F)test for flow control
in specified priority
band
bcanputnextcanputnext(9F)test for room in next
module’s message queue
bcmpbcmp(9F)compare two byte arrays
bcopybcopy(9F)copy data between
address locations in
the kernel
biodonebiodone(9F)release buffer after
buffer I/O transfer and
notify blocked threads
bioerrorbioerror(9F)indicate error in
buffer header
bioresetbioreset(9F)reuse a private buffer
header after I/O is
complete
biowaitbiowait(9F)suspend processes
pending completion of
block I/O
bp_mapinbp_mapin(9F)allocate virtual
address space
bp_mapoutbp_mapout(9F)deallocate virtual
address space
brelsebrelse(9F)return buffer to the
free list
btopbtop(9F)convert size in bytes
to size in pages (round
down)
btoprbtopr(9F)convert size in bytes
to size in pages (round
up)
bufcallbufcall(9F)call a function when a
buffer becomes
available
bzerobzero(9F)clear memory for a
given number of bytes
canputcanput(9F)test for room in a
message queue
canputnextcanputnext(9F)test for room in next
module’s message queue
clrbufclrbuf(9F)erase the contents of a
buffer
cmn_errcmn_err(9F)display an error
message or panic the
system
condvarcondvar(9F)condition variable
routines
copybcopyb(9F)copy a message block
copyincopyin(9F)copy data from a user
program to a driver
buffer
copymsgcopymsg(9F)copy a message
copyoutcopyout(9F)copy data from a driver
to a user program
cv_broadcastcondvar(9F)condition variable
routines
cv_destroycondvar(9F)condition variable
routines
cv_initcondvar(9F)condition variable
routines
cv_signalcondvar(9F)condition variable
routines
cv_timedwaitcondvar(9F)condition variable
routines
cv_timedwait_sigcondvar(9F)condition variable
routines
cv_waitcondvar(9F)condition variable
routines
cv_wait_sigcondvar(9F)condition variable
routines
datamsgdatamsg(9F)test whether a message
is a data message
ddi_add_intrddi_add_intr(9F)add and remove an
interrupt handler
ddi_add_softintrddi_add_softintr(9F)add, remove or trigger
a soft interrupt
ddi_btopddi_btop(9F)page size conversions
ddi_btoprddi_btop(9F)page size conversions
ddi_copyinddi_copyin(9F)copy data to a driver
buffer
ddi_copyoutddi_copyout(9F)copy data from a driver
ddi_create_minor_nodeddi_create_minor_node(9F)create a minor node for
this device
ddi_dev_is_sidddi_dev_is_sid(9F)tell whether a device
is self-identifying
ddi_dev_nintrsddi_dev_nintrs(9F)return the number of
interrupt
specifications a device
has
ddi_dev_nregsddi_dev_nregs(9F)return the number of
register sets a device
has
ddi_dev_regsizeddi_dev_regsize(9F)return the size of a
device’s register
ddi_dma_addr_setupddi_dma_addr_setup(9F)easier DMA setup for
use with virtual
addresses
ddi_dma_buf_setupddi_dma_buf_setup(9F)easier DMA setup for
use with buffer
structures
ddi_dma_burstsizesddi_dma_burstsizes(9F)find out the allowed
burst sizes for a DMA
mapping
ddi_dma_coffddi_dma_coff(9F)convert a DMA cookie to
an offset within a DMA
handle
ddi_dma_curwinddi_dma_curwin(9F)report current DMA
window offset and size
ddi_dma_devalignddi_dma_devalign(9F)find DMA mapping
alignment and minimum
transfer size
ddi_dma_freeddi_dma_free(9F)release system DMA
resources
ddi_dma_htocddi_dma_htoc(9F)convert a DMA handle to
a DMA address cookie
ddi_dma_movwinddi_dma_movwin(9F)shift current DMA
window
ddi_dma_nextsegddi_dma_nextseg(9F)get next DMA segment
ddi_dma_nextwinddi_dma_nextwin(9F)get next DMA window
ddi_dma_segtocookieddi_dma_segtocookie(9F)convert a DMA segment
to a DMA address cookie
ddi_dma_setupddi_dma_setup(9F)setup DMA resources
ddi_dma_syncddi_dma_sync(9F)synchronize CPU and I/O
views of memory
ddi_dmaeddi_dmae(9F)system DMA engine
functions
ddi_dmae_1stpartyddi_dmae(9F)system DMA engine
functions
ddi_dmae_allocddi_dmae(9F)system DMA engine
functions
ddi_dmae_disableddi_dmae(9F)system DMA engine
functions
ddi_dmae_enableddi_dmae(9F)system DMA engine
functions
ddi_dmae_getcntddi_dmae(9F)system DMA engine
functions
ddi_dmae_getlimddi_dmae(9F)system DMA engine
functions
ddi_dmae_progddi_dmae(9F)system DMA engine
functions
ddi_dmae_releaseddi_dmae(9F)system DMA engine
functions
ddi_dmae_stopddi_dmae(9F)system DMA engine
functions
ddi_enter_criticalddi_enter_critical(9F)enter and exit a
critical region of
control
ddi_exit_criticalddi_enter_critical(9F)enter and exit a
critical region of
control
ddi_ffsddi_ffs(9F)find first (last) bit
set in a long integer
ddi_flsddi_ffs(9F)find first (last) bit
set in a long integer
ddi_get_credddi_get_cred(9F)returns a pointer to
the credential
structure of the
caller.
ddi_get_driver_privateddi_get_driver_private(9F)get or set the address
of the device’s private
data area
ddi_get_instanceddi_get_instance(9F)get device instance
number
ddi_get_nameddi_get_name(9F)return the devinfo node
name
ddi_get_parentddi_get_parent(9F)find the parent of a
device information
structure
ddi_get_soft_stateddi_soft_state(9F)driver soft state
utility routines
ddi_getlongpropddi_prop_op(9F)get property
information for leaf
device drivers
ddi_getlongprop_bufddi_prop_op(9F)get property
information for leaf
device drivers
ddi_getpropddi_prop_op(9F)get property
information for leaf
device drivers
ddi_getproplenddi_prop_op(9F)get property
information for leaf
device drivers
ddi_intr_hilevelddi_intr_hilevel(9F)indicate interrupt
handler type
ddi_iominddi_iomin(9F)find minimum alignment
and transfer size for
DMA
ddi_iopb_allocddi_iopb_alloc(9F)allocate and free
non-sequentially
accessed memory
ddi_iopb_freeddi_iopb_alloc(9F)allocate and free
non-sequentially
accessed memory
ddi_map_regsddi_map_regs(9F)map or unmap registers
ddi_mapdevddi_mapdev(9F)create
driver-controlled
mapping of device
ddi_mapdev_interceptddi_mapdev_intercept(9F)control driver
notification of user
accesses
ddi_mapdev_nointerceptddi_mapdev_intercept(9F)control driver
notification of user
accesses
ddi_mem_allocddi_mem_alloc(9F)allocate and free
sequentially accessed
memory
ddi_mem_freeddi_mem_alloc(9F)allocate and free
sequentially accessed
memory
ddi_peekddi_peek(9F)read a value from a
location
ddi_peekcddi_peek(9F)read a value from a
location
ddi_peekdddi_peek(9F)read a value from a
location
ddi_peeklddi_peek(9F)read a value from a
location
ddi_peeksddi_peek(9F)read a value from a
location
ddi_pokeddi_poke(9F)write a value to a
location
ddi_pokecddi_poke(9F)write a value to a
location
ddi_pokedddi_poke(9F)write a value to a
location
ddi_pokelddi_poke(9F)write a value to a
location
ddi_pokesddi_poke(9F)write a value to a
location
ddi_prop_createddi_prop_create(9F)create, remove, or
modify properties for
leaf device drivers
ddi_prop_modifyddi_prop_create(9F)create, remove, or
modify properties for
leaf device drivers
ddi_prop_opddi_prop_op(9F)get property
information for leaf
device drivers
ddi_prop_removeddi_prop_create(9F)create, remove, or
modify properties for
leaf device drivers
ddi_prop_remove_allddi_prop_create(9F)create, remove, or
modify properties for
leaf device drivers
ddi_prop_undefineddi_prop_create(9F)create, remove, or
modify properties for
leaf device drivers
ddi_ptobddi_btop(9F)page size conversions
ddi_remove_intrddi_add_intr(9F)add and remove an
interrupt handler
ddi_remove_minor_nodeddi_remove_minor_node(9F)remove a minor node for
this dev_info
ddi_remove_softintrddi_add_softintr(9F)add, remove or trigger
a soft interrupt
ddi_report_devddi_report_dev(9F)announce a device
ddi_root_nodeddi_root_node(9F)get the root of the
dev_info tree
ddi_segmapddi_segmap(9F)map a segment
ddi_set_driver_privateddi_get_driver_private(9F)get or set the address
of the device’s private
data area
ddi_slaveonlyddi_slaveonly(9F)tell if a device is
installed in a slave
access only location
ddi_soft_stateddi_soft_state(9F)driver soft state
utility routines
ddi_soft_state_finiddi_soft_state(9F)driver soft state
utility routines
ddi_soft_state_freeddi_soft_state(9F)driver soft state
utility routines
ddi_soft_state_initddi_soft_state(9F)driver soft state
utility routines
ddi_soft_state_zallocddi_soft_state(9F)driver soft state
utility routines
ddi_trigger_softintrddi_add_softintr(9F)add, remove or trigger
a soft interrupt
ddi_unmap_regsddi_map_regs(9F)map or unmap registers
delaydelay(9F)delay execution for a
specified number of
clock ticks
disksortdisksort(9F)single direction
elevator seek sort for
buffers
drv_getparmdrv_getparm(9F)retrieve kernel state
information
drv_hztousecdrv_hztousec(9F)convert clock ticks to
microseconds
drv_privdrv_priv(9F)determine driver
privilege
drv_usectohzdrv_usectohz(9F)convert microseconds to
clock ticks
drv_usecwaitdrv_usecwait(9F)busy-wait for specified
interval
dupbdupb(9F)duplicate a message
block descriptor
dupmsgdupmsg(9F)duplicate a message
enableokenableok(9F)reschedule a queue for
service
esballocesballoc(9F)allocate a message
block using a
caller-supplied buffer
esbbcallesbbcall(9F)call function when
buffer is available
flushbandflushband(9F)flush messages for a
specified priority band
flushqflushq(9F)remove messages from a
queue
free_pktiopbget_pktiopb(9F)allocate/free a SCSI
packet in the iopb map
freebfreeb(9F)free a message block
freemsgfreemsg(9F)free all message blocks
in a message
freerbuffreerbuf(9F)free a raw buffer
header
freezestrfreezestr(9F)freeze, thaw the state
of a stream
get_pktiopbget_pktiopb(9F)allocate/free a SCSI
packet in the iopb map
geterrorgeterror(9F)return I/O error
getmajorgetmajor(9F)get major device number
getminorgetminor(9F)get minor device number
getqgetq(9F)get the next message
from a queue
getrbufgetrbuf(9F)get a raw buffer header
hat_getkpfnumhat_getkpfnum(9F)get page frame number
for kernel address
inbinb(9F)read from an I/O port
inlinb(9F)read from an I/O port
insqinsq(9F)insert a message into a
queue
inwinb(9F)read from an I/O port
kmem_allockmem_alloc(9F)allocate space from
kernel free memory
kmem_freekmem_free(9F)free previously
allocated kernel memory
kmem_zallockmem_zalloc(9F)allocate and clear
space from kernel free
memory
kstat_createkstat_create(9F)create and initialize a
new kstat
kstat_deletekstat_delete(9F)remove a kstat from the
system
kstat_installkstat_install(9F)add a fully initialized
kstat to the system
kstat_named_initkstat_named_init(9F)initialize a named
kstat
kstat_queuekstat_queue(9F)update I/O kstat
statistics
kstat_runq_back_to_waitqkstat_queue(9F) update I/O kstat
statistics
kstat_runq_enterkstat_queue(9F)update I/O kstat
statistics
kstat_runq_exitkstat_queue(9F)update I/O kstat
statistics
kstat_waitq_enterkstat_queue(9F)update I/O kstat
statistics
kstat_waitq_exitkstat_queue(9F)update I/O kstat
statistics
kstat_waitq_to_runqkstat_queue(9F)update I/O kstat
statistics
linkblinkb(9F)concatenate two message
blocks
makecommakecom(9F)make a packet for SCSI
commands
makecom_g0makecom(9F)make a packet for SCSI
commands
makecom_g0_smakecom(9F)make a packet for SCSI
commands
makecom_g1makecom(9F)make a packet for SCSI
commands
makecom_g5makecom(9F)make a packet for SCSI
commands
makedevicemakedevice(9F)make device number from
major and minor numbers
maxmax(9F)return the larger of
two integers
minmin(9F)return the lesser of
two integers
minphysphysio(9F)perform physical I/O
mod_infomod_install(9F)add, remove or query a
loadable module
mod_installmod_install(9F)add, remove or query a
loadable module
mod_removemod_install(9F)add, remove or query a
loadable module
msgdsizemsgdsize(9F)return the number of
bytes in a message
msgpullupmsgpullup(9F)concatenate bytes in a
message
mt-streamsmt-streams(9F)STREAMS multithreading
mutexmutex(9F)mutual exclusion lock
routines
mutex_destroymutex(9F)mutual exclusion lock
routines
mutex_entermutex(9F)mutual exclusion lock
routines
mutex_exitmutex(9F)mutual exclusion lock
routines
mutex_initmutex(9F)mutual exclusion lock
routines
mutex_ownedmutex(9F)mutual exclusion lock
routines
mutex_tryentermutex(9F)mutual exclusion lock
routines
nochpollnochpoll(9F)error return function
for non-pollable
devices.
nodevnodev(9F)error return function
noenablenoenable(9F)prevent a queue from
being scheduled
nulldevnulldev(9F)zero return function
numtosstoi(9F)convert between an
integer and a decimal
string
otherqOTHERQ(9F)get pointer to queue’s
partner queue
outboutb(9F)write to an I/O port
outloutb(9F)write to an I/O port
outwoutb(9F)write to an I/O port
physiophysio(9F)perform physical I/O
pollwakeuppollwakeup(9F)inform a process that
an event has occurred
proc_refproc_signal(9F)send a signal to a
process
proc_signalproc_signal(9F)send a signal to a
process
proc_unrefproc_signal(9F)send a signal to a
process
ptobptob(9F)convert size in pages
to size in bytes
pullupmsgpullupmsg(9F)concatenate bytes in a
message
putput(9F)call a STREAMS put
procedure
putbqputbq(9F)place a message at the
head of a queue
putctl1putctl1(9F)send a control message
with a one-byte
parameter to a queue
putctlputctl(9F)send a control message
to a queue
putnextputnext(9F)send a message to the
next queue
putnextctl1putnextctl1(9F)send a control message
with a one-byte
parameter to a queue
putnextctlputnextctl(9F)send a control message
to a queue
putqputq(9F)put a message on a
queue
qbufcallqbufcall(9F)call a function when a
buffer becomes
available
qenableqenable(9F)enable a queue
qprocsoffqprocson(9F)enable, disable put and
service routines
qprocsonqprocson(9F)enable, disable put and
service routines
qreplyqreply(9F)send a message on a
stream in the reverse
direction
qsizeqsize(9F)find the number of
messages on a queue
qtimeoutqtimeout(9F)execute a function
after a specified
length of time
qunbufcallqunbufcall(9F)cancel a pending
qbufcall request
quntimeoutquntimeout(9F)cancel previous
qtimeout function call
qwaitqwait(9F)STREAMS wait routines
qwait_sigqwait(9F)STREAMS wait routines
qwriterqwriter(9F)asynchronous STREAMS
perimeter upgrade
rdRD(9F)get pointer to the read
queue
repinsbinb(9F)read from an I/O port
repinsdinb(9F)read from an I/O port
repinswinb(9F)read from an I/O port
repoutsboutb(9F)write to an I/O port
repoutsdoutb(9F)write to an I/O port
repoutswoutb(9F)write to an I/O port
rmallocrmalloc(9F)allocate space from a
resource map
rmalloc_waitrmalloc_wait(9F)allocate space from a
resource map, wait if
necessary
rmallocmaprmallocmap(9F)allocate and free
(respectively) resource
maps
rmfreermfree(9F)free space back into a
resource map
rmfreemaprmallocmap(9F)allocate and free
(respectively) resource
maps
rmvbrmvb(9F)remove a message block
from a message
rmvqrmvq(9F)remove a message from a
queue
rw_destroyrwlock(9F)readers/writer lock
functions
rw_downgraderwlock(9F)readers/writer lock
functions
rw_enterrwlock(9F)readers/writer lock
functions
rw_exitrwlock(9F)readers/writer lock
functions
rw_initrwlock(9F)readers/writer lock
functions
rw_read_lockedrwlock(9F)readers/writer lock
functions
rw_tryenterrwlock(9F)readers/writer lock
functions
rw_tryupgraderwlock(9F)readers/writer lock
functions
rwlockrwlock(9F)readers/writer lock
functions
samestrSAMESTR(9F)test if next queue is
in the same stream
scsi_abortscsi_abort(9F)abort a SCSI command
scsi_alloc_consistent_bufscsi_alloc_consistent_buf(9F)allocate an I/O buffer
for SCSI DMA
scsi_cnamescsi_cname(9F)decode a SCSI name
scsi_destroy_pktscsi_destroy_pkt(9F)free an allocated SCSI
packet and its DMA
resource
scsi_dmafreescsi_dmaget(9F)SCSI dma utility
routines
scsi_dmagetscsi_dmaget(9F)SCSI dma utility
routines
scsi_dnamescsi_cname(9F)decode a SCSI name
scsi_errmsgscsi_errmsg(9F)display a SCSI request
sense message
scsi_free_consistent_bufscsi_free_consistent_buf(9F)free a previously
allocated SCSI DMA I/O
buffer
scsi_hba_attachscsi_hba_attach(9F)SCSI HBA attach and
detach routines
scsi_hba_detachscsi_hba_attach(9F)SCSI HBA attach and
detach routines
scsi_hba_finiscsi_hba_init(9F)SCSI Host Bus Adapter
system initialization
and completion routines
scsi_hba_initscsi_hba_init(9F)SCSI Host Bus Adapter
system initialization
and completion routines
scsi_hba_lookup_capstrscsi_hba_lookup_capstr(9F)return index matching
capability string
scsi_hba_pkt_allocscsi_hba_pkt_alloc(9F)allocate and free a
scsi_pkt structure
scsi_hba_pkt_freescsi_hba_pkt_alloc(9F)allocate and free a
scsi_pkt structure
scsi_hba_probescsi_hba_probe(9F)default SCSI HBA probe
function
scsi_hba_tran_allocscsi_hba_tran_alloc(9F)allocate and free
transport structures
scsi_hba_tran_freescsi_hba_tran_alloc(9F)allocate and free
transport structures
scsi_ifgetcapscsi_ifgetcap(9F)get/set SCSI transport
capability
scsi_ifsetcapscsi_ifgetcap(9F)get/set SCSI transport
capability
scsi_init_pktscsi_init_pkt(9F)prepare a complete SCSI
packet
scsi_logscsi_log(9F)display a
SCSI-device-related
message
scsi_mnamescsi_cname(9F)decode a SCSI name
scsi_pktallocscsi_pktalloc(9F)SCSI packet utility
routines
scsi_pktfreescsi_pktalloc(9F)SCSI packet utility
routines
scsi_pollscsi_poll(9F)run a polled SCSI
command on behalf of a
target driver
scsi_probescsi_probe(9F)utility for probing a
scsi device
scsi_resallocscsi_pktalloc(9F)SCSI packet utility
routines
scsi_resetscsi_reset(9F)reset a SCSI bus or
target
scsi_resfreescsi_pktalloc(9F)SCSI packet utility
routines
scsi_rnamescsi_cname(9F)decode a SCSI name
scsi_slavescsi_slave(9F)utility for SCSI target
drivers to establish
the presence of a
target
scsi_snamescsi_cname(9F)decode a SCSI name
scsi_sync_pktscsi_sync_pkt(9F)synchronize CPU and I/O
views of memory
scsi_transportscsi_transport(9F)request by a SCSI
target driver to start
a command
scsi_unprobescsi_unprobe(9F)free resources
allocated during
initial probing
scsi_unslavescsi_unprobe(9F)free resources
allocated during
initial probing
sema_destroysemaphore(9F)semaphore functions
sema_initsemaphore(9F)semaphore functions
sema_psemaphore(9F)semaphore functions
sema_p_sigsemaphore(9F)semaphore functions
sema_trypsemaphore(9F)semaphore functions
sema_vsemaphore(9F)semaphore functions
semaphoresemaphore(9F)semaphore functions
sprintfsprintf(9F)format characters in
memory
stoistoi(9F)convert between an
integer and a decimal
string
strchrstrchr(9F)find a character in a
string
strcmpstrcmp(9F)compare two null
terminated strings.
strcpystrcpy(9F)copy a string from one
location to another.
strlenstrlen(9F)determine the number of
non-null bytes in a
string.
strlogstrlog(9F)submit messages to the
log driver
strncmpstrcmp(9F)compare two null
terminated strings.
strncpystrcpy(9F)copy a string from one
location to another.
strqgetstrqget(9F)get information about a
queue or band of the
queue
strqsetstrqset(9F)change information
about a queue or band
of the queue
swabswab(9F)swap bytes in 16-bit
halfwords
testbtestb(9F)check for an available
buffer
timeouttimeout(9F)execute a function
after a specified
length of time
uiomoveuiomove(9F)copy kernel data using
uio structure
unbufcallunbufcall(9F)cancel a pending
bufcall request
unfreezestrfreezestr(9F)freeze, thaw the state
of a stream
unlinkbunlinkb(9F)remove a message block
from the head of a
message
untimeoutuntimeout(9F)cancel previous timeout
function call
ureadcureadc(9F)add character to a uio
structure
uwritecuwritec(9F)remove a character from
a uio structure
vcmn_errcmn_err(9F)display an error
message or panic the
system
vsprintfvsprintf(9F)format characters in
memory
wrWR(9F)get pointer to the
write queue for this
module or driver
SunOS 5.4 — Last change: 28 May 1994