Kernel Functions for Drivers                            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: o NAME summarizes the function's purpose. o SYNOPSIS shows the syntax of the function's entry point in the source code. #include directives are shown for required headers. o INTERFACE LEVEL describes any architecture dependen- cies. o ARGUMENTS describes any arguments required to invoke the function. o DESCRIPTION describes general information about the function. o RETURN VALUES describes the return values and mes- sages that can result from invoking the function. o 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 con- text. Interrupt context is kernel context, but also has an interrupt level associated with it. Driver inter- rupt 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 SunOS 5.8 Last change: 13 Oct 1994 1 Kernel Functions for Drivers Intro(9F) interrupt routines added for that interrupt with ddi_add_intr(9F) run in high-level interrupt con- text. 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 ini- tialized with the ddi_iblock_cookie returned by ddi_get_iblock_cookie(9F). o SEE ALSO indicates functions that are related by usage and sources, and which can be referred to for further information. o 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 SunOS 5.8 Last change: 13 Oct 1994 2 Kernel Functions for Drivers Intro(9F) 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 SunOS 5.8 Last change: 13 Oct 1994 3 Kernel Functions for Drivers Intro(9F) 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 SunOS 5.8 Last change: 13 Oct 1994 4 Kernel Functions for Drivers Intro(9F) 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 SunOS 5.8 Last change: 13 Oct 1994 5 Kernel Functions for Drivers Intro(9F) 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 SunOS 5.8 Last change: 13 Oct 1994 6 Kernel Functions for Drivers Intro(9F) 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 SunOS 5.8 Last change: 13 Oct 1994 7 Kernel Functions for Drivers Intro(9F) 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 SunOS 5.8 Last change: 13 Oct 1994 8 Kernel Functions for Drivers Intro(9F) 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 SunOS 5.8 Last change: 13 Oct 1994 9 Kernel Functions for Drivers Intro(9F) 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 SunOS 5.8 Last change: 13 Oct 1994 10 Kernel Functions for Drivers Intro(9F) request aphysio(9F) perform asynchronous physical I/O ASSERT(9F) expression verifica- tion 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) SunOS 5.8 Last change: 13 Oct 1994 11 Kernel Functions for Drivers Intro(9F) 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 mes- sage 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 pro- gram 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) SunOS 5.8 Last change: 13 Oct 1994 12 Kernel Functions for Drivers Intro(9F) cv_wait(9F) See condvar(9F) cv_wait_sig(9F) See condvar(9F) datamsg(9F) test whether a mes- sage is a data mes- sage 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 regis- ter 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 specifica- tions a device has ddi_dev_nregs(9F) return the number of register sets a dev- ice 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 SunOS 5.8 Last change: 13 Oct 1994 13 Kernel Functions for Drivers Intro(9F) 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 SunOS 5.8 Last change: 13 Oct 1994 14 Kernel Functions for Drivers Intro(9F) 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 allo- cated 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) SunOS 5.8 Last change: 13 Oct 1994 15 Kernel Functions for Drivers Intro(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 struc- ture 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 the devinfo node 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) SunOS 5.8 Last change: 13 Oct 1994 16 Kernel Functions for Drivers Intro(9F) ddi_intr_hilevel(9F) indicate interrupt handler type ddi_io_getb(9F) read data from the mapped device regis- ter 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 align- ment 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 regis- ter 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 dev- ice 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- SunOS 5.8 Last change: 13 Oct 1994 17 Kernel Functions for Drivers Intro(9F) controlled mapping of device ddi_mapdev_intercept(9F) control driver notif- ication of user accesses ddi_mapdev_nointercept(9F) See ddi_mapdev_intercept(9F) ddi_mapdev_set_device_acc_attr(9F) Set the device attri- butes for the mapping ddi_map_regs(9F) map or unmap regis- ters 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 allo- cated 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) SunOS 5.8 Last change: 13 Oct 1994 18 Kernel Functions for Drivers Intro(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 pro- perty ddi_prop_free(9F) See ddi_prop_lookup(9F) SunOS 5.8 Last change: 13 Oct 1994 19 Kernel Functions for Drivers Intro(9F) ddi_prop_get_int(9F) lookup integer pro- perty 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 informa- tion 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) SunOS 5.8 Last change: 13 Oct 1994 20 Kernel Functions for Drivers Intro(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) SunOS 5.8 Last change: 13 Oct 1994 21 Kernel Functions for Drivers Intro(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 SunOS 5.8 Last change: 13 Oct 1994 22 Kernel Functions for Drivers Intro(9F) privilege drv_usectohz(9F) convert microseconds to clock ticks drv_usecwait(9F) busy-wait for speci- fied 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 SunOS 5.8 Last change: 13 Oct 1994 23 Kernel Functions for Drivers Intro(9F) 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 initial- ized 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) SunOS 5.8 Last change: 13 Oct 1994 24 Kernel Functions for Drivers Intro(9F) kstat_waitq_exit(9F) See kstat_queue(9F) kstat_waitq_to_runq(9F) See kstat_queue(9F) linkb(9F) concatenate two mes- sage 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 multithread- ing mutex(9F) mutual exclusion lock routines mutex_destroy(9F) See mutex(9F) mutex_enter(9F) See mutex(9F) SunOS 5.8 Last change: 13 Oct 1994 25 Kernel Functions for Drivers Intro(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 dev- ices 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 Configura- tion 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) SunOS 5.8 Last change: 13 Oct 1994 26 Kernel Functions for Drivers Intro(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 mes- sage to a queue putctl1(9F) send a control mes- sage with a one-byte parameter to a queue putnext(9F) send a message to the next queue putnextctl(9F) send a control mes- sage to a queue SunOS 5.8 Last change: 13 Oct 1994 27 Kernel Functions for Drivers Intro(9F) putnextctl1(9F) send a control mes- sage 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) SunOS 5.8 Last change: 13 Oct 1994 28 Kernel Functions for Drivers Intro(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) SunOS 5.8 Last change: 13 Oct 1994 29 Kernel Functions for Drivers Intro(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 rou- tines 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_setup(9F) SCSI HBA attach and detach routines scsi_hba_attach(9F) See scsi_hba_attach_setup(9F) scsi_hba_detach(9F) See scsi_hba_attach(9F) scsi_hba_fini(9F) See scsi_hba_init(9F) scsi_hba_init(9F) SCSI Host Bus Adapter system initialization and completion rou- tines 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) SunOS 5.8 Last change: 13 Oct 1994 30 Kernel Functions for Drivers Intro(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 tran- sport 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 mes- sage 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 tar- get drivers to estab- lish the presence of a target SunOS 5.8 Last change: 13 Oct 1994 31 Kernel Functions for Drivers Intro(9F) 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 allo- cated 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 ter- minated 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 SunOS 5.8 Last change: 13 Oct 1994 32 Kernel Functions for Drivers Intro(9F) 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 avail- able 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 buf- call 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 argu- ment list va_end(9F) See va_arg(9F) va_start(9F) See va_arg(9F) vcmn_err(9F) See cmn_err(9F) SunOS 5.8 Last change: 13 Oct 1994 33 Kernel Functions for Drivers Intro(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.8 Last change: 13 Oct 1994 34

Solaris Man Pages


© 1994 Man-cgi 1.15S, Panagiotis Christias <christia@theseas.ntua.gr>
1995 Modified for Solaris 2.3, David Adams, <d.j.adams@soton.ac.uk>