ddi_dma_cookie(9s) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

ddi_dma_cookie(9s)

Kernel & Driver Data Structures                             ddi_dma_cookie(9S)



NAME
       ddi_dma_cookie - DMA address cookie

SYNOPSIS
       #include <sys/sunddi.h>

INTERFACE LEVEL
       Solaris DDI specific (Solaris DDI).

DESCRIPTION
       The   ddi_dma_cookie_t   structure  contains  DMA  address  information
       required to program a DMA engine. The structure is filled in by a  call
       to       ddi_dma_getwin(9F),      ddi_dma_addr_bind_handle(9F),      or
       ddi_dma_buf_bind_handle(9F), to get device-specific DMA transfer infor‐
       mation for a DMA request or a DMA window.

STRUCTURE MEMBERS
         typedef struct {
             union {
                     uint64_t        _dmac_ll;    /* 64 bit DMA add. */
                     uint32_t        _dmac_la[2]; /* 2 x 32 bit add. */
             } _dmu;
             size_t          dmac_size;   /* DMA cookie size */
             uint_t          dmac_type;   /* bus spec. type bits */
         } ddi_dma_cookie_t;



       You  can  access the DMA address through the #defines: dmac_address for
       32-bit addresses and dmac_laddress for 64-bit addresses.  These  macros
       are defined as follows:

         #define dmac_laddress   _dmu._dmac_ll
         #ifdef _LONG_LONG_HTOL
         #define dmac_notused    _dmu._dmac_la[0]
         #define dmac_address    _dmu._dmac_la[1]
         #else
         #define dmac_address    _dmu._dmac_la[0]
         #define dmac_notused    _dmu._dmac_la[1]
         #endif





       dmac_laddress  specifies  a 64-bit I/O address appropriate for program‐
       ming the device's DMA engine. If a device has a 64-bit DMA address reg‐
       ister  a  driver  should  use  this  field  to  program the DMA engine.
       dmac_address specifies a 32-bit I/O address.  It  should  be  used  for
       devices  that have a 32-bit DMA address register. The I/O address range
       that the device can address and other DMA attributes have to be  speci‐
       fied in a ddi_dma_attr(9S) structure.


       dmac_size describes the length of the transfer in bytes.


       dmac_type contains bus-specific type bits, if appropriate. For example,
       a device on a PCI bus has PCI address modifier bits placed here.

SEE ALSO
       pci(5), sysbus(5), ddi_dma_addr_bind_handle(9F),  ddi_dma_buf_bind_han‐
       dle(9F), ddi_dma_getwin(9F), ddi_dma_nextcookie(9F), ddi_dma_attr(9S)


       Writing Device Drivers in Oracle Solaris 11.4



Oracle Solaris 11.4               25 Jan 2017               ddi_dma_cookie(9S)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3