The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

aphysio (9)
  • >> aphysio (9) ( Solaris man: Ядро )
  •  

    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 submitted request. The driver must pass the address of the function 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 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 minphys(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 perform 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 circumvent 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 transfer is complete.  

    BUGS

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


     

    Index

    NAME
    SYNOPSIS
    PARAMETERS
    INTERFACE LEVEL
    DESCRIPTION
    RETURN VALUES
    CONTEXT
    SEE ALSO
    WARNINGS
    BUGS


    Поиск по тексту MAN-ов: 




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру