ddi_dma_nextwin(9f) 맨 페이지 - 윈디하나의 솔라나라

개요

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

ddi_dma_nextwin(9f)

ddi_dma_nextwin(9F)            Kernel Functions            ddi_dma_nextwin(9F)



NAME
       ddi_dma_nextwin - get next DMA window

SYNOPSIS
       #include <sys/ddi.h>
       #include <sys/sunddi.h>

       int ddi_dma_nextwin(ddi_dma_handle_t handle, ddi_dma_win_t win,
            ddi_dma_win_t *nwin);

INTERFACE LEVEL
       This interface is obsolete. ddi_dma_getwin(9F) should be used instead.

PARAMETERS
       handle    A DMA handle.


       win       The current DMA window or NULL.


       nwin      A  pointer  to the next DMA window to be filled in. If win is
                 NULL, a pointer to the first  window  within  the  object  is
                 returned.


DESCRIPTION
       The ddi_dma_nextwin() function shifts the current DMA window win within
       the object referred to by handle to the next DMA window  nwin.  If  the
       current window is NULL, the first window within the object is returned.
       A DMA window is a portion of a  DMA  object  or  might  be  the  entire
       object.  A  DMA window has system resources allocated to it and is pre‐
       pared to accept data transfers. Examples of system resources  are  DVMA
       mapping resources and intermediate transfer buffer resources.


       All  DMA  objects  require  a  window. If the DMA window represents the
       whole DMA object it has system resources allocated for the entire  data
       transfer.  However,  if  the  system  is unable to setup the entire DMA
       object due to system resource limitations, the driver writer may  allow
       the  system  to  allocate system resources for less than the entire DMA
       object. This can be accomplished by specifying the DDI_DMA_PARTIAL flag
       as a parameter to ddi_dma_buf_setup(9F) or ddi_dma_addr_setup(9F) or as
       part of a ddi_dma_req(9S) structure in a call to ddi_dma_setup(9F).


       Only the window that has resources allocated is valid per object at any
       one  time. The currently valid window is the one that was most recently
       returned  from  ddi_dma_nextwin().  Furthermore,  because  a  call   to
       ddi_dma_nextwin()  will  reallocate system resources to the new window,
       the previous window will become invalid. It is a severe error  to  call
       ddi_dma_nextwin() before any transfers into the current window are com‐
       plete.


       The ddi_dma_nextwin() function takes care of underlying memory synchro‐
       nizations  required to shift the window. However, if you want to access
       the data before or after moving the  window,  further  synchronizations
       using ddi_dma_sync(9F) are required.

RETURN VALUES
       The ddi_dma_nextwin() function returns:

       DDI_SUCCESS      Successfully filled in the next window pointer.


       DDI_DMA_DONE     There  is  no  next  window. The current window is the
                        final window within the specified object.


       DDI_DMA_STALE    win does not refer to the currently active window.


CONTEXT
       The ddi_dma_nextwin() function can be called from user,  interrupt,  or
       kernel context.

EXAMPLES
       For an example see ddi_dma_segtocookie(9F).

ATTRIBUTES
       See attributes(7) for a description of the following attributes:


       tab()  box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE TYPEAT‐
       TRIBUTE VALUE _ Stability LevelObsolete


SEE ALSO
       attributes(7),      ddi_dma_addr_setup(9F),      ddi_dma_buf_setup(9F),
       ddi_dma_getwin(9F),    ddi_dma_nextseg(9F),    ddi_dma_segtocookie(9F),
       ddi_dma_sync(9F), ddi_dma_req(9S)


       Writing Device Drivers in Oracle Solaris 11.4



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