ddi_umem_iosetup man page on OpenIndiana

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

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

NAME
       ddi_umem_iosetup - Setup I/O requests to application memory

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

       struct buf *ddi_umem_iosetup(ddi_umem_cookie_t cookie,off_t off,
	    size_t len, int direction, dev_t dev, daddr_t blkno,
	    int (*iodone) (struct buf *), int sleepflag);

INTERFACE LEVEL
       Solaris DDI specific (Solaris DDI)

PARAMETERS
       cookie	     The kernel memory cookie allocated by ddi_umem_lock(9F).

       off	     Offset from the start of the cookie.

       len	     Length of the I/O request in bytes.

       direction     Must  be  set  to	B_READ	for  reads  from the device or
		     B_WRITE for writes to the device.

       dev	     Device number

       blkno	     Block number on device.

       iodone	     Specific biodone(9F) routine.

       sleepflag     Determines whether caller can sleep for memory.  Possible
		     flags  are	 DDI_UMEM_SLEEP to allow sleeping until memory
		     is available, or DDI_UMEM_NOSLEEP to return NULL  immedi‐
		     ately if memory is not available.

DESCRIPTION
       The  ddi_umem_iosetup(9F)  function  is	used  by  drivers to setup I/O
       requests to  application	 memory	 which	has  been  locked  down	 using
       ddi_umem_lock(9F).

       The ddi_umem_iosetup(9F) function returns a pointer to a buf(9S) struc‐
       ture corresponding to the memory cookie cookie. Drivers can setup  mul‐
       tiple  buffer  structures  simultaneously  active using the same memory
       cookie. The buf(9S) structures can span all or part of the region  rep‐
       resented	 by  the cookie and can overlap each other. The buf(9S) struc‐
       ture can be  passed  to	ddi_dma_buf_bind_handle(9F)  to	 initiate  DMA
       transfers to or from the locked down memory.

       The  off	  parameter specifies the offset from the start of the cookie.
       The len parameter represents the length of region to be mapped  by  the
       buffer.	The  direction	parameter  must	 be  set  to  either B_READ or
       B_WRITE, to indicate the action that will be performed by  the  device.
       (Note  that  this direction is in the opposite sense of the VM system's
       direction of DDI_UMEMLOCK_READ and DDI_UMEMLOCK_WRITE.)	The  direction
       must  be	 compatible with the flags used to create the memory cookie in
       ddi_umem_lock(9F). For example, if ddi_umem_lock() is called  with  the
       flags  parameter	 set  to DDI_UMEMLOCK_READ, the direction parameter in
       ddi_umem_iosetup() should be set to B_WRITE.

       The dev parameter specifies the device to which the buffer is  to  per‐
       form I/O.The blkno parameter represents the block number on the device.
       It will be assigned to the b_blkno field of the returned buffer	struc‐
       ture.  The  iodone  parameter enables the driver to identify a specific
       biodone(9F) routine to be called by the driver when  the	 I/O  is  com‐
       plete.  The sleepflag  parameter determines if the caller can sleep for
       memory. DDI_UMEM_SLEEP allocations may sleep but are guaranteed to suc‐
       ceed.  DDI_UMEM_NOSLEEP	allocations  do not sleep but may fail (return
       NULL) if memory is currently not available.

       After the I/O has completed and	the  buffer  structure	is  no	longer
       needed, the driver calls freerbuf(9F) to free the buffer structure.

RETURN VALUES
       The  ddi_umem_iosetup(9F) function returns a pointer to the initialized
       buffer header, or NULL if no space is available.

CONTEXT
       The ddi_umem_iosetup(9F) function can be called from any	 context  only
       if   flag  is  set  to  DDI_UMEM_NOSLEEP.  If  DDI_UMEM_SLEEP  is  set,
       ddi_umem_iosetup(9F) can be called from user and kernel context only.

SEE ALSO
       ddi_umem_lock(9F),      ddi_dma_buf_bind_handle(9F),	 freerbuf(9F),
       physio(9F), buf(9S)

SunOS 5.11			  4 Feb 2003		  ddi_umem_iosetup(9F)
[top]

List of man pages available for OpenIndiana

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