man pages section 9: DDI and DKI Kernel Functions
  Suchtext Nur in diesem Buch
Dieses Buch im PDF-Format herunterladen (1777 KB)

Intro(9F)

NAME | DESCRIPTION | STREAMS Kernel Function Summary | SEE ALSO

NAME

    Intro- introduction to DDI/DKI functions

DESCRIPTION

    Section 9F describes the kernel functions available for use by device drivers. See Intro(9E) for an overview of device driver interfaces.

    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
    bioclone Solaris DDI
    biofini Solaris DDI
    bioinit Solaris DDI
    biomodified Solaris DDI
    biosize Solaris DDI
    bioerror Solaris DDI
    bioreset Solaris DDI
    biowait DDI/DKI
    bp_mapin DDI/DKI
    bp_mapout DDI/DKI
    btop DDI/DKI
    btopr DDI/DKI
    bzero DDI/DKI
    cmn_err DDI/DKI
    copyin DDI/DKI
    copyout DDI/DKI
    cv_broadcast Solaris DDI
    cv_destroy Solaris DDI
    cv_init Solaris DDI
    cv_signal Solaris DDI
    cv_timedwait Solaris DDI
    cv_wait Solaris DDI
    cv_wait_sig Solaris DDI
    ddi_add_intr Solaris DDI
    ddi_add_softintr Solaris DDI
    ddi_btop Solaris DDI
    ddi_btopr Solaris DDI
    ddi_copyin Solaris DDI
    ddi_copyout Solaris DDI
    ddi_create_minor_node Solaris DDI
    ddi_dev_is_sid Solaris DDI
    ddi_dev_nintrs Solaris DDI
    ddi_dev_nregs Solaris DDI
    ddi_dev_regsize Solaris DDI
    ddi_device_copy Solaris DDI
    ddi_device_zero Solaris DDI
    ddi_devmap_segmap Solaris DDI
    ddi_dma_addr_bind_handle Solaris DDI
    ddi_dma_addr_setup Solaris DDI
    ddi_dma_alloc_handle Solaris DDI
    ddi_dma_buf_bind_handle Solaris DDI
    ddi_dma_buf_setup Solaris DDI
    ddi_dma_burstsizes Solaris DDI
    ddi_dma_coff Solaris SPARC DDI
    ddi_dma_curwin Solaris SPARC DDI
    ddi_dma_devalign Solaris DDI
    ddi_dma_free Solaris DDI
    ddi_dma_free_handle Solaris DDI
    ddi_dma_getwin Solaris DDI
    ddi_dma_htoc Solaris SPARC DDI
    ddi_dma_mem_alloc Solaris DDI
    ddi_dma_mem_free Solaris DDI
    ddi_dma_movwin Solaris SPARC DDI
    ddi_dma_nextcookie Solaris DDI
    ddi_dma_nextseg Solaris DDI
    ddi_dma_nextwin Solaris DDI
    ddi_dma_numwin Solaris DDI
    ddi_dma_segtocookie Solaris DDI
    ddi_dma_set_sbus64 Solaris DDI
    ddi_dma_setup Solaris DDI
    ddi_dma_sync Solaris DDI
    ddi_dma_unbind_handle Solaris DDI
    ddi_dmae Solaris IA DDI
    ddi_dmae_1stparty Solaris IA DDI
    ddi_dmae_alloc Solaris IA DDI
    ddi_dmae_disable Solaris IA DDI
    ddi_dmae_enable Solaris IA DDI
    ddi_dmae_getattr Solaris IA DDI
    ddi_dmae_getcnt Solaris IA DDI
    ddi_dmae_getlim Solaris IA DDI
    ddi_dmae_prog Solaris IA DDI
    ddi_dmae_release Solaris IA DDI
    ddi_dmae_stop Solaris IA DDI
    ddi_enter_critical Solaris DDI
    ddi_exit_critical Solaris DDI
    ddi_ffs Solaris DDI
    ddi_fls Solaris DDI
    ddi_get16 Solaris DDI
    ddi_get32 Solaris DDI
    ddi_get64 Solaris DDI
    ddi_get8 Solaris DDI
    ddi_get_cred Solaris DDI
    ddi_get_driver_private Solaris DDI
    ddi_get_iblock_cookie Solaris DDI
    ddi_get_instance Solaris DDI
    ddi_get_name Solaris DDI
    ddi_get_parent Solaris DDI
    ddi_get_soft_iblock_cookie Solaris DDI
    ddi_get_soft_state Solaris DDI
    ddi_getb Solaris DDI
    ddi_getl Solaris DDI
    ddi_getll Solaris DDI
    ddi_getlongprop Solaris DDI
    ddi_getlongprop_buf Solaris DDI
    ddi_getprop Solaris DDI
    ddi_getproplen Solaris DDI
    ddi_getw Solaris DDI
    ddi_intr_hilevel Solaris DDI
    ddi_io_get16 Solaris DDI
    ddi_io_get32 Solaris DDI
    ddi_io_get8 Solaris DDI
    ddi_io_getb Solaris DDI
    ddi_io_getl Solaris DDI
    ddi_io_getw Solaris DDI
    ddi_io_put16 Solaris DDI
    ddi_io_put32 Solaris DDI
    ddi_io_put8 Solaris DDI
    ddi_io_putb Solaris DDI
    ddi_io_putl Solaris DDI
    ddi_io_putw Solaris DDI
    ddi_io_rep_get16 Solaris DDI
    ddi_io_rep_get32 Solaris DDI
    ddi_io_rep_get8 Solaris DDI
    ddi_io_rep_getb Solaris DDI
    ddi_io_rep_getl Solaris DDI
    ddi_io_rep_getw Solaris DDI
    ddi_io_rep_put16 Solaris DDI
    ddi_io_rep_put32 Solaris DDI
    ddi_io_rep_put8 Solaris DDI
    ddi_io_rep_putb Solaris DDI
    ddi_io_rep_putl Solaris DDI
    ddi_io_rep_putw Solaris DDI
    ddi_iomin Solaris DDI
    ddi_iopb_alloc Solaris DDI
    ddi_iopb_free Solaris DDI
    ddi_map_regs Solaris DDI
    ddi_mapdev Solaris DDI
    ddi_mapdev_intercept Solaris DDI
    ddi_mapdev_nointercept Solaris DDI
    ddi_mapdev_set_device_acc_attr Solaris DDI
    ddi_mem_alloc Solaris DDI
    ddi_mem_free Solaris DDI
    ddi_mem_get16 Solaris DDI
    ddi_mem_get32 Solaris DDI
    ddi_mem_get64 Solaris DDI
    ddi_mem_get8 Solaris DDI
    ddi_mem_getb Solaris DDI
    ddi_mem_getl Solaris DDI
    ddi_mem_getll Solaris DDI
    ddi_mem_getw Solaris DDI
    ddi_mem_put16 Solaris DDI
    ddi_mem_put32 Solaris DDI
    ddi_mem_put64 Solaris DDI
    ddi_mem_put8 Solaris DDI
    ddi_mem_putb Solaris DDI
    ddi_mem_putl Solaris DDI
    ddi_mem_putll Solaris DDI
    ddi_mem_putw Solaris DDI
    ddi_mem_rep_get16 Solaris DDI
    ddi_mem_rep_get32 Solaris DDI
    ddi_mem_rep_get64 Solaris DDI
    ddi_mem_rep_get8 Solaris DDI
    ddi_mem_rep_getb Solaris DDI
    ddi_mem_rep_getl Solaris DDI
    ddi_mem_rep_getll Solaris DDI
    ddi_mem_rep_getw Solaris DDI
    ddi_mem_rep_put16 Solaris DDI
    ddi_mem_rep_put32 Solaris DDI
    ddi_mem_rep_put64 Solaris DDI
    ddi_mem_rep_put8 Solaris DDI
    ddi_mem_rep_putb Solaris DDI
    ddi_mem_rep_putl Solaris DDI
    ddi_mem_rep_putll Solaris DDI
    ddi_mem_rep_putw Solaris DDI
    ddi_mmap_get_model Solaris DDI
    ddi_model_convert_from Solaris DDI
    ddi_node_name Solaris DDI
    ddi_peek16 Solaris DDI
    ddi_peek32 Solaris DDI
    ddi_peek64 Solaris DDI
    ddi_peek8 Solaris DDI
    ddi_peekc Solaris DDI
    ddi_peekd Solaris DDI
    ddi_peekl Solaris DDI
    ddi_peeks Solaris DDI
    ddi_poke16 Solaris DDI
    ddi_poke32 Solaris DDI
    ddi_poke64 Solaris DDI
    ddi_poke8 Solaris DDI
    ddi_pokec Solaris DDI
    ddi_poked Solaris DDI
    ddi_pokel Solaris DDI
    ddi_pokes Solaris DDI
    ddi_prop_create Solaris DDI
    ddi_prop_exists Solaris DDI
    ddi_prop_free Solaris DDI
    ddi_prop_get_int Solaris DDI
    ddi_prop_lookup Solaris DDI
    ddi_prop_lookup_byte_array Solaris DDI
    ddi_prop_lookup_int_array Solaris DDI
    ddi_prop_lookup_string Solaris DDI
    ddi_prop_lookup_string_array Solaris DDI
    ddi_prop_modify Solaris DDI
    ddi_prop_op Solaris DDI
    ddi_prop_remove Solaris DDI
    ddi_prop_remove_all Solaris DDI
    ddi_prop_undefine Solaris DDI
    ddi_prop_update Solaris DDI
    ddi_prop_update_byte_array Solaris DDI
    ddi_prop_update_int Solaris DDI
    ddi_prop_update_int_array Solaris DDI
    ddi_prop_update_string Solaris DDI
    ddi_prop_update_string_array Solaris DDI
    ddi_ptob Solaris DDI
    ddi_put16 Solaris DDI
    ddi_put32 Solaris DDI
    ddi_put64 Solaris DDI
    ddi_put8 Solaris DDI
    ddi_putb Solaris DDI
    ddi_putl Solaris DDI
    ddi_putll Solaris DDI
    ddi_putw Solaris DDI
    ddi_regs_map_free Solaris DDI
    ddi_regs_map_setup Solaris DDI
    ddi_remove_intr Solaris DDI
    ddi_remove_minor_node Solaris DDI
    ddi_remove_softintr Solaris DDI
    ddi_rep_get16 Solaris DDI
    ddi_rep_get32 Solaris DDI
    ddi_rep_get64 Solaris DDI
    ddi_rep_get8 Solaris DDI
    ddi_rep_getb Solaris DDI
    ddi_rep_getl Solaris DDI
    ddi_rep_getll Solaris DDI
    ddi_rep_getw Solaris DDI
    ddi_rep_put16 Solaris DDI
    ddi_rep_put32 Solaris DDI
    ddi_rep_put64 Solaris DDI
    ddi_rep_put8 Solaris DDI
    ddi_rep_putb Solaris DDI
    ddi_rep_putl Solaris DDI
    ddi_rep_putll Solaris DDI
    ddi_rep_putw Solaris DDI
    ddi_report_dev Solaris DDI
    ddi_root_node Solaris DDI
    ddi_segmap Solaris DDI
    ddi_segmap_setup Solaris DDI
    ddi_set_driver_private Solaris DDI
    ddi_slaveonly Solaris DDI
    ddi_soft_state Solaris DDI
    ddi_soft_state_fini Solaris DDI
    ddi_soft_state_free Solaris DDI
    ddi_soft_state_init Solaris DDI
    ddi_soft_state_zalloc Solaris DDI
    ddi_trigger_softintr Solaris DDI
    ddi_umem_alloc Solaris DDI
    ddi_umem_free Solaris DDI
    ddi_unmap_regs Solaris DDI
    delay DDI/DKI
    devmap_default_access Solaris DDI
    devmap_devmem_setup Solaris DDI
    devmap_do_ctxmgt Solaris DDI
    devmap_load Solaris DDI
    devmap_set_ctx_timeout Solaris DDI
    devmap_setup Solaris DDI
    devmap_umem_setup Solaris DDI
    devmap_unload Solaris DDI
    disksort Solaris DDI
    drv_getparm DDI/DKI
    drv_hztousec DDI/DKI
    drv_priv DDI/DKI
    drv_usectohz DDI/DKI
    drv_usecwait DDI/DKI
    free_pktiopb Solaris DDI
    freerbuf DDI/DKI
    get_pktiopb Solaris DDI
    geterror DDI/DKI
    getmajor DDI/DKI
    getminor DDI/DKI
    getrbuf DDI/DKI
    hat_getkpfnum DKI only
    inb Solaris IA DDI
    inl Solaris IA DDI
    inw Solaris IA 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 IA DDI
    outl Solaris IA DDI
    outw Solaris IA DDI
    pci_config_get16 Solaris DDI
    pci_config_get32 Solaris DDI
    pci_config_get64 Solaris DDI
    pci_config_get8 Solaris DDI
    pci_config_getb Solaris DDI
    pci_config_getl Solaris DDI
    pci_config_getw Solaris DDI
    pci_config_put16 Solaris DDI
    pci_config_put32 Solaris DDI
    pci_config_put64 Solaris DDI
    pci_config_put8 Solaris DDI
    pci_config_putb Solaris DDI
    pci_config_putl Solaris DDI
    pci_config_putw Solaris DDI
    pci_config_setup Solaris DDI
    pci_config_teardown Solaris DDI
    physio Solaris DDI
    pollwakeup DDI/DKI
    proc_ref Solaris DDI
    proc_signal Solaris DDI
    proc_unref Solaris DDI
    ptob DDI/DKI
    repinsb Solaris IA DDI
    repinsd Solaris IA DDI
    repinsw Solaris IA DDI
    repoutsb Solaris IA DDI
    repoutsd Solaris IA DDI
    repoutsw Solaris IA 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

SEE ALSO

SunOS 5.9  Last Revised 15 May 2001

NAME | DESCRIPTION | STREAMS Kernel Function Summary | SEE ALSO