Changes between Version 20 and Version 21 of ioc_device_api


Ignore:
Timestamp:
Jan 23, 2020, 12:25:14 AM (4 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ioc_device_api

    v20 v21  
    99The block size is supposed to be 512 bytes.
    1010
    11 The "user" API contains the functions used by the user-level system calls, and defines four operation types : the '''IOC_READ''', '''IOC_WRITE''', '''IOC_SYNC_READ''', and '''IOC_SYNC_WRITE''' operations move a given number of contiguous blocks between the block device and a kernel memory buffer. This API is detailed in section C below.
     11The "kernel" API contains the functions used by the system calls, and defines four operation types : the '''IOC_READ''', '''IOC_WRITE''', '''IOC_SYNC_READ''', and '''IOC_SYNC_WRITE''' operations move a given number of contiguous blocks between the block device and a kernel memory buffer. This API is detailed in section C below.
    1212
    1313The '''asynchronous''' IOC_READ and IOC_WRITE operations are not directly executed by the client thread. The requests are registered in the waiting queue rooted in the IOC chdev descriptor. These requests are actually handled by a dedicated '''server thread''' running in the cluster containing the chdev descriptor, that calls the generic ''ioc_driver_cmd()'' function for each registered request.
     
    3333It must be called by a local thread.
    3434
    35 == __C) The "user" API__ ==
     35== __C) The "kernel" API__ ==
    3636
    3737These four I/O operations are blocking and return only when the transfer is completed, but the blocking policy depends on the operation type.