ddi_umem_iosetup man page on SunOS

Man page or keyword search:  
man Server   20652 pages
apropos Keyword Search (all sections)
Output format
SunOS 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. Possi‐
		       ble flags are DDI_UMEM_SLEEP to	allow  sleeping	 until
		       memory is available, or DDI_UMEM_NOSLEEP to return NULL
		       immediately 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.10			  4 Feb 2003		  ddi_umem_iosetup(9F)
[top]

List of man pages available for SunOS

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