Changes between Version 20 and Version 21 of ioc_device_api
- Timestamp:
- Jan 23, 2020, 12:25:14 AM (5 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
ioc_device_api
v20 v21 9 9 The block size is supposed to be 512 bytes. 10 10 11 The " user" API contains the functions used by the user-levelsystem 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.11 The "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. 12 12 13 13 The '''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. … … 33 33 It must be called by a local thread. 34 34 35 == __C) The " user" API__ ==35 == __C) The "kernel" API__ == 36 36 37 37 These four I/O operations are blocking and return only when the transfer is completed, but the blocking policy depends on the operation type.