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_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.
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 |
| anocancel | Solaris DDI |
| aphysio | Solaris DDI |
| 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 |
| 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_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_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_getb | Solaris DDI |
| ddi_io_getl | Solaris DDI |
| ddi_io_getw | Solaris DDI |
| ddi_io_putb | Solaris DDI |
| ddi_io_putl | Solaris DDI |
| ddi_io_putw | Solaris DDI |
| ddi_io_rep_getb | Solaris DDI |
| ddi_io_rep_getl | Solaris DDI |
| ddi_io_rep_getw | 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_getb | Solaris DDI |
| ddi_mem_getl | Solaris DDI |
| ddi_mem_getll | Solaris DDI |
| ddi_mem_getw | 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_getb | Solaris DDI |
| ddi_mem_rep_getl | Solaris DDI |
| ddi_mem_rep_getll | Solaris DDI |
| ddi_mem_rep_getw | 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_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_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_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_getb | Solaris DDI |
| ddi_rep_getl | Solaris DDI |
| ddi_rep_getll | Solaris DDI |
| ddi_rep_getw | 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_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 |
| 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_getb | Solaris DDI |
| pci_config_getl | Solaris DDI |
| pci_config_getw | 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 |
LIST OF FUNCTIONS
Name Description
adjmsg(9F) trim bytes from a message
allocb(9F) allocate a message block
anocancel(9F) prevent cancellation of asynchronous I/O request
aphysio(9F) perform asynchronous physical I/O
ASSERT(9F) expression verification
assert(9F) See ASSERT(9F)
backq(9F) get pointer to the queue behind the current queue
bcanput(9F) test for flow control in specified priority band
bcanputnext(9F) See canputnext(9F)
bcmp(9F) compare two byte arrays
bcopy(9F) copy data between address locations in the kernel
biodone(9F) release buffer after buffer I/O transfer and notify blocked threads
bioerror(9F) indicate error in buffer header
bioreset(9F) reuse a private buffer header after I/O is complete
biowait(9F) suspend processes pending completion of block I/O
bp_mapin(9F) allocate virtual address space
bp_mapout(9F) deallocate virtual address space
btop(9F) convert size in bytes to size in pages (round down)
btopr(9F) convert size in bytes to size in pages (round up)
bufcall(9F) call a function when a buffer becomes available
bzero(9F) clear memory for a given number of bytes
canput(9F) test for room in a message queue
canputnext(9F) test for room in next module’s message queue
clrbuf(9F) erase the contents of a buffer
cmn_err(9F) display an error message or panic the system
condvar(9F) condition variable routines
copyb(9F) copy a message block
copyin(9F) copy data from a user program to a driver buffer
copymsg(9F) copy a message
copyout(9F) copy data from a driver to a user program
cv_broadcast(9F) See condvar(9F)
cv_destroy(9F) See condvar(9F)
cv_init(9F) See condvar(9F)
cv_signal(9F) See condvar(9F)
cv_timedwait(9F) See condvar(9F)
cv_timedwait_sig(9F) See condvar(9F)
cv_wait(9F) See condvar(9F)
cv_wait_sig(9F) See condvar(9F)
datamsg(9F) test whether a message is a data message
ddi_add_intr(9F) hardware interrupt handling routines
ddi_add_softintr(9F) software interrupt handling routines
ddi_btop(9F) page size conversions
ddi_btopr(9F) See ddi_btop(9F)
ddi_copyin(9F) copy data to a driver buffer
ddi_copyout(9F) copy data from a driver
ddi_create_minor_node(9F) create a minor node for this device
ddi_device_copy(9F) copy data from one device register to another device register
ddi_device_zero(9F) zero fill the device
ddi_dev_is_sid(9F) tell whether a device is self-identifying
ddi_dev_nintrs(9F) return the number of interrupt specifications a device has
ddi_dev_nregs(9F) return the number of register sets a device has
ddi_dev_regsize(9F) return the size of a device’s register
ddi_dma_addr_bind_handle(9F) binds an address to a DMA handle
ddi_dma_addr_setup(9F) easier DMA setup for use with virtual addresses
ddi_dma_alloc_handle(9F) allocate DMA handle
ddi_dma_buf_bind_handle(9F) binds a system buffer to a DMA handle
ddi_dma_buf_setup(9F) easier DMA setup for use with buffer structures
ddi_dma_burstsizes(9F) find out the allowed burst sizes for a DMA mapping
ddi_dma_coff(9F) convert a DMA cookie to an offset within a DMA handle
ddi_dma_curwin(9F) report current DMA window offset and size
ddi_dma_devalign(9F) find DMA mapping alignment and minimum transfer size
ddi_dmae(9F) system DMA engine functions
ddi_dmae_1stparty(9F) See ddi_dmae(9F)
ddi_dmae_alloc(9F) See ddi_dmae(9F)
ddi_dmae_disable(9F) See ddi_dmae(9F)
ddi_dmae_enable(9F) See ddi_dmae(9F)
ddi_dmae_getattr(9F) See ddi_dmae(9F)
ddi_dmae_getcnt(9F) See ddi_dmae(9F)
ddi_dmae_getlim(9F) See ddi_dmae(9F)
ddi_dmae_prog(9F) See ddi_dmae(9F)
ddi_dmae_release(9F) See ddi_dmae(9F)
ddi_dmae_stop(9F) See ddi_dmae(9F)
ddi_dma_free(9F) release system DMA resources
ddi_dma_free_handle(9F) free DMA handle
ddi_dma_getwin(9F) activate a new DMA window
ddi_dma_htoc(9F) convert a DMA handle to a DMA address cookie
ddi_dma_mem_alloc(9F) allocate memory for DMA transfer
ddi_dma_mem_free(9F) free previously allocated memory
ddi_dma_movwin(9F) shift current DMA window
ddi_dma_nextcookie(9F) retrieve subsequent DMA cookie
ddi_dma_nextseg(9F) get next DMA segment
ddi_dma_nextwin(9F) get next DMA window
ddi_dma_numwin(9F) retrieve number of DMA windows
ddi_dma_segtocookie(9F) convert a DMA segment to a DMA address cookie
ddi_dma_set_sbus64(9F) allow 64 bit transfers on SBus
ddi_dma_setup(9F) setup DMA resources
ddi_dma_sync(9F) synchronize CPU and I/O views of memory
ddi_dma_unbind_handle(9F) unbinds the address in a DMA handle
ddi_enter_critical(9F) enter and exit a critical region of control
ddi_exit_critical(9F) See ddi_enter_critical(9F)
ddi_ffs(9F) find first (last) bit set in a long integer
ddi_fls(9F) See ddi_ffs(9F)
ddi_getb(9F) read data from the mapped memory address, device register or allocated DMA memory address
ddi_get_cred(9F) returns a pointer to the credential structure of the caller
ddi_get_driver_private(9F) get or set the address of the device’s private data area
ddi_get_iblock_cookie(9F) See ddi_add_intr(9F)
ddi_get_instance(9F) get device instance number
ddi_getl(9F) See ddi_getb(9F)
ddi_getll(9F) See ddi_getb(9F)
ddi_getlongprop(9F) See ddi_prop_op(9F)
ddi_getlongprop_buf(9F) See ddi_prop_op(9F)
ddi_get_name(9F) return driver binding name
ddi_get_parent(9F) find the parent of a device information structure
ddi_getprop(9F) See ddi_prop_op(9F)
ddi_getproplen(9F) See ddi_prop_op(9F)
ddi_get_soft_iblock_cookie(9F) See ddi_add_softintr(9F)
ddi_get_soft_state(9F) See ddi_soft_state(9F)
ddi_getw(9F) See ddi_getb(9F)
ddi_intr_hilevel(9F) indicate interrupt handler type
ddi_io_getb(9F) read data from the mapped device register in I/O space
ddi_io_getl(9F) See ddi_io_getb(9F)
ddi_io_getw(9F) See ddi_io_getb(9F)
ddi_iomin(9F) find minimum alignment and transfer size for DMA
ddi_iopb_alloc(9F) allocate and free non-sequentially accessed memory
ddi_iopb_free(9F) See ddi_iopb_alloc(9F)
ddi_io_putb(9F) write data to the mapped device register in I/O space
ddi_io_putl(9F) See ddi_io_putb(9F)
ddi_io_putw(9F) See ddi_io_putb(9F)
ddi_io_rep_getb(9F) read multiple data from the mapped device register in I/O space
ddi_io_rep_getl(9F) See ddi_io_rep_getb(9F)
ddi_io_rep_getw(9F) See ddi_io_rep_getb(9F)
ddi_io_rep_putb(9F) write multiple data to the mapped device register in I/O space
ddi_io_rep_putl(9F) See ddi_io_rep_putb(9F)
ddi_io_rep_putw(9F) See ddi_io_rep_putb(9F)
ddi_mapdev(9F) create driver-controlled mapping of device
ddi_mapdev_intercept(9F) control driver notification of user accesses
ddi_mapdev_nointercept(9F) See ddi_mapdev_intercept(9F)
ddi_mapdev_set_device_acc_attr(9F)
Set the device attributes for the mapping
ddi_map_regs(9F) map or unmap registers
ddi_mem_alloc(9F) allocate and free sequentially accessed memory
ddi_mem_free(9F) See ddi_mem_alloc(9F)
ddi_mem_getb(9F) read data from mapped device in the memory space or allocated DMA memory
ddi_mem_getl(9F) See ddi_mem_getb(9F)
ddi_mem_getll(9F) See ddi_mem_getb(9F)
ddi_mem_getw(9F) See ddi_mem_getb(9F)
ddi_mem_putb(9F) write data to mapped device in the memory space or allocated DMA memory
ddi_mem_putl(9F) See ddi_mem_putb(9F)
ddi_mem_putll(9F) See ddi_mem_putb(9F)
ddi_mem_putw(9F) See ddi_mem_putb(9F)
ddi_mem_rep_getb(9F) read multiple data from mapped device in the memory space or allocated DMA memory
ddi_mem_rep_getl(9F) See ddi_mem_rep_getb(9F)
ddi_mem_rep_getll(9F) See ddi_mem_rep_getb(9F)
ddi_mem_rep_getw(9F) See ddi_mem_rep_getb(9F)
ddi_mem_rep_putb(9F) write multiple data to mapped device in the memory space or allocated DMA memory
ddi_mem_rep_putl(9F) See ddi_mem_rep_putb(9F)
ddi_mem_rep_putll(9F) See ddi_mem_rep_putb(9F)
ddi_mem_rep_putw(9F) See ddi_mem_rep_putb(9F)
ddi_peek(9F) read a value from a location
ddi_peekc(9F) See ddi_peek(9F)
ddi_peekd(9F) See ddi_peek(9F)
ddi_peekl(9F) See ddi_peek(9F)
ddi_peeks(9F) See ddi_peek(9F)
ddi_poke(9F) write a value to a location
ddi_pokec(9F) See ddi_poke(9F)
ddi_poked(9F) See ddi_poke(9F)
ddi_pokel(9F) See ddi_poke(9F)
ddi_pokes(9F) See ddi_poke(9F)
ddi_prop_create(9F) create, remove, or modify properties for leaf device drivers
ddi_prop_exists(9F) check for the existence of a property
ddi_prop_free(9F) See ddi_prop_lookup(9F)
ddi_prop_get_int(9F) lookup integer property
ddi_prop_lookup(9F) look up property information
ddi_prop_lookup_byte_array(9F) See ddi_prop_lookup(9F)
ddi_prop_lookup_int_array(9F) See ddi_prop_lookup(9F)
ddi_prop_lookup_string(9F) See ddi_prop_lookup(9F)
ddi_prop_lookup_string_array(9F) See ddi_prop_lookup(9F)
ddi_prop_modify(9F) See ddi_prop_create(9F)
ddi_prop_op(9F) get property information for leaf device drivers
ddi_prop_remove(9F) See ddi_prop_create(9F)
ddi_prop_remove_all(9F) See ddi_prop_create(9F)
ddi_prop_undefine(9F) See ddi_prop_create(9F)
ddi_prop_update(9F) update properties
ddi_prop_update_byte_array(9F) See ddi_prop_update(9F)
ddi_prop_update_int(9F) See ddi_prop_update(9F)
ddi_prop_update_int_array(9F) See ddi_prop_update(9F)
ddi_prop_update_string(9F) See ddi_prop_update(9F)
ddi_prop_update_string_array(9F) See ddi_prop_update(9F)
ddi_ptob(9F) See ddi_btop(9F)
ddi_putb(9F) write data to the mapped memory address, device register or allocated DMA memory address
ddi_putl(9F) See ddi_putb(9F)
ddi_putll(9F) See ddi_putb(9F)
ddi_putw(9F) See ddi_putb(9F)
ddi_regs_map_free(9F) free a previously mapped register address space
ddi_regs_map_setup(9F) set up a mapping for a register address space
ddi_remove_intr(9F) See ddi_add_intr(9F)
ddi_remove_minor_node(9F) remove a minor node for this dev_info
ddi_remove_softintr(9F) See ddi_add_softintr(9F)
ddi_rep_getb(9F) read data from the mapped memory address, device register or allocated DMA memory address
ddi_rep_getl(9F) See ddi_rep_getb(9F)
ddi_rep_getll(9F) See ddi_rep_getb(9F)
ddi_rep_getw(9F) See ddi_rep_getb(9F)
ddi_report_dev(9F) announce a device
ddi_rep_putb(9F) write data to the mapped memory address, device register or allocated DMA memory address
ddi_rep_putl(9F) See ddi_rep_putb(9F)
ddi_rep_putll(9F) See ddi_rep_putb(9F)
ddi_rep_putw(9F) See ddi_rep_putb(9F)
ddi_root_node(9F) get the root of the dev_info tree
ddi_segmap(9F) Set up a user mapping using seg_dev
ddi_segmap_setup(9F) See ddi_segmap(9F)
ddi_set_driver_private(9F) See ddi_get_driver_private(9F)
ddi_slaveonly(9F) tell if a device is installed in a slave access only location
ddi_soft_state(9F) driver soft state utility routines
ddi_soft_state_fini(9F) See ddi_soft_state(9F)
ddi_soft_state_free(9F) See ddi_soft_state(9F)
ddi_soft_state_init(9F) See ddi_soft_state(9F)
ddi_soft_state_zalloc(9F) See ddi_soft_state(9F)
ddi_trigger_softintr(9F) See ddi_add_softintr(9F)
ddi_unmap_regs(9F) See ddi_map_regs(9F)
delay(9F) delay execution for a specified number of clock ticks
disksort(9F) single direction elevator seek sort for buffers
drv_getparm(9F) retrieve kernel state information
drv_hztousec(9F) convert clock ticks to microseconds
drv_priv(9F) determine driver privilege
drv_usectohz(9F) convert microseconds to clock ticks
drv_usecwait(9F) busy-wait for specified interval
dupb(9F) duplicate a message block descriptor
dupmsg(9F) duplicate a message
enableok(9F) reschedule a queue for service
esballoc(9F) allocate a message block using a caller-supplied buffer
esbbcall(9F) call function when buffer is available
flushband(9F) flush messages for a specified priority band
flushq(9F) remove messages from a queue
freeb(9F) free a message block
freemsg(9F) free all message blocks in a message
free_pktiopb(9F) See get_pktiopb(9F)
freerbuf(9F) free a raw buffer header
freezestr(9F) freeze, thaw the state of a stream
geterror(9F) return I/O error
getmajor(9F) get major device number
getminor(9F) get minor device number
get_pktiopb(9F) allocate/free a SCSI packet in the iopb map
getq(9F) get the next message from a queue
getrbuf(9F) get a raw buffer header
hat_getkpfnum(9F) get page frame number for kernel address
inb(9F) read from an I/O port
inl(9F) See inb(9F)
insq(9F) insert a message into a queue
inw(9F) See inb(9F)
kmem_alloc(9F) allocate kernel memory
kmem_free(9F) See kmem_alloc(9F)
kmem_zalloc(9F) See kmem_alloc(9F)
kstat_create(9F) create and initialize a new kstat
kstat_delete(9F) remove a kstat from the system
kstat_install(9F) add a fully initialized kstat to the system
kstat_named_init(9F) initialize a named kstat
kstat_queue(9F) update I/O kstat statistics
kstat_runq_back_to_waitq(9F) See kstat_queue(9F)
kstat_runq_enter(9F) See kstat_queue(9F)
kstat_runq_exit(9F) See kstat_queue(9F)
kstat_waitq_enter(9F) See kstat_queue(9F)
kstat_waitq_exit(9F) See kstat_queue(9F)
kstat_waitq_to_runq(9F) See kstat_queue(9F)
linkb(9F) concatenate two message blocks
makecom(9F) make a packet for SCSI commands
makecom_g0(9F) See makecom(9F)
makecom_g0_s(9F) See makecom(9F)
makecom_g1(9F) See makecom(9F)
makecom_g5(9F) See makecom(9F)
makedevice(9F) make device number from major and minor numbers
max(9F) return the larger of two integers
min(9F) return the lesser of two integers
minphys(9F) See physio(9F)
mod_info(9F) See mod_install(9F)
mod_install(9F) add, remove or query a loadable module
mod_remove(9F) See mod_install(9F)
msgdsize(9F) return the number of bytes in a message
msgpullup(9F) concatenate bytes in a message
mt-streams(9F) STREAMS multithreading
mutex(9F) mutual exclusion lock routines
mutex_destroy(9F) See mutex(9F)
mutex_enter(9F) See mutex(9F)
mutex_exit(9F) See mutex(9F)
mutex_init(9F) See mutex(9F)
mutex_owned(9F) See mutex(9F)
mutex_tryenter(9F) See mutex(9F)
nochpoll(9F) error return function for non-pollable devices
nodev(9F) error return function
noenable(9F) prevent a queue from being scheduled
nulldev(9F) zero return function
numtos(9F) See stoi(9F)
OTHERQ(9F) get pointer to queue’s partner queue
otherq(9F) See OTHERQ(9F)
outb(9F) write to an I/O port
outl(9F) See outb(9F)
outw(9F) See outb(9F)
pci_config_getb(9F) read or write single datum of various sizes to the PCI Local Bus Configuration space
pci_config_getl(9F) See pci_config_getb(9F)
pci_config_getll(9F) See pci_config_getb(9F)
pci_config_getw(9F) See pci_config_getb(9F)
pci_config_putb(9F) See pci_config_getb(9F)
pci_config_putl(9F) See pci_config_getb(9F)
pci_config_putll(9F) See pci_config_getb(9F)
pci_config_putw(9F) See pci_config_getb(9F)
pci_config_setup(9F) setup or tear down the resources for enabling accesses to the PCI Local Bus Configuration space
pci_config_teardown(9F) See pci_config_setup(9F)
physio(9F) perform physical I/O
pollwakeup(9F) inform a process that an event has occurred
proc_ref(9F) See proc_signal(9F)
proc_signal(9F) send a signal to a process
proc_unref(9F) See proc_signal(9F)
ptob(9F) convert size in pages to size in bytes
pullupmsg(9F) concatenate bytes in a message
put(9F) call a STREAMS put procedure
putbq(9F) place a message at the head of a queue
putctl(9F) send a control message to a queue
putctl1(9F) send a control message with a one-byte parameter to a queue
putnext(9F) send a message to the next queue
putnextctl(9F) send a control message to a queue
putnextctl1(9F) send a control message with a one-byte parameter to a queue
putq(9F) put a message on a queue
qbufcall(9F) call a function when a buffer becomes available
qenable(9F) enable a queue
qprocsoff(9F) See qprocson(9F)
qprocson(9F) enable, disable put and service routines
qreply(9F) send a message on a stream in the reverse direction
qsize(9F) find the number of messages on a queue
qtimeout(9F) execute a function after a specified length of time
qunbufcall(9F) cancel a pending qbufcall request
quntimeout(9F) cancel previous qtimeout function call
qwait(9F) STREAMS wait routines
qwait_sig(9F) See qwait(9F)
qwriter(9F) asynchronous STREAMS perimeter upgrade
RD(9F) get pointer to the read queue
rd(9F) See RD(9F)
repinsb(9F) See inb(9F)
repinsd(9F) See inb(9F)
repinsw(9F) See inb(9F)
repoutsb(9F) See outb(9F)
repoutsd(9F) See outb(9F)
repoutsw(9F) See outb(9F)
rmalloc(9F) allocate space from a resource map
rmallocmap(9F) allocate and free resource maps
rmallocmap_wait(9F) See rmallocmap(9F)
rmalloc_wait(9F) allocate space from a resource map, wait if necessary
rmfree(9F) free space back into a resource map
rmfreemap(9F) See rmallocmap(9F)
rmvb(9F) remove a message block from a message
rmvq(9F) remove a message from a queue
rw_destroy(9F) See rwlock(9F)
rw_downgrade(9F) See rwlock(9F)
rw_enter(9F) See rwlock(9F)
rw_exit(9F) See rwlock(9F)
rw_init(9F) See rwlock(9F)
rwlock(9F) readers/writer lock functions
rw_read_locked(9F) See rwlock(9F)
rw_tryenter(9F) See rwlock(9F)
rw_tryupgrade(9F) See rwlock(9F)
samestr(9F) See SAMESTR(9F)
SAMESTR(9F) test if next queue is in the same stream
scsi_abort(9F) abort a SCSI command
scsi_alloc_consistent_buf(9F) allocate an I/O buffer for SCSI DMA
scsi_cname(9F) decode a SCSI name
scsi_destroy_pkt(9F) free an allocated SCSI packet and its DMA resource
scsi_dmafree(9F) See scsi_dmaget(9F)
scsi_dmaget(9F) SCSI dma utility routines
scsi_dname(9F) See scsi_cname(9F)
scsi_errmsg(9F) display a SCSI request sense message
scsi_free_consistent_buf(9F) free a previously allocated SCSI DMA I/O buffer
scsi_hba_attach(9F) See scsi_hba_attach_setup(9F)
scsi_hba_attach_setup(9F) SCSI HBA attach and detach routines
scsi_hba_detach(9F) See scsi_hba_attach_setup(9F)
scsi_hba_fini(9F) See scsi_hba_init(9F)
scsi_hba_init(9F) SCSI Host Bus Adapter system initialization and completion routines
scsi_hba_lookup_capstr(9F) return index matching capability string
scsi_hba_pkt_alloc(9F) allocate and free a scsi_pkt structure
scsi_hba_pkt_free(9F) See scsi_hba_pkt_alloc(9F)
scsi_hba_probe(9F) default SCSI HBA probe function
scsi_hba_tran_alloc(9F) allocate and free transport structures
scsi_hba_tran_free(9F) See scsi_hba_tran_alloc(9F)
scsi_ifgetcap(9F) get/set SCSI transport capability
scsi_ifsetcap(9F) See scsi_ifgetcap(9F)
scsi_init_pkt(9F) prepare a complete SCSI packet
scsi_log(9F) display a SCSI-device-related message
scsi_mname(9F) See scsi_cname(9F)
scsi_pktalloc(9F) SCSI packet utility routines
scsi_pktfree(9F) See scsi_pktalloc(9F)
scsi_poll(9F) run a polled SCSI command on behalf of a target driver
scsi_probe(9F) utility for probing a scsi device
scsi_resalloc(9F) See scsi_pktalloc(9F)
scsi_reset(9F) reset a SCSI bus or target
scsi_reset_notify(9F) notify target driver of bus resets
scsi_resfree(9F) See scsi_pktalloc(9F)
scsi_rname(9F) See scsi_cname(9F)
scsi_slave(9F) utility for SCSI target drivers to establish the presence of a target
scsi_sname(9F) See scsi_cname(9F)
scsi_sync_pkt(9F) synchronize CPU and I/O views of memory
scsi_transport(9F) request by a SCSI target driver to start a command
scsi_unprobe(9F) free resources allocated during initial probing
scsi_unslave(9F) See scsi_unprobe(9F)
sema_destroy(9F) See semaphore(9F)
sema_init(9F) See semaphore(9F)
sema_p(9F) See semaphore(9F)
semaphore(9F) semaphore functions
sema_p_sig(9F) See semaphore(9F)
sema_tryp(9F) See semaphore(9F)
sema_v(9F) See semaphore(9F)
sprintf(9F) format characters in memory
stoi(9F) convert between an integer and a decimal string
strchr(9F) find a character in a string
strcmp(9F) compare two null terminated strings.
strcpy(9F) copy a string from one location to another.
strlen(9F) determine the number of non-null bytes in a string
strlog(9F) submit messages to the log driver
strncmp(9F) See strcmp(9F)
strncpy(9F) See strcpy(9F)
strqget(9F) get information about a queue or band of the queue
strqset(9F) change information about a queue or band of the queue
swab(9F) swap bytes in 16-bit halfwords
testb(9F) check for an available buffer
timeout(9F) execute a function after a specified length of time
uiomove(9F) copy kernel data using uio structure
unbufcall(9F) cancel a pending bufcall request
unfreezestr(9F) See freezestr(9F)
unlinkb(9F) remove a message block from the head of a message
untimeout(9F) cancel previous timeout function call
ureadc(9F) add character to a uio structure
uwritec(9F) remove a character from a uio structure
va_arg(9F) handle variable argument list
va_end(9F) See va_arg(9F)
va_start(9F) See va_arg(9F)
vcmn_err(9F) See cmn_err(9F)
vsprintf(9F) format characters in memory
WR(9F) get pointer to the write queue for this module or driver
wr(9F) See WR(9F)
SunOS 5.5.1 — Last change: 13 Oct 1994