Transfer Completion. A transfer is completed when the Host Controller successfully transfers, to or from an endpoint, the byte pointed to by BufferEnd. Upon successful completion, the Host Controller sets CurrentBufferPointer to zero, sets ConditionCode to NOERROR, and retires the General TD to the Done Queue. The transfer may also complete when a data packet from an endpoint does not fill the buffer and is less than Maximum Packet Size bytes in length. In this case, CurrentBufferPointer is updated to point to the memory byte immediately after the last byte written to memory. Then, if the bufferRounding bit in the General TD is set, then this condition is treated as a normal completion and the Host Controller sets the ConditionCode field to NOERROR and retires the General TD to the Done Queue. If the bufferRounding bit in the General TD is not set, then this condition is treated as an error and the Host Controller sets the ConditionCode field to DATAUNDERRUN and the Halted bit of the ED is set as the General TD is retired.
Appears in 2 contracts
Sources: Adopter’s Agreement for Open Host Controller Interface Reciprocal Covenant, Adopter’s Agreement for Open Host Controller Interface Reciprocal Covenant