src/ssx/occhw/occhw_async_ocb.c
// This is the internal 'run method' for writing through an OCB circular
// queue. The run method simply enables the IRQ.  The interrupt handler writes
// data from the queue and leaves the interrupt enabled until the write is
// satisfied.
This is the internal 'run method' for writing through an OCB circular
queue. The run method simply enables the IRQ.  The interrupt handler writes
data from the queue and leaves the interrupt enabled until the write is
satisfied.
This is the internal ' run method ' for writing through an OCB circular queue . The run method simply enables the IRQ . The interrupt handler writes data from the queue and leaves the interrupt enabled until the write is satisfied .
static int
ocb_write_method(AsyncRequest* async_request)
{
    OcbRequest* request = (OcbRequest*)async_request;
    OcbQueue* queue = (OcbQueue*)(async_request->queue);
    int rc;
    if (request->bytes == 0)
    {
        rc = -ASYNC_REQUEST_COMPLETE;
    }
    else
    {
        ssx_irq_enable(queue->irq);
        rc = 0;
    }
    return rc;
}
static int ocb_write_method ( AsyncRequest * async_request ) { OcbRequest * request = ( OcbRequest * ) async_request ; OcbQueue * queue = ( OcbQueue * ) ( async_request -> queue ) ; int rc ; if ( request -> bytes == 0 ) { rc = - ASYNC_REQUEST_COMPLETE ; } else { ssx_irq_enable ( queue -> irq ) ; rc = 0 ; } return rc ; }
This is the internal 'run method' for writing through an OCB circular
queue.
This is the internal ' run method ' for writing through an OCB circular queue .