Speed up calls to Pipe_IsPipeBound() by immediately skipping unconfigured pipes, rather than performing token check first.

pull/1469/head
Dean Camera 15 years ago
parent 5fa0e9c007
commit 75d440ace3

@ -139,7 +139,7 @@ uint8_t Endpoint_Discard_Stream(uint16_t Length
#if !defined(NO_STREAM_CALLBACKS) #if !defined(NO_STREAM_CALLBACKS)
, StreamCallbackPtr_t Callback , StreamCallbackPtr_t Callback
#endif #endif
) )
{ {
uint8_t ErrorCode; uint8_t ErrorCode;

@ -79,13 +79,16 @@ bool Pipe_IsEndpointBound(const uint8_t EndpointAddress)
{ {
Pipe_SelectPipe(PNum); Pipe_SelectPipe(PNum);
uint8_t PipeToken = Pipe_GetPipeToken(); if (!(Pipe_IsConfigured()))
continue;
uint8_t PipeToken = Pipe_GetPipeToken();
bool PipeTokenCorrect = true; bool PipeTokenCorrect = true;
if (PipeToken != PIPE_TOKEN_SETUP) if (PipeToken != PIPE_TOKEN_SETUP)
PipeTokenCorrect = (PipeToken == ((EndpointAddress & PIPE_EPDIR_MASK) ? PIPE_TOKEN_IN : PIPE_TOKEN_OUT)); PipeTokenCorrect = (PipeToken == ((EndpointAddress & PIPE_EPDIR_MASK) ? PIPE_TOKEN_IN : PIPE_TOKEN_OUT));
if (Pipe_IsConfigured() && PipeTokenCorrect && (Pipe_BoundEndpointNumber() == (EndpointAddress & PIPE_EPNUM_MASK))) if (PipeTokenCorrect && (Pipe_BoundEndpointNumber() == (EndpointAddress & PIPE_EPNUM_MASK)))
return true; return true;
} }
@ -131,9 +134,9 @@ uint8_t Pipe_WaitUntilReady(void)
uint8_t Pipe_Discard_Stream(uint16_t Length uint8_t Pipe_Discard_Stream(uint16_t Length
#if !defined(NO_STREAM_CALLBACKS) #if !defined(NO_STREAM_CALLBACKS)
, StreamCallbackPtr_t Callback , StreamCallbackPtr_t Callback
#endif #endif
) )
{ {
uint8_t ErrorCode; uint8_t ErrorCode;

Loading…
Cancel
Save