NAME | DESCRIPTION | TRUSTED SOLARIS DIFFERENCES | HEADINGS | STREAMS Kernel Function Summary |
Section 9F describes the Solaris and Trusted Solaris kernel functions available for use by device drivers. See Intro(9) for how Trusted Solaris man pages are included in section 9F.
If a function with a tsol_ prefix has an equivalent with the same name without the tsol_ prefix, (for example tsol_linkb(9F) has an equivalent in linkb(9F), then the tsol_ prefix version should be used if the driver is to be trusted. Trusted drivers know about Trusted Solaris attributes and enforce security policy when necessary. The base function can still be used by new or existing drivers that do not enforce policy.
The printed Trusted Solaris 8 Reference Manual includes only those man
pages that have been modified or originate in the Trusted Solaris environment.
Printed versions of unchanged SunOS
5.8 man pages are found in the SunOS 5.8 Reference Manual. For a fuller
description, see Trusted Solaris Manual Page Display in Intro(1).
The SEE ALSO man page heading has been subdivided to
help users of the printed manual locate a referenced man page.
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_get_iblock_cookie(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.
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 |
anocancel | Solaris DDI |
aphysio | Solaris DDI |
bcmp | DDI/DKI |
bcopy | DDI/DKI |
biodone | DDI/DKI |
bioclone | Solaris DDI |
biofini | Solaris DDI |
bioinit | Solaris DDI |
biomodified | Solaris DDI |
biosize | Solaris DDI |
bioerror | Solaris DDI |
bioreset | Solaris DDI |
biowait | DDI/DKI |
bp_mapin | DDI/DKI |
bp_mapout | 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_device_copy | Solaris DDI |
ddi_device_zero | Solaris DDI |
ddi_devmap_segmap | Solaris DDI |
ddi_dma_addr_bind_handle | Solaris DDI |
ddi_dma_addr_setup | Solaris DDI |
ddi_dma_alloc_handle | Solaris DDI |
ddi_dma_buf_bind_handle | 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_free_handle | Solaris DDI |
ddi_dma_getwin | Solaris DDI |
ddi_dma_htoc | Solaris SPARC DDI |
ddi_dma_mem_alloc | Solaris DDI |
ddi_dma_mem_free | Solaris DDI |
ddi_dma_movwin | Solaris SPARC DDI |
ddi_dma_nextcookie | Solaris DDI |
ddi_dma_nextseg | Solaris DDI |
ddi_dma_nextwin | Solaris DDI |
ddi_dma_numwin | Solaris DDI |
ddi_dma_segtocookie | Solaris DDI |
ddi_dma_set_sbus64 | Solaris DDI |
ddi_dma_setup | Solaris DDI |
ddi_dma_sync | Solaris DDI |
ddi_dma_unbind_handle | Solaris DDI |
ddi_dmae | Solaris x86 DDI |
ddi_dmae_1stparty | Solaris x86 DDI |
ddi_dmae_alloc | Solaris x86 DDI |
ddi_dmae_disable | Solaris x86 DDI |
ddi_dmae_enable | Solaris x86 DDI |
ddi_dmae_getattr | Solaris x86 DDI |
ddi_dmae_getcnt | Solaris x86 DDI |
ddi_dmae_getlim | Solaris x86 DDI |
ddi_dmae_prog | Solaris x86 DDI |
ddi_dmae_release | Solaris x86 DDI |
ddi_dmae_stop | Solaris x86 DDI |
ddi_enter_critical | Solaris DDI |
ddi_exit_critical | Solaris DDI |
ddi_ffs | Solaris DDI |
ddi_fls | Solaris DDI |
ddi_get16 | Solaris DDI |
ddi_get32 | Solaris DDI |
ddi_get64 | Solaris DDI |
ddi_get8 | Solaris DDI |
ddi_get_cred | Solaris DDI |
ddi_get_driver_private | Solaris DDI |
ddi_get_iblock_cookie | Solaris DDI |
ddi_get_instance | Solaris DDI |
ddi_get_name | Solaris DDI |
ddi_get_parent | Solaris DDI |
ddi_get_soft_iblock_cookie | Solaris DDI |
ddi_get_soft_state | Solaris DDI |
ddi_getb | Solaris DDI |
ddi_getl | Solaris DDI |
ddi_getll | Solaris DDI |
ddi_getlongprop | Solaris DDI |
ddi_getlongprop_buf | Solaris DDI |
ddi_getprop | Solaris DDI |
ddi_getproplen | Solaris DDI |
ddi_getw | Solaris DDI |
ddi_intr_hilevel | Solaris DDI |
ddi_io_get16 | Solaris DDI |
ddi_io_get32 | Solaris DDI |
ddi_io_get8 | Solaris DDI |
ddi_io_getb | Solaris DDI |
ddi_io_getl | Solaris DDI |
ddi_io_getw | Solaris DDI |
ddi_io_put16 | Solaris DDI |
ddi_io_put32 | Solaris DDI |
ddi_io_put8 | Solaris DDI |
ddi_io_putb | Solaris DDI |
ddi_io_putl | Solaris DDI |
ddi_io_putw | Solaris DDI |
ddi_io_rep_get16 | Solaris DDI |
ddi_io_rep_get32 | Solaris DDI |
ddi_io_rep_get8 | Solaris DDI |
ddi_io_rep_getb | Solaris DDI |
ddi_io_rep_getl | Solaris DDI |
ddi_io_rep_getw | Solaris DDI |
ddi_io_rep_put16 | Solaris DDI |
ddi_io_rep_put32 | Solaris DDI |
ddi_io_rep_put8 | Solaris DDI |
ddi_io_rep_putb | Solaris DDI |
ddi_io_rep_putl | Solaris DDI |
ddi_io_rep_putw | 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_mapdev_set_device_acc_attr | Solaris DDI |
ddi_mem_alloc | Solaris DDI |
ddi_mem_free | Solaris DDI |
ddi_mem_get16 | Solaris DDI |
ddi_mem_get32 | Solaris DDI |
ddi_mem_get64 | Solaris DDI |
ddi_mem_get8 | Solaris DDI |
ddi_mem_getb | Solaris DDI |
ddi_mem_getl | Solaris DDI |
ddi_mem_getll | Solaris DDI |
ddi_mem_getw | Solaris DDI |
ddi_mem_put16 | Solaris DDI |
ddi_mem_put32 | Solaris DDI |
ddi_mem_put64 | Solaris DDI |
ddi_mem_put8 | Solaris DDI |
ddi_mem_putb | Solaris DDI |
ddi_mem_putl | Solaris DDI |
ddi_mem_putll | Solaris DDI |
ddi_mem_putw | Solaris DDI |
ddi_mem_rep_get16 | Solaris DDI |
ddi_mem_rep_get32 | Solaris DDI |
ddi_mem_rep_get64 | Solaris DDI |
ddi_mem_rep_get8 | Solaris DDI |
ddi_mem_rep_getb | Solaris DDI |
ddi_mem_rep_getl | Solaris DDI |
ddi_mem_rep_getll | Solaris DDI |
ddi_mem_rep_getw | Solaris DDI |
ddi_mem_rep_put16 | Solaris DDI |
ddi_mem_rep_put32 | Solaris DDI |
ddi_mem_rep_put64 | Solaris DDI |
ddi_mem_rep_put8 | Solaris DDI |
ddi_mem_rep_putb | Solaris DDI |
ddi_mem_rep_putl | Solaris DDI |
ddi_mem_rep_putll | Solaris DDI |
ddi_mem_rep_putw | Solaris DDI |
ddi_mmap_get_model | Solaris DDI |
ddi_model_convert_from | Solaris DDI |
ddi_node_name | Solaris DDI |
ddi_peek16 | Solaris DDI |
ddi_peek32 | Solaris DDI |
ddi_peek64 | Solaris DDI |
ddi_peek8 | Solaris DDI |
ddi_peekc | Solaris DDI |
ddi_peekd | Solaris DDI |
ddi_peekl | Solaris DDI |
ddi_peeks | Solaris DDI |
ddi_poke16 | Solaris DDI |
ddi_poke32 | Solaris DDI |
ddi_poke64 | Solaris DDI |
ddi_poke8 | 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_exists | Solaris DDI |
ddi_prop_free | Solaris DDI |
ddi_prop_get_int | Solaris DDI |
ddi_prop_lookup | Solaris DDI |
ddi_prop_lookup_byte_array | Solaris DDI |
ddi_prop_lookup_int_array | Solaris DDI |
ddi_prop_lookup_string | Solaris DDI |
ddi_prop_lookup_string_array | 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_prop_update | Solaris DDI |
ddi_prop_update_byte_array | Solaris DDI |
ddi_prop_update_int | Solaris DDI |
ddi_prop_update_int_array | Solaris DDI |
ddi_prop_update_string | Solaris DDI |
ddi_prop_update_string_array | Solaris DDI |
ddi_ptob | Solaris DDI |
ddi_put16 | Solaris DDI |
ddi_put32 | Solaris DDI |
ddi_put64 | Solaris DDI |
ddi_put8 | Solaris DDI |
ddi_putb | Solaris DDI |
ddi_putl | Solaris DDI |
ddi_putll | Solaris DDI |
ddi_putw | Solaris DDI |
ddi_regs_map_free | Solaris DDI |
ddi_regs_map_setup | Solaris DDI |
ddi_remove_intr | Solaris DDI |
ddi_remove_minor_node | Solaris DDI |
ddi_remove_softintr | Solaris DDI |
ddi_rep_get16 | Solaris DDI |
ddi_rep_get32 | Solaris DDI |
ddi_rep_get64 | Solaris DDI |
ddi_rep_get8 | Solaris DDI |
ddi_rep_getb | Solaris DDI |
ddi_rep_getl | Solaris DDI |
ddi_rep_getll | Solaris DDI |
ddi_rep_getw | Solaris DDI |
ddi_rep_put16 | Solaris DDI |
ddi_rep_put32 | Solaris DDI |
ddi_rep_put64 | Solaris DDI |
ddi_rep_put8 | Solaris DDI |
ddi_rep_putb | Solaris DDI |
ddi_rep_putl | Solaris DDI |
ddi_rep_putll | Solaris DDI |
ddi_rep_putw | Solaris DDI |
ddi_report_dev | Solaris DDI |
ddi_root_node | Solaris DDI |
ddi_segmap | Solaris DDI |
ddi_segmap_setup | 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_umem_alloc | Solaris DDI |
ddi_umem_free | Solaris DDI |
ddi_unmap_regs | Solaris DDI |
delay | DDI/DKI |
devmap_default_access | Solaris DDI |
devmap_devmem_setup | Solaris DDI |
devmap_do_ctxmgt | Solaris DDI |
devmap_load | Solaris DDI |
devmap_set_ctx_timeout | Solaris DDI |
devmap_setup | Solaris DDI |
devmap_umem_setup | Solaris DDI |
devmap_unload | Solaris DDI |
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 |
get_pktiopb | Solaris DDI |
geterror | DDI/DKI |
getmajor | DDI/DKI |
getminor | DDI/DKI |
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_back_to_waitq | Solaris DDI |
kstat_runq_enter | Solaris DDI |
kstat_runq_exit | 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 |
pci_config_get16 | Solaris DDI |
pci_config_get32 | Solaris DDI |
pci_config_get64 | Solaris DDI |
pci_config_get8 | Solaris DDI |
pci_config_getb | Solaris DDI |
pci_config_getl | Solaris DDI |
pci_config_getw | Solaris DDI |
pci_config_put16 | Solaris DDI |
pci_config_put32 | Solaris DDI |
pci_config_put64 | Solaris DDI |
pci_config_put8 | Solaris DDI |
pci_config_putb | Solaris DDI |
pci_config_putl | Solaris DDI |
pci_config_putw | Solaris DDI |
pci_config_setup | Solaris DDI |
pci_config_teardown | Solaris 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 |
rmallocmap_wait | 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_attach_setup | 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_reset_notify | 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 |
va_arg | Solaris DDI |
va_end | Solaris DDI |
va_start | Solaris DDI |
vcmn_err | DDI/DKI |
vsprintf | Solaris DDI |
Description
Copy a message block
Copy a message
Duplicate a message block descriptor
Duplicate a message
Insert a message into a queue
Create and initialize a new kstat
Concatenate two message blocks
Concatenate bytes in a message
Concatenate bytes in a message
Call a STREAMS
Place a message at the head of a queue
Send a control message to a queue
Send a control message with a one-byte parameter to a queue
Send a message to the next queue
Send a control message to a queue
Send a control message with a one-byte parameter to a queue
Put a message on a queue
Get security attributes of a message
Concatenate two message blocks
Send a control message to a queue
Send a control message with a one-byte parameter and a set of attributes to a queue
Send a control message and a set of attributes to a queue
Send a control message with a one-byte parameter and a set of attributes to a queue
NAME | DESCRIPTION | TRUSTED SOLARIS DIFFERENCES | HEADINGS | STREAMS Kernel Function Summary |