The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

ddi_dma_cookie (9)
  • >> ddi_dma_cookie (9) ( Solaris man: Ядро )
  •  

    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 information 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 programming the device's DMA engine. If a device has a 64-bit DMA address register 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 specified 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(4), sbus(4), sysbus(4), ddi_dma_addr_bind_handle(9F), ddi_dma_buf_bind_handle(9F), ddi_dma_getwin(9F), ddi_dma_nextcookie(9F), ddi_dma_attr(9S)

    Writing Device Drivers


     

    Index

    NAME
    SYNOPSIS
    INTERFACE LEVEL
    DESCRIPTION
    STRUCTURE MEMBERS
    SEE ALSO


    Поиск по тексту MAN-ов: 




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру