VOID NEAR IORBDone (NPA npA) { PIORB pIORB = npA->pIORB; /* ** If a removable media has changed then ignore any error that ** may have occured and report the changed media error. ** Report media changed only once. */ DISABLE pIORB->ErrorCode = npA->IORBError; pIORB->Status = npA->IORBStatus | IORB_DONE; #if PCITRACER outpw (TRPORT+2, 0x9999); outpw (TRPORT+2, pIORB->Status); outpw (TRPORT+2, pIORB->ErrorCode); #endif npA->pIORB = 0; ENABLE if (pIORB->RequestControl & IORB_ASYNC_POST) pIORB->NotifyAddress (pIORB); #if PCITRACER outpw (TRPORT, 0xDEEE); #endif }
VOID NEAR IORBDone (NPA npA) { PIORB pIORB = npA->pIORB; DISABLE pIORB->ErrorCode = npA->IORBError; pIORB->Status = npA->IORBStatus | IORB_DONE; #if PCITRACER outpw (TRPORT+2, 0x9999); outpw (TRPORT+2, pIORB->Status); outpw (TRPORT+2, pIORB->ErrorCode); #endif npA->pIORB = 0; ENABLE if (pIORB->RequestControl & IORB_ASYNC_POST) pIORB->NotifyAddress (pIORB); #if PCITRACER outpw (TRPORT, 0xDEEE); #endif }
/* Notify client that the IORB processing is completed. */ void NotifyDone (PIORB pIORB) { pIORB->Status |= IORB_DONE; /* Set 'DONE' flag */ if (pIORB->RequestControl&IORB_ASYNC_POST) /* If notify flag set... */ pIORB->NotifyAddress(pIORB); /* Notify the caller */ }