svcadm(8)을 검색하려면 섹션에서 8 을 선택하고, 맨 페이지 이름에 svcadm을 입력하고 검색을 누른다.
aphysio(9f)
aphysio(9F) Kernel Functions 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 submit‐
ted request. The driver must pass the address of the func‐
tion anocancel(9F) because cancellation is not supported.
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 trans‐
fer 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 opera‐
tions. 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)
Writing Device Drivers in Oracle Solaris 11.4
WARNINGS
It is the driver's responsibility to call biodone(9F) when the transfer
is complete.
BUGS
Cancellation is not supported in this release. The address of the func‐
tion anocancel(9F) must be used as the cancel argument.
Oracle Solaris 11.4 9 Nov 1994 aphysio(9F)