SunOS リファレンスマニュアル 9 : DDI/DKI カーネル関数
  Rechercher uniquement dans ce livre
Afficher ce livre dans:
Télécharger cet ouvrage au format PDF (555 Ko)

Intro(9F)

名前 | 機能説明 | STREAMS カーネル関数の概要 | 関連項目

名前

    Intro– DDI/DKI 関数の序章

機能説明

    このセクションでは、デバイスドライバで使用可能なカーネル関数について説明します。デバイスドライバインタフェースの概要については、Intro(9E) を参照してください。

    このセクションでは、各デバイスドライバ関数の情報を次の項目別に記載しています。

    • 「名前」 - 関数の目的を簡単に示します。

    • 「形式」 - ソースコードに含まれる関数のエントリポイントの構文を示します。必要なヘッダーには、#include 指示子を示します。

    • 「インタフェースレベル」 - すべてのアーキテクチャ依存関係について説明します。

    • 「引数」 - 関数を呼び出すのに必要なすべての引数について説明します。

    • 「機能説明」 - 関数に関する概要情報を記載します。

    • 「戻り値」 - 関数を呼び出した結果の戻り値とメッセージについて説明します。

    • 「コンテキスト」 - 関数を呼び出すことのできるドライバコンテキスト (ユーザー、カーネル、割り込み、および高レベルな割り込み) を示します。

    • ユーザースレッドにより直接呼び出された場合は、ドライバ関数にユーザーコンテキストがあります。ドライバの read(9E) エントリポイントを read(2) システムコールから呼び出した場合も、ユーザーコンテキストがあります。

    • カーネルのほかの部分から呼び出された場合は、ドライバ関数にカーネルコンテキストがあります。ブロックデバイスドライバでは、デバイスにページを書き込むために、strategy(9E) エントリポイントがページデーモンによって呼び出される可能性があります。ページデーモンは現在のユーザースレッドとは関係がないので、この場合、strategy(9E) がカーネルコンテキストを持ちます。

    • 割り込みコンテキスト はカーネルコンテキストですが、同時にそれに関連する割り込みレベルも持ちます。ドライバ割り込みルーチンは、割り込みコンテキストを持ちます。


      注 –

      割り込みコンテキストでも入手できる mutex をユーザーコンテキストまたはカーネルコンテキストで入手した場合、この mutex を持つユーザーコンテキストスレッドまたはカーネルコンテキストスレッドは、この mutex を所有している限り、割り込みコンテキストによって強制されるすべての制限に影響されます。ドライバで mutex を適切に処理する方法について詳しくは、mutex(9F) のマニュアルページを参照してください。


    • 高レベルの割り込みコンテキストは、割り込みコンテキストの、より制限の厳しい形式です。ddi_intr_hilevel(9F) で、割り込みが高レベルの場合、ddi_add_intr(9F) を使ってその割り込みに追加されたドライバ割り込みルーチンは、高レベルの割り込みコンテキストで実行します。このような割り込みルーチンは、ddi_trigger_softintr(9F)、mutex_enter(9F) 、および mutex_exit(9F) を呼び出すことしかできません。さらに、mutex_enter(9F) とmutex_exit(9F) は、ddi_get_iblock_cookie(9F) で返された ddi_iblock_cookieで初期化される mutex 上でしか呼び出せない可能性があります。

    • 「関連項目」 - 「使用法」とソースから参照される関連する関数で、さらに詳細な情報を参照できます。

    • 「使用例」 - ドライバコードで関数を使用する方法を示します。

    すべてのドライバには、<sys/ddi.h> および <sys/sunddi.h> が、ドライバに含まれる最後のファイルとしてこの順序で含まれていなければなりません。

STREAMS カーネル関数の概要

    次の表は、このセクションで説明する STREAMS 関数を示します。

     ルーチン 種類
    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

    次の表は、STREAMS 固有ではない関数を示します。

     ルーチン 種類
    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 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_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_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 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_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 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

関連項目

SunOS 5.10  最終更新日 2004 年 11 月 1 日

名前 | 機能説明 | STREAMS カーネル関数の概要 | 関連項目