MCPcopy Create free account
hub / github.com/360Controller/360Controller / SerialReadComplete

Method SerialReadComplete

360Controller/_60Controller.cpp:854–886  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

852}
853
854void Xbox360Peripheral::SerialReadComplete(void *parameter, IOReturn status, UInt32 bufferSizeRemaining)
855{
856 if (padHandler != NULL) // avoid deadlock with release
857 {
858 LockRequired locker(mainLock);
859 bool reread = !isInactive();
860
861 switch (status)
862 {
863 case kIOReturnOverrun:
864 IOLog("read (serial) - kIOReturnOverrun, clearing stall\n");
865 if (serialInPipe != NULL)
866 serialInPipe->ClearStall();
867 // Fall through
868 case kIOReturnSuccess:
869 serialHeard = true;
870 if (serialInBuffer != NULL)
871 SerialMessage(serialInBuffer, serialInBuffer->getCapacity() - bufferSizeRemaining);
872 break;
873
874 case kIOReturnNotResponding:
875 IOLog("read (serial) - kIOReturnNotResponding\n");
876 reread = false;
877 break;
878
879 default:
880 reread = false;
881 break;
882 }
883 if (reread)
884 QueueSerialRead();
885 }
886}
887
888// Handle a completed asynchronous write
889void Xbox360Peripheral::WriteComplete(void *parameter,IOReturn status,UInt32 bufferSizeRemaining)

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected