asyncio: remove unused field asyncio_op_t.flying_w

This commit is contained in:
Lephe 2023-02-16 16:09:53 +01:00
parent af5c16a3d3
commit 6910714c2c
No known key found for this signature in database
GPG key ID: 1BBA026E13FC0495
2 changed files with 17 additions and 12 deletions

View file

@ -53,15 +53,18 @@
The invariants and meaning for each state are as follow: The invariants and meaning for each state are as follow:
State Characterization Description State(s) Characterization Description
============================================================================ ============================================================================
IDLE type == ASYNCIO_NONE No I/O operation IDLE type == ASYNCIO_NONE No I/O operation
PENDING data_w && !flying_w \ Ready to write pending data ----------------------------------------------------------------------------
&& round_size == 0 PENDING data_w && round_size == 0 Ready to write pending data
WRITING round_size > 0 CPU/DMA write to HW in progress ----------------------------------------------------------------------------
FLYING-WRITE flying_w && type == WRITE HW transmission in progress WRITING, round_size > 0 CPU/DMA write to HW in progress
FLYING-WRITE HW transmission in progress
----------------------------------------------------------------------------
IN-PROGRESS !data_w && type == WRITE Waiting for write(2) or fsync(2) IN-PROGRESS !data_w && type == WRITE Waiting for write(2) or fsync(2)
FLYING-SYNC flying_w && type == SYNC HW commit in progress ----------------------------------------------------------------------------
FLYING-SYNC type == ASYNCIO_SYNC HW commit in progress
============================================================================ ============================================================================
For a read: For a read:
@ -87,8 +90,11 @@
State Characterization Description State Characterization Description
============================================================================ ============================================================================
IDLE-EMPTY type == ASYNCIO_NONE No I/O operation IDLE-EMPTY type == ASYNCIO_NONE No I/O operation
----------------------------------------------------------------------------
IDLE-READY !data_r && buffer_size > 0 Hardware waiting for us to read IDLE-READY !data_r && buffer_size > 0 Hardware waiting for us to read
----------------------------------------------------------------------------
WAITING data_r && !buffer_size Waiting for further HW data WAITING data_r && !buffer_size Waiting for further HW data
----------------------------------------------------------------------------
READING round_size > 0 DMA/CPU read from HW in progress READING round_size > 0 DMA/CPU read from HW in progress
============================================================================ ============================================================================
@ -127,9 +133,6 @@ typedef volatile struct
Usually, this is assigned for the duration of hardware transaction. Usually, this is assigned for the duration of hardware transaction.
This value is user-managed and not modified by asyncio_op functions. */ This value is user-managed and not modified by asyncio_op functions. */
uint8_t controller; uint8_t controller;
/* Whether a hardware operation is in progress ("flying" write states) */
// TODO: Do we actually set and maintain this member?!
bool flying_w;
/** Internal information **/ /** Internal information **/

View file

@ -11,9 +11,12 @@ bool asyncio_op_busy(asyncio_op_t const *op)
/* WAITING and READING states are busy */ /* WAITING and READING states are busy */
if(op->type == ASYNCIO_READ) if(op->type == ASYNCIO_READ)
return op->round_size || op->data_r != NULL; return op->round_size || op->data_r != NULL;
/* WRITING, FLYING-WRITE, FLYING-COMMIT and PENDING states are busy */ /* WRITING, FLYING-WRITE and PENDING states are busy */
if(op->type == ASYNCIO_WRITE) if(op->type == ASYNCIO_WRITE)
return op->round_size || op->flying_w || op->data_w != NULL; return op->data_w != NULL;
/* FLYING-COMMIT state is busy */
if(op->type == ASYNCIO_SYNC)
return true;
return false; return false;
} }
@ -62,7 +65,6 @@ void asyncio_op_finish_call(asyncio_op_t *op)
op->size = 0; op->size = 0;
op->callback = GINT_CALL_NULL; op->callback = GINT_CALL_NULL;
op->round_size = 0; op->round_size = 0;
op->flying_w = false;
} }
else { else {
asyncio_op_clear(op); asyncio_op_clear(op);