src/ssx/occhw/occhw_async_ocb.c
// This is the internal 'run method' for reading through an OCB circular
// queue.  The run method simply enables the IRQ.  The interrupt handler reads
// data from the queue and leaves the interrupt enabled until the read is
// satisfied.
This is the internal 'run method' for reading through an OCB circular
queue.  The run method simply enables the IRQ.  The interrupt handler reads
data from the queue and leaves the interrupt enabled until the read is
satisfied.
This is the internal ' run method ' for reading through an OCB circular queue . The run method simply enables the IRQ . The interrupt handler reads data from the queue and leaves the interrupt enabled until the read is satisfied .
static int
ocb_read_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_read_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 reading through an OCB circular
queue.
This is the internal ' run method ' for reading through an OCB circular queue .