This appendix discusses the interfaces provided by the Solaris 9 DDI/DKI. These descriptions should not be considered complete or definitive, nor do they provide a thorough guide to usage. The descriptions are intended to describe what the functions do in general terms. See man pages section 9F: DDI and DKI Kernel Functions for more detailed information. The categories are:
This appendix does not discuss STREAMS interfaces; to learn more about network drivers, see the STREAMS Programming Guide.
|
Function Name |
Description |
|---|---|
|
query a loadable module |
|
|
mod_install |
add a loadable module |
|
mod_remove |
remove a loadable module |
|
Function Name |
Description |
|---|---|
|
return driver binding name |
|
|
ddi_dev_is_sid |
tell whether a device is self-identifying |
|
ddi_driver_major |
return driver major device number |
|
ddi_driver_name |
return normalized driver name |
|
ddi_node_name |
return the devinfo node name |
|
ddi_get_devstate |
check device state |
|
ddi_get_instance |
get device instance number |
|
ddi_get_name |
return driver binding name |
|
ddi_get_parent |
find the parent of a device information structure |
|
ddi_root_node |
get the root of the dev_info tree |
|
Function Name |
Description |
|---|---|
|
create a minor node for a device |
|
|
ddi_getiminor |
get kernel internal minor number from an external dev_t |
|
ddi_remove_minor_node |
remove a minor mode for a device |
|
getmajor |
get major device number |
|
getminor |
get minor device number |
|
makedevice |
make device number from major and minor numbers |
|
Function Name |
Description |
|---|---|
|
check for the existence of a property |
|
|
ddi_prop_free |
free resources consumed by property lookup |
|
ddi_prop_get_int |
look up integer property |
|
ddi_prop_get_int64 |
look up 64–bit integer property |
|
ddi_prop_lookup_byte_array |
look up byte array property |
|
ddi_prop_lookup_int_array |
look up integer array property |
|
ddi_prop_lookup_int64_array |
look up 64–bit integer array property |
|
ddi_prop_lookup_string |
look up string property |
|
ddi_prop_lookup_string_array |
look up string array property |
|
ddi_prop_remove |
remove a property of a device |
|
ddi_prop_remove_all |
remove all properties of a device |
|
ddi_prop_undefine |
hide a property of a device |
|
ddi_prop_update_byte_array |
create or update byte array property |
|
ddi_prop_update_int |
create or update integer property |
|
ddi_prop_update_int64 |
create or update 64–bit integer property |
|
ddi_prop_update_int_array |
create or update integer array property |
|
ddi_prop_update_int64_array |
create or update 64–bit integer array property |
|
ddi_prop_update_string |
create or update string property |
|
ddi_prop_update_string_array |
create or update string array property |
Table B–5 Deprecated Property Functions
|
Deprecated Functions |
Replacements |
|---|---|
|
see ddi_prop_lookup |
|
|
ddi_getlongprop_buf |
see ddi_prop_lookup |
|
ddi_getprop |
ddi_prop_get_int |
|
ddi_getproplen |
see ddi_prop_lookup |
|
ddi_prop_create |
see ddi_prop_lookup |
|
ddi_prop_modify |
see ddi_prop_lookup |
|
ddi_prop_op |
see ddi_prop_lookup |
|
Function Name |
Description |
|---|---|
|
get the address of the device's private data area |
|
|
ddi_get_soft_state |
get pointer to instance soft state structure |
|
ddi_set_driver_private |
set the address of the device's private data area |
|
ddi_soft_state_fini |
destroy driver soft state structure |
|
ddi_soft_state_free |
free instance soft state structure |
|
ddi_soft_state_init |
initialize driver soft state structure |
|
ddi_soft_state_zalloc |
allocate instance soft state structure |
|
Function Name |
Description |
|---|---|
|
allocate kernel memory |
|
|
kmem_free |
free kernel memory |
|
kmem_zalloc |
allocate zero-filled kernel memory |
These functions allocate and free memory intended to be used for DMA. See Direct Memory Access (DMA) Functions.
Table B–8|
Function Name |
Description |
|---|---|
|
allocate memory for DMA transfer |
|
|
ddi_dma_mem_free |
free previously allocated DMA memory |
These functions allocate and free memory intended to be exported to user space. See User Space Access Functions.
Table B–9|
Function Name |
Description |
|---|---|
|
ddi_umem_alloc |
allocate page-aligned kernel memory |
|
ddi_umem_free |
free page-aligned kernel memory |
Table B–10 Deprecated Memory Allocation and Deallocation Functions
|
Deprecated Functions |
Replacement |
|---|---|
|
ddi_dma_mem_alloc |
|
|
ddi_iopb_free |
ddi_dma_mem_free |
|
ddi_mem_alloc |
ddi_dma_mem_alloc |
|
ddi_mem_free |
ddi_dma_mem_free |
|
Function Name |
Description |
|---|---|
|
wakeup all waiting threads |
|
|
cv_destroy |
free an allocated condition variable |
|
cv_init |
allocate a condition variable |
|
cv_signal |
wakeup one waiting thread |
|
cv_timedwait |
await an event with timeout |
|
cv_timedwait_sig |
await an event or signal with timeout |
|
cv_wait |
await an event |
|
cv_wait_sig |
await an event or signal |
|
ddi_enter_critical |
enter a critical region of control |
|
ddi_exit_critical |
exit a critical region of control |
|
mutex_destroy |
destroy mutual exclusion lock |
|
mutex_enter |
acquire mutual exclusion lock |
|
mutex_exit |
release mutual exclusion lock |
|
mutex_init |
initialize mutual exclusion lock |
|
mutex_owned |
determine if current thread is holding mutual exclusion lock |
|
mutex_tryenter |
attempt to acquire mutual exclusion lock without waiting |
|
rw_destroy |
destroy a readers/writer lock |
|
rw_downgrade |
downgrade a readers/writer lock holding from writer to reader |
|
rw_enter |
acquire a readers/writer lock |
|
rw_exit |
release a readers/writer lock |
|
rw_init |
initialize a readers/writer lock |
|
rw_read_locked |
determine whether readers/writer lock is held for read or write |
|
rw_tryenter |
attempt to acquire a readers/writer lock without waiting |
|
rw_tryupgrade |
attempt to upgrade readers/writer lock holding from reader to writer |
|
sema_destroy |
destroy a semaphore |
|
sema_init |
initialize a semaphore |
|
sema_p |
decrement semaphore and possibly block |
|
sema_p_sig |
decrement semaphore, but do not block if signal is pending |
|
sema_tryp |
attempt to decrement semaphore, but do not block |
|
sema_v |
increment semaphore and possibly unblock waiter |
|
Function Name |
Description |
|---|---|
|
register a hardware interrupt handler |
|
|
ddi_add_softintr |
register a software interrupt handler |
|
ddi_dev_nintrs |
return the number of interrupt specifications a device has |
|
ddi_get_iblock_cookie |
get a hardware interrupt block cookie |
|
ddi_get_soft_iblock_cookie |
get a software interrupt block cookie |
|
ddi_intr_hilevel |
indicate interrupt type |
|
ddi_remove_intr |
unregister a hardware interrupt handler |
|
ddi_remove_softintr |
unregister a software interrupt handler |
|
ddi_trigger_softintr |
trigger a software interrupt |
|
Function Name |
Description |
|---|---|
|
return the number of register sets a device has |
|
|
ddi_dev_regsize |
return the size of a device's register |
|
ddi_regs_map_setup |
set up a mapping for a register address space |
|
ddi_regs_map_free |
free a previously mapped register address space |
|
ddi_device_copy |
copy data from one device register to another device register |
|
ddi_device_zero |
zero fill the device |
|
ddi_check_acc_handle |
check data access handle |
|
ddi_get8 |
read 8–bit data from mapped memory, device register or DMA memory |
|
ddi_get16 |
read 16–bit data from mapped memory, device register or DMA memory |
|
ddi_get32 |
read 32–bit data from mapped memory, device register or DMA memory |
|
ddi_get64 |
read 64–bit data from mapped memory, device register or DMA memory |
|
ddi_put8 |
write 8–bit data to mapped memory, device register or DMA memory |
|
ddi_put16 |
write 16–bit data to mapped memory, device register or DMA memory |
|
ddi_put32 |
write 32–bit data to mapped memory, device register or DMA memory |
|
ddi_put64 |
write 64–bit data to mapped memory, device register or DMA memory |
|
ddi_rep_get8 |
read multiple 8–bit data from mapped memory, device register or DMA memory |
|
ddi_rep_get16 |
read multiple 16–bit data from mapped memory, device register or DMA memory |
|
ddi_rep_get32 |
read multiple 32–bit data from mapped memory, device register or DMA memory |
|
ddi_rep_get64 |
read multiple 64–bit data from mapped memory, device register or DMA memory |
|
ddi_rep_put8 |
write multiple 8–bit data to mapped memory, device register or DMA memory |
|
ddi_rep_put16 |
write multiple 16–bit data to mapped memory, device register or DMA memory |
|
ddi_rep_put32 |
write multiple 32–bit data to mapped memory, device register or DMA memory |
|
ddi_rep_put64 |
write multiple 64–bit data to mapped memory, device register or DMA memory |
|
ddi_peek8 |
cautiously read an 8–bit value from a location |
|
ddi_peek16 |
cautiously read a 16–bit value from a location |
|
ddi_peek32 |
cautiously read a 32–bit value from a location |
|
ddi_peek64 |
cautiously read a 64–bit value from a location |
|
ddi_poke8 |
cautiously write an 8–bit value to a location |
|
ddi_poke16 |
cautiously write a 16–bit value to a location |
|
ddi_poke32 |
cautiously write a 32–bit value to a location |
|
ddi_poke64 |
cautiously write a 64–bit value to a location |
The general programmed I/O functions above can always be used rather than the mem, io, and pci_config functions below. However, the below functions may be used as alternatives in cases where the type of access is known at compile time.
Table B–14 Alternate Access Mechanisms|
Function Name |
Description |
|---|---|
|
read 8-bit data from mapped device register in I/O space |
|
|
ddi_io_get16 |
read 16-bit data from mapped device register in I/O space |
|
ddi_io_get32 |
read 32-bit data from mapped device register in I/O space |
|
ddi_io_put8 |
write 8-bit data to mapped device register in I/O space |
|
ddi_io_put16 |
write 16-bit data to mapped device register in I/O space |
|
ddi_io_put32 |
write 32-bit data to mapped device register in I/O space |
|
ddi_io_rep_get8 |
read multiple 8-bit data from mapped device register in I/O space |
|
ddi_io_rep_get16 |
read multiple 16-bit data from mapped device register in I/O space |
|
ddi_io_rep_get32 |
read multiple 32-bit data from mapped device register in I/O space |
|
ddi_io_rep_put8 |
write multiple 8-bit data to mapped device register in I/O space |
|
ddi_io_rep_put16 |
write multiple 16-bit data to mapped device register in I/O space |
|
ddi_io_rep_put32 |
write multiple 32-bit data to mapped device register in I/O space |
|
ddi_mem_get8 |
read 8-bit data from mapped device in memory space or DMA memory |
|
ddi_mem_get16 |
read 16-bit data from mapped device in memory space or DMA memory |
|
ddi_mem_get32 |
read 32-bit data from mapped device in memory space or DMA memory |
|
ddi_mem_get64 |
read 64-bit data from mapped device in memory space or DMA memory |
|
ddi_mem_put8 |
write 8-bit data to mapped device in memory space or DMA memory |
|
ddi_mem_put16 |
write 16-bit data to mapped device in memory space or DMA memory |
|
ddi_mem_put32 |
write 32-bit data to mapped device in memory space or DMA memory |
|
ddi_mem_put64 |
write 64-bit data to mapped device in memory space or DMA memory |
|
ddi_mem_rep_get8 |
read multiple 8-bit data from mapped device in memory space or DMA memory |
|
ddi_mem_rep_get16 |
read multiple 16-bit data from mapped device in memory space or DMA memory |
|
ddi_mem_rep_get32 |
read multiple 32-bit data from mapped device in memory space or DMA memory |
|
ddi_mem_rep_get64 |
read multiple 64-bit data from mapped device in memory space or DMA memory |
|
ddi_mem_rep_put8 |
write multiple 8-bit data to mapped device in memory space or DMA memory |
|
ddi_mem_rep_put16 |
write multiple 16-bit data to mapped device in memory space or DMA memory |
|
ddi_mem_rep_put32 |
write multiple 32-bit data to mapped device in memory space or DMA memory |
|
ddi_mem_rep_put64 |
write multiple 64-bit data to mapped device in memory space or DMA memory |
|
pci_config_setup |
setup access to PCI Local Bus Configuration space |
|
pci_config_teardown |
tear down access to PCI Local Bus Configuration space |
|
pci_config_get8 |
read 8-bit data from the PCI Local Bus Configuration space |
|
pci_config_get16 |
read 16-bit data from the PCI Local Bus Configuration space |
|
pci_config_get32 |
read 32-bit data from the PCI Local Bus Configuration space |
|
pci_config_get64 |
read 64-bit data from the PCI Local Bus Configuration space |
|
pci_config_put8 |
write 8-bit data to the PCI Local Bus Configuration space |
|
pci_config_put16 |
write 16-bit data to the PCI Local Bus Configuration space |
|
pci_config_put32 |
write 32-bit data to the PCI Local Bus Configuration space |
|
pci_config_put64 |
write 64-bit data to the PCI Local Bus Configuration space |
Table B–15 Deprecated Programmed I/O Functions
|
Deprecated Function |
Replacement |
|---|---|
|
ddi_get8 |
|
|
ddi_getl |
ddi_get32 |
|
ddi_getll |
ddi_get64 |
|
ddi_getw |
ddi_get16 |
|
ddi_io_getb |
ddi_io_get8 |
|
ddi_io_getl |
ddi_io_get32 |
|
ddi_io_getw |
ddi_io_get16 |
|
ddi_io_putb |
ddi_io_put8 |
|
ddi_io_putl |
ddi_io_put32 |
|
ddi_io_putw |
ddi_io_put16 |
|
ddi_io_rep_getb |
ddi_io_rep_get8 |
|
ddi_io_rep_getl |
ddi_io_rep_get32 |
|
ddi_io_rep_getw |
ddi_io_rep_get16 |
|
ddi_io_rep_putb |
ddi_io_rep_put8 |
|
ddi_io_rep_putl |
ddi_io_rep_put32 |
|
ddi_io_rep_putw |
ddi_io_rep_put16 |
|
ddi_map_regs |
ddi_regs_map_setup |
|
ddi_mem_getb |
ddi_mem_get8 |
|
ddi_mem_getl |
ddi_mem_get32 |
|
ddi_mem_getll |
ddi_mem_get64 |
|
ddi_mem_getw |
ddi_mem_get16 |
|
ddi_mem_putb |
ddi_mem_put8 |
|
ddi_mem_putl |
ddi_mem_put32 |
|
ddi_mem_putll |
ddi_mem_put64 |
|
ddi_mem_putw |
ddi_mem_put16 |
|
ddi_mem_rep_getb |
ddi_mem_rep_get8 |
|
ddi_mem_rep_getl |
ddi_mem_rep_get32 |
|
ddi_mem_rep_getll |
ddi_mem_rep_get64 |
|
ddi_mem_rep_getw |
ddi_mem_rep_get16 |
|
ddi_mem_rep_putb |
ddi_mem_rep_put8 |
|
ddi_mem_rep_putl |
ddi_mem_rep_put32 |
|
ddi_mem_rep_putll |
ddi_mem_rep_put64 |
|
ddi_mem_rep_putw |
ddi_mem_rep_put16 |
|
ddi_peekc |
ddi_peek8 |
|
ddi_peekd |
ddi_peek64 |
|
ddi_peekl |
ddi_peek32 |
|
ddi_peeks |
ddi_peek16 |
|
ddi_pokec |
ddi_poke8 |
|
ddi_poked |
ddi_poke64 |
|
ddi_pokel |
ddi_poke32 |
|
ddi_pokes |
ddi_poke16 |
|
ddi_putb |
ddi_put8 |
|
ddi_putl |
ddi_put32 |
|
ddi_putll |
ddi_put64 |
|
ddi_putw |
ddi_put16 |
|
ddi_rep_getb |
ddi_rep_get8 |
|
ddi_rep_getl |
ddi_rep_get32 |
|
ddi_rep_getll |
ddi_rep_get64 |
|
ddi_rep_getw |
ddi_rep_get16 |
|
ddi_rep_putb |
ddi_rep_put8 |
|
ddi_rep_putl |
ddi_rep_put32 |
|
ddi_rep_putll |
ddi_rep_put64 |
|
ddi_rep_putw |
ddi_rep_put16 |
|
ddi_unmap_regs |
ddi_regs_map_free |
|
inb |
ddi_io_get8 |
|
inl |
ddi_io_get32 |
|
inw |
ddi_io_get16 |
|
outb |
ddi_io_put8 |
|
outl |
ddi_io_put32 |
|
outw |
ddi_io_put16 |
|
pci_config_getb |
pci_config_get8 |
|
pci_config_getl |
pci_config_get32 |
|
pci_config_getll |
pci_config_get64 |
|
pci_config_getw |
pci_config_get16 |
|
pci_config_putb |
pci_config_put8 |
|
pci_config_putl |
pci_config_put32 |
|
pci_config_putll |
pci_config_put64 |
|
pci_config_putw |
pci_config_put16 |
|
repinsb |
ddi_io_rep_get8 |
|
repinsd |
ddi_io_rep_get32 |
|
repinsw |
ddi_io_rep_get16 |
|
repoutsb |
ddi_io_rep_put8 |
|
repoutsd |
ddi_io_rep_put32 |
|
repoutsw |
ddi_io_rep_put16 |
|
Function Name |
Description |
|---|---|
|
allocate a DMA handle |
|
|
ddi_dma_free_handle |
free DMA handle |
|
ddi_dma_mem_alloc |
allocate memory for DMA transfer |
|
ddi_dma_mem_free |
free previously allocated DMA memory |
|
ddi_dma_addr_bind_handle |
bind an address to a DMA handle |
|
ddi_dma_buf_bind_handle |
bind a system buffer to a DMA handle |
|
ddi_dma_unbind_handle |
unbind the address in a DMA handle |
|
ddi_dma_nextcookie |
retrieve subsequent DMA cookie |
|
ddi_dma_getwin |
activate a new DMA window |
|
ddi_dma_numwin |
retrieve number of DMA windows |
|
ddi_dma_sync |
synchronize CPU and I/O views of memory |
|
ddi_check_dma_handle |
check DMA handle |
|
ddi_dma_set_sbus64 |
allow 64-bit transfers on SBus |
|
ddi_slaveonly |
tell if a device is installed in a slave access only location |
|
ddi_iomin |
find minimum alignment and transfer size for DMA |
|
ddi_dma_burstsizes |
find out the allowed burst sizes for a DMA mapping |
|
ddi_dma_devalign |
find DMA mapping alignment and minimum transfer size |
|
ddi_dmae_alloc |
acquire a DMA channel |
|
ddi_dmae_release |
release a DMA channel |
|
ddi_dmae_getattr |
get DMA engine attributes |
|
ddi_dmae_prog |
program a DMA channel |
|
ddi_dmae_stop |
terminate DMA engine operation |
|
ddi_dmae_disable |
disable a DMA channel |
|
ddi_dmae_enable |
enable a DMA channel |
|
ddi_dmae_getcnt |
get DMA engine count remaining |
|
ddi_dmae_1stparty |
configure DMA channel cascade mode |
|
ddi_dma_coff |
convert a DMA cookie to an offset within a DMA handle |
Table B–17 Deprecated Direct Memory Access (DMA) Functions
|
Deprecated Function |
Replacement |
|---|---|
|
ddi_dma_alloc_handle, ddi_dma_addr_bind_handle |
|
|
ddi_dma_buf_setup |
ddi_dma_alloc_handle, ddi_dma_buf_bind_handle |
|
ddi_dma_curwin |
ddi_dma_getwin |
|
ddi_dma_free |
ddi_dma_free_handle |
|
ddi_dma_htoc |
ddi_dma_addr_bind_handle, ddi_dma_buf_bind_handle |
|
ddi_dma_movwin |
ddi_dma_getwin |
|
ddi_dma_nextseg |
ddi_dma_nextcookie |
|
ddi_dma_segtocookie |
ddi_dma_nextcookie |
|
ddi_dma_setup |
ddi_dma_alloc_handle, ddi_dma_addr_bind_handle, ddi_dma_buf_bind_handle |
|
ddi_dmae_getlim |
ddi_dmae_getattr |
|
ddi_iopb_alloc |
ddi_dma_mem_alloc |
|
ddi_iopb_free |
ddi_dma_mem_free |
|
ddi_mem_alloc |
ddi_dma_mem_alloc |
|
ddi_mem_free |
ddi_dma_mem_free |
|
hat_getkpfnum |
ddi_dma_addr_bind_handle, ddi_dma_buf_bind_handle, ddi_dma_nextcookie |
Table B–19 Deprecated User Space Access Functions
|
Deprecated Functions |
Replacement |
|---|---|
|
ddi_copyin |
|
|
copyout |
ddi_copyout |
|
Function Name |
Description |
|---|---|
|
returns a pointer to the credential structure of the caller |
|
|
drv_priv |
determine process credentials privilege |
|
ddi_get_pid |
return the process ID |
Table B–22 Deprecated User Process Information Functions
|
Deprecated Functions |
Replacement |
|---|---|
|
ddi_get_pid, ddi_get_cred |
|
Function Name |
Description |
|---|---|
|
return the number of register sets a device has |
|
|
ddi_dev_regsize |
return the size of a device's register |
|
ddi_devmap_segmap |
set up a user mapping to device memory |
|
devmap_setup |
set up a user mapping to device memory |
|
devmap_devmem_setup |
export device memory to user space |
|
devmap_load |
control validation of memory address translations |
|
devmap_unload |
control validation of memory address translations |
|
devmap_do_ctxmgt |
perform device context switching on a mapping |
|
devmap_set_ctx_timeout |
set the timeout value for the context management callback |
|
devmap_default_access |
default driver memory access function |
|
ddi_umem_alloc |
allocate page-aligned kernel memory |
|
ddi_umem_free |
free page-aligned kernel memory |
|
ddi_umem_lock |
lock memory pages |
|
ddi_umem_unlock |
unlock memory pages |
|
ddi_umem_iosetup |
setup I/O requests to application memory |
|
devmap_umem_setup |
export kernel memory to user space |
|
ddi_model_convert_from |
determine data model type mismatch |
Table B–24 Deprecated User Application Kernel and Device Access Functions
|
Deprecated Functions |
Replacement |
|---|---|
|
devmap_setup |
|
|
ddi_mapdev_intercept |
devmap_load |
|
ddi_mapdev_nointercept |
devmap_unload |
|
ddi_mapdev_set_device_acc_attr |
see devmap(9e) |
|
ddi_segmap |
see devmap(9e) |
|
ddi_segmap_setup |
devmap_setup |
|
hat_getkpfnum |
see devmap(9e) |
|
ddi_mmap_get_model |
see devmap(9e) |
|
Function Name |
Description |
|---|---|
|
returns clock ticks since reboot |
|
|
ddi_get_time |
return the current time in seconds |
|
delay |
delay execution for a specified number of clock ticks |
|
drv_hztousec |
convert clock ticks to microseconds |
|
drv_usectohz |
convert microseconds to clock ticks |
|
drv_usecwait |
busy-wait for specified interval |
|
gethrtime |
get high-resolution time |
|
gethrvtime |
get high-resolution LWP virtual time |
|
timeout |
execute a function after a specified length of time |
|
untimeout |
cancel previous timeout function call |
|
drv_getparm |
ddi_get_lbolt, ddi_get_time |
Table B–26 Deprecated Time-Related Functions
|
Deprecated Function |
Replacement |
|---|---|
|
ddi_get_lbolt, ddi_get_time |
|
Function Name |
Description |
|---|---|
|
check if device loses power with DDI_SUSPEND |
|
|
pci_report_pmcap |
report power management capability of a PCI device |
|
pm_busy_component |
mark component as busy |
|
pm_idle_component |
mark component as idle |
|
pm_raise_power |
raise the power level of a component |
|
pm_lower_power |
lower the power level of a component |
|
pm_power_has_changed |
notify power management framework of autonomous power level change |
|
pm_trans_check |
device power cycle advisory check |
Table B–28 Deprecated Power Management Functions
|
Function Name |
Description |
|---|---|
|
inform the system that a device's component is required |
|
|
pm_create_components | |
|
pm_destroy_components | |
|
pm_get_normal_power | |
|
pm_set_normal_power |
|
Function Name |
Description |
|---|---|
|
create and initialize a new kstat |
|
|
kstat_delete |
remove a kstat from the system |
|
kstat_install |
add a fully initialized kstat to the system |
|
kstat_named_init |
initialize a named kstat |
|
kstat_runq_back_to_waitq |
record transaction migration from run queue to wait queue |
|
kstat_runq_enter |
record transaction add to run queue |
|
kstat_runq_exit |
record transaction removal from run queue |
|
kstat_waitq_enter |
record transaction add to wait queue |
|
kstat_waitq_exit |
record transaction removal from wait queue |
|
kstat_waitq_to_runq |
record transaction migration from wait queue to run queue |
|
Function Name |
Description |
|---|---|
|
display an error message |
|
|
vcmn_err |
display an error message |
|
ddi_report_dev |
announce a device |
|
strlog |
submit messages to the log driver |
|
ddi_dev_report_fault |
report a hardware failure |
|
scsi_errmsg |
display a SCSI request sense message |
|
scsi_log |
display a SCSI-device-related message |
|
scsi_vu_errmsg |
display a SCSI request sense message |
|
Function Name |
Description |
|---|---|
|
perform physical I/O |
|
|
aphysio |
perform asynchronous physical I/O |
|
anocancel |
prevent cancellation of asynchronous I/O request |
|
minphys |
limit physio buffer size |
|
biowait |
suspend processes pending completion of block I/O |
|
biodone |
release buffer after buffer I/O transfer and notify blocked threads |
|
bioerror |
indicate error in buffer header |
|
geterror |
return I/O error |
|
bp_mapin |
allocate virtual address space |
|
bp_mapout |
deallocate virtual address space |
|
disksort |
single direction elevator seek sort for buffers |
|
getrbuf |
get a raw buffer header |
|
freerbuf |
free a raw buffer header |
|
biosize |
returns size of a buffer structure |
|
bioinit |
initialize a buffer structure |
|
biofini |
uninitialize a buffer structure |
|
bioreset |
reuse a private buffer header after I/O is complete |
|
bioclone |
clone another buffer |
|
biomodified |
check if a buffer is modified |
|
clrbuf |
erase the contents of a buffer |
|
Function Name |
Description |
|---|---|
|
convert device bytes to pages (round down) |
|
|
ddi_btopr |
convert device bytes to pages (round up) |
|
ddi_ptob |
convert device pages to bytes |
|
btop |
convert size in bytes to size in pages (round down) |
|
btopr |
convert size in bytes to size in pages (round up) |
|
ptob |
convert size in pages to size in bytes |
Table B–33 Deprecated Virtual Memory Functions
|
Deprecated Functions |
Replacement |
|---|---|
|
see devmap(9e), ddi_dma_*_bind_handle, ddi_dma_nextcookie |
|
Function Name |
Description |
|---|---|
|
allocate a device id structure |
|
|
ddi_devid_free |
free a device id structure |
|
ddi_devid_register |
register a device id |
|
ddi_devid_unregister |
unregister a device id |
|
ddi_devid_compare |
compare two device ids |
|
ddi_devid_sizeof |
return the size of a device id |
|
ddi_devid_valid |
validate a device id |
|
ddi_devid_str_encode |
encode a device id and minor_name into a null-terminated ASCII string; return a pointer to that string |
|
ddi_devid_str_decode |
decode the device id and minor_name from a previously encoded string; allocate and return pointers to the extracted parts |
|
ddi_devid_str_free |
free all strings returned by the ddi_devid functions |
|
Function Name |
Description |
|---|---|
|
probe a SCSI device |
|
|
scsi_unprobe |
free resources allocated during initial probing |
|
scsi_alloc_consistent_buf |
allocate an I/O buffer for SCSI DMA |
|
scsi_free_consistent_buf |
free a previously allocated SCSI DMA I/O buffer |
|
scsi_init_pkt |
prepare a complete SCSI packet |
|
scsi_destroy_pkt |
free an allocated SCSI packet and its DMA resource |
|
scsi_setup_cdb |
setup SCSI command descriptor block (CDB) |
|
scsi_transport |
start a SCSI command |
|
scsi_poll |
run a polled SCSI command |
|
scsi_ifgetcap |
get SCSI transport capability |
|
scsi_ifsetcap |
set SCSI transport capability |
|
scsi_sync_pkt |
synchronize CPU and I/O views of memory |
|
scsi_abort |
abort a SCSI command |
|
scsi_reset |
reset a SCSI bus or target |
|
scsi_reset_notify |
notify target driver of bus resets |
|
scsi_cname |
decode a SCSI command |
|
scsi_dname |
decode a SCSI peripheral device type |
|
scsi_mname |
decode a SCSI message |
|
scsi_rname |
decode a SCSI packet completion reason |
|
scsi_sname |
decode a SCSI sense key |
|
scsi_errmsg |
display a SCSI request sense message |
|
scsi_log |
display a SCSI-device-related message |
|
scsi_vu_errmsg |
display a SCSI request sense message |
|
scsi_hba_init |
SCSI HBA system initialization routine |
|
scsi_hba_fini |
SCSI HBA system completion routine |
|
scsi_hba_attach_setup |
SCSI HBA attach routine |
|
scsi_hba_detach |
SCSI HBA detach routine |
|
scsi_hba_probe |
default SCSI HBA probe function |
|
scsi_hba_tran_alloc |
allocate a transport structure |
|
scsi_hba_tran_free |
free a transport structure |
|
scsi_hba_pkt_alloc |
allocate a scsi_pkt structure |
|
scsi_hba_pkt_free |
free a scsi_pkt structure |
|
scsi_hba_lookup_capstr |
return index matching capability string |
Table B–36 Deprecated SCSI Functions
|
Deprecated Functions |
Replacement |
|---|---|
|
scsi_free_consistent_buf |
|
|
get_pktiopb |
scsi_alloc_consistent_buf |
|
makecom_g0 |
scsi_setup_cdb |
|
makecom_g0_s |
scsi_setup_cdb |
|
makecom_g1 |
scsi_setup_cdb |
|
makecom_g5 |
scsi_setup_cdb |
|
scsi_dmafree |
scsi_destroy_pkt |
|
scsi_dmaget |
scsi_init_pkt |
|
scsi_hba_attach |
scsi_hba_attach_setup |
|
scsi_pktalloc |
scsi_init_pkt |
|
scsi_pktfree |
scsi_destroy_pkt |
|
scsi_resalloc |
scsi_init_pkt |
|
scsi_resfree |
scsi_destroy_pkt |
|
scsi_slave |
scsi_probe |
|
scsi_unslave |
scsi_unprobe |
|
Function Name |
Description |
|---|---|
|
allocate resource map |
|
|
rmallocmap_wait |
allocate resource map, wait if necessary |
|
rmfreemap |
free resource map |
|
rmalloc |
allocate space from a resource map |
|
rmalloc_wait |
allocate space from a resource map, wait if necessary |
|
rmfree |
free space back into a resource map |
|
Function Name |
Description |
|---|---|
|
determine if system is in panic state |
|
Function Name |
Description |
|---|---|
|
zero return function |
|
|
nodev |
error return function |
|
nochpoll |
error return function for non-pollable devices |
|
ASSERT |
expression verification |
|
bcopy |
copy data between address locations in the kernel |
|
bzero |
clear memory for a given number of bytes |
|
bcmp |
compare two byte arrays |
|
ddi_ffs |
find first bit set in a long integer |
|
ddi_fls |
find last bit set in a long integer |
|
swab |
swap bytes in 16-bit halfwords |
|
strcmp |
compare two null-terminated strings |
|
strncmp |
compare two null-terminated strings, with length limit |
|
strlen |
determine the number of non-null bytes in a string |
|
strcpy |
copy a string from one location to another |
|
strncpy |
copy a string from one location to another, with length limit |
|
strchr |
find a character in a string |
|
sprintf |
format characters in memory |
|
vsprintf |
format characters in memory |
|
numtos |
convert integer to decimal string |
|
stoi |
convert decimal string to an integer |
|
max |
return the larger of two integers |
|
min |
return the lesser of two integers |
|
va_arg |
handle variable argument list |
|
va_copy |
handle variable argument list |
|
va_end |
handle variable argument list |
|
va_start |
handle variable argument list |