aphysio man page on SunOS

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

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

NAME
       aphysio, aminphys - perform asynchronous physical I/O

SYNOPSIS
       #include <sys/types.h>
       #include <sys/buf.h>
       #include <sys/uio.h>
       #include <sys/aio_req.h>
       #include <sys/ddi.h>
       #include <sys/sunddi.h>

       int  aphysio(int (*strat)( struct buf *), int (*cancel)(struct buf *),
	   dev_t dev, int rw, void (*mincnt)(struct buf *),
	   struct  aio_req *aio_reqp);

PARAMETERS
       strat	    Pointer to device strategy routine.

       cancel	    Pointer  to	 driver cancel routine.	 Used to cancel a sub‐
		    mitted request. The driver must pass the  address  of  the
		    function  anocancel(9F)  because  cancellation is not sup‐
		    ported.

       dev	    The device number.

       rw	    Read/write flag. This is either  B_READ when reading  from
		    the device or B_WRITE when writing to the device.

       mincnt	    Routine which bounds the maximum transfer unit size.

       aio_reqp	    Pointer  to the  aio_req(9S) structure which describes the
		    user I/O request.

INTERFACE LEVEL
       Solaris	DDI specific (Solaris DDI).

DESCRIPTION
       aphysio() performs asynchronous	I/O operations between the device  and
       the address space described by aio_reqp→aio_uio.

       Prior  to  the start of the transfer,  aphysio() verifies the requested
       operation is valid.  It then locks  the	pages  involved	 in  the   I/O
       transfer	 so  they  can not be paged out.  The device strategy routine,
       strat, is then called one or more times to  perform the	physical   I/O
       operations.    aphysio()	 does  not wait for each transfer to complete,
       but returns as soon as the necessary requests have been made.

       aphysio() calls	mincnt to bound the maximum transfer unit  size	 to  a
       sensible	 default  for the  device and the system. Drivers which do not
       provide their own local mincnt routine should call  aphysio() with min‐
       phys(9F).  minphys(9F)  is  the	system	 mincnt routine.   minphys(9F)
       ensures the transfer  size does not exceed any system limits.

       If a driver supplies a local  mincnt routine, this routine should  per‐
       form the following actions:

	   o	  If  bp→b_bcount  exceeds  a  device  limit, physio() returns
		  ENOTSUP.

	   o	  Call aminphys(9F) to ensure that the driver does not circum‐
		  vent	additional  system  limits.  If	 aminphys(9F) does not
		  return 0, return ENOTSUP.

RETURN VALUES
       aphysio() returns:

       0	   Upon success.

       non-zero	   Upon failure.

CONTEXT
       aphysio() can be called from user context only.

SEE ALSO
       aread(9E),  awrite(9E),	 strategy(9E),	 anocancel(9F),	  biodone(9F),
       biowait(9F), minphys(9F), physio(9F), aio_req(9S), buf(9S), uio(9S)

WARNINGS
       It  is the driver's responsibility to call  biodone(9F) when the trans‐
       fer is complete.

BUGS
       Cancellation is not supported in this release.	 The  address  of  the
       function anocancel(9F) must be used as the  cancel argument.

SunOS 5.10			  9 Nov 1994			   aphysio(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