Oracle® Solaris 11.2 デバイスドライバの記述

印刷ビューの終了

更新: 2014 年 9 月
 
 

DMA ハンドルの割り当て

DMA ハンドルは、そのあとに割り当てられる DMA リソースへの参照として使用される不透明なオブジェクトです。DMA ハンドルは通常、ddi_dma_alloc_handle(9F) を使用する、ドライバの attach() エントリポイントで割り当てられます。ddi_dma_alloc_handle() 関数は、dip によって参照されるデバイス情報と、ddi_dma_attr (9S) 構造体によってパラメータとして記述されたデバイスの DMA 属性を取得します。ddi_dma_alloc_handle() 関数の構文は次のとおりです。

int ddi_dma_alloc_handle(dev_info_t *dip,
    ddi_dma_attr_t *attr, int (*callback)(caddr_t),
    caddr_t arg, ddi_dma_handle_t *handlep);

ここでは:

dip

デバイスの dev_info 構造体へのポインタ。

attr

ddi_dma_attr (9S) 構造体へのポインタです (DMA Attributes を参照)。

callback

リソース割り当てエラーに対処するためのコールバック関数のアドレスです。

arg

コールバック関数に渡される引数です。

handlep

返されたハンドルを格納するための DMA ハンドルへのポインタです。