ddi_umem_iosetup man page on SmartOS

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

DDI_UMEM_IOSETUP(9F)					  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
       succeed.	  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)

				  Feb 4, 2003		  DDI_UMEM_IOSETUP(9F)
[top]

List of man pages available for SmartOS

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