Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ intro(9F) — SunOS 5.5.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

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

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026