ddi_iopb_free(9F)




NAME

     ddi_iopb_alloc,  ddi_iopb_free  -  allocate  and  free  non-
     sequentially accessed memory


SYNOPSIS

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

     int ddi_iopb_alloc(dev_info_t *dip,  ddi_dma_lim_t  *limits,
     uint_t length, caddr_t *iopbp);

     void ddi_iopb_free(caddr_t iopb);


INTERFACE LEVEL

     These interfaces  are  obsolete.  Use  ddi_dma_mem_alloc(9F)
     instead   of   ddi_iopb_alloc().   Use  ddi_dma_mem_free(9F)
     instead of ddi_iopb_free().


PARAMETERS

  ddi_iopb_alloc()
     dip   A pointer to the device's dev_info structure.

     limits
           A pointer to a DMA limits structure  for  this  device
           (see ddi_dma_lim_sparc(9S) or ddi_dma_lim_x86(9S)). If
           this pointer is NULL, a default set of DMA  limits  is
           assumed.

     length
           The length in bytes of the desired allocation.

     iopbp A pointer to a caddr_t. On a successful return, *iopbp
           points to the allocated storage.

  ddi_iopb_free()
     iopb  The  iopb  returned  from   a   successful   call   to
           ddi_iopb_alloc().


DESCRIPTION

     ddi_iopb_alloc() allocates memory  for   DMA  transfers  and
     should  be  used  if  the  device  accesses memory in a non-
     sequential  fashion,  or  if  synchronization  steps   using
     ddi_dma_sync(9F)  should  be as lightweight as possible, due
     to frequent use on small objects.  This type  of  access  is
     commonly  known  as   consistent access. The allocation will
     obey the alignment and padding constraints as  specified  in
     the limits argument and other limits imposed by the system.

     Note that you still must use DMA resource  allocation  func-
     tions (see ddi_dma_setup(9F)) to establish DMA resources for
     the memory allocated using ddi_iopb_alloc().

     In order to make the view of a memory object shared  between
     a  CPU and a DMA device consistent, explicit synchronization
     steps using ddi_dma_sync(9F) or ddi_dma_free(9F)  are  still
     required.  The DMA resources will be allocated so that these
     synchronization steps are as efficient as possible.

     ddi_iopb_free()    frees    up    memory    allocated     by
     ddi_iopb_alloc().


RETURN VALUES

     ddi_iopb_alloc() returns:

     DDI_SUCCESS
           Memory successfully allocated.

     DDI_FAILURE
           Allocation failed.


CONTEXT

     These functions can be called from user  or  interrupt  con-
     text.


ATTRIBUTES

     See attributes(5) for a description of the following  attri-
     butes:

     ____________________________________________________________
    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    |_____________________________|_____________________________|
    | Stability Level             | Obsolete                    |
    |_____________________________|_____________________________|


SEE ALSO

     attributes(5),   ddi_dma_free(9F),    ddi_dma_mem_alloc(9F),
     ddi_dma_mem_free(9F),  ddi_dma_setup(9F),  ddi_dma_sync(9F),
     ddi_mem_alloc(9F),                    ddi_dma_lim_sparc(9S),
     ddi_dma_lim_x86(9S), ddi_dma_req(9S)

     Writing Device Drivers


NOTES

     This function uses scarce system resources.  Use  it  selec-
     tively.


Man(1) output converted with man2html