Changes between Version 19 and Version 20 of ioc_device_api


Ignore:
Timestamp:
Jan 22, 2020, 3:01:23 PM (4 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ioc_device_api

    v19 v20  
    3737These four I/O operations are blocking and return only when the transfer is completed, but the blocking policy depends on the operation type.
    3838
    39 === C.1) Asynchronous operations ===
     39'''C.1) Asynchronous operations'''
    4040
    4141* The '''dev_ioc_read( xptr_t buffer_xp , uint32_t lba , uint32_t count )''' blocking function moves <count> contiguous blocks from the block device, starting from block defined by the <lba> argument, to a kernel buffer defined by the <buffer_xp> argument. It register the request in the IOC device waiting queue. Then it blocks and deschedules.
     
    4949Note : According to the scheduler policy, the DEV threads have an higher priority than the USR threads, and a DEV thread keep blocked when the associated waiting queue is empty.
    5050
    51 === C.2) Synchronous operations ===
     51'''C.2) Synchronous operations'''
    5252
    5353* The '''dev_ioc_sync_read( xptr_t buffer_xp , uint32_t lba , uint32_t count )''' blocking function moves <count> contiguous blocks from the block device, starting from block defined by the <lba> argument, to a kernel buffer defined by the <buffer_xp> argument. It calls directly the IOC driver without rescheduling, and without using the IOC device waiting queue and the server thread.