ddi_mem_alloc man page on Solaris

Man page or keyword search:  
man Server   20652 pages
apropos Keyword Search (all sections)
Output format
Solaris logo
[printable version]

ddi_mem_alloc(9F)	 Kernel Functions for Drivers	     ddi_mem_alloc(9F)

NAME
       ddi_mem_alloc,  ddi_mem_free  - allocate and free sequentially accessed
       memory

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

       int  ddi_mem_alloc(dev_info_t  *dip,  ddi_dma_lim_t   *limits,	uint_t
       length, uint_t flags, caddr_t *kaddrp, uint_t *real_length);

       void ddi_mem_free(caddr_t kaddr);

INTERFACE LEVEL
       These	interfaces    are    obsolete.	  ddi_dma_mem_alloc(9F)	   and
       ddi_dma_mem_free(9F) should be used instead.

PARAMETERS
   ddi_mem_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.

       flags	       The  possible  flags 1 and 0 are taken to mean, respec‐
		       tively, wait until memory is available, or do not wait.

       kaddrp	       On a successful return, *kaddrp points to the allocated
		       memory.

       real_length     The  length  in bytes that was allocated. Alignment and
		       padding requirements may cause ddi_mem_alloc() to allo‐
		       cate more memory than requested in length.

   ddi_mem_free()
       kaddr	       The   memory   returned	 from  a  successful  call  to
		       ddi_mem_alloc().

DESCRIPTION
       The ddi_mem_alloc() function allocates memory  for  DMA	transfers  and
       should  be used if the device is performing sequential, unidirectional,
       block-sized and block-aligned transfers to or from memory. This type of
       access  is commonly known as streaming access. The allocation will obey
       the alignment and padding constraints as specified by the limits	 argu‐
       ment and other limits imposed by the system.

       Note  that  you	must  still use DMA resource allocation functions (see
       ddi_dma_setup(9F)) to establish DMA resources for the memory  allocated
       using  ddi_mem_alloc().	ddi_mem_alloc() returns the actual size of the
       allocated memory object.	 Because of  padding  and  alignment  require‐
       ments,  the  actual  size  might	 be  larger  than  the requested size.
       ddi_dma_setup(9F) requires the actual length.

       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 required.

       The   ddi_mem_free()   function	 frees	 up   memory   allocated    by
       ddi_mem_alloc().

RETURN VALUES
       The ddi_mem_alloc() function returns:

       DDI_SUCCESS     Memory successfully allocated.

       DDI_FAILURE     Allocation failed.

CONTEXT
       The  ddi_mem_alloc()  function  can  be called from user, interrupt, or
       kernel context, except when flags is set to 1, in which case it	cannot
       be called from interrupt context.

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

       ┌─────────────────────────────┬─────────────────────────────┐
       │      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_iopb_alloc(9F),     ddi_dma_lim_sparc(9S),	  ddi_dma_lim_x86(9S),
       ddi_dma_req(9S)

       Writing Device Drivers

SunOS 5.10			  04 Apr 2006		     ddi_mem_alloc(9F)
[top]

List of man pages available for Solaris

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net