diff options
| author | Dean <Dean@d5102386-fcda-11dd-9fdb-3debd5008f28> | 2010-06-12 07:01:18 +0000 |
|---|---|---|
| committer | Dean <Dean@d5102386-fcda-11dd-9fdb-3debd5008f28> | 2010-06-12 07:01:18 +0000 |
| commit | dd5838e83d04bce2a09e0c37e80135b720397ab0 (patch) | |
| tree | 29fe64063e3e8eb1c6db1231ef284b4c76b832c6 /LUFA | |
| parent | ac251c907daf5c50c2223334b446c23f7282d927 (diff) | |
Speed up calls to Pipe_IsPipeBound() by immediately skipping unconfigured pipes, rather than performing token check first.
git-svn-id: http://lufa-lib.googlecode.com/svn/trunk@1328 d5102386-fcda-11dd-9fdb-3debd5008f28
Diffstat (limited to 'LUFA')
| -rw-r--r-- | LUFA/Drivers/USB/LowLevel/Endpoint.c | 2 | ||||
| -rw-r--r-- | LUFA/Drivers/USB/LowLevel/Pipe.c | 11 |
2 files changed, 8 insertions, 5 deletions
diff --git a/LUFA/Drivers/USB/LowLevel/Endpoint.c b/LUFA/Drivers/USB/LowLevel/Endpoint.c index 15cb9d01..22579af6 100644 --- a/LUFA/Drivers/USB/LowLevel/Endpoint.c +++ b/LUFA/Drivers/USB/LowLevel/Endpoint.c @@ -139,7 +139,7 @@ uint8_t Endpoint_Discard_Stream(uint16_t Length #if !defined(NO_STREAM_CALLBACKS) , StreamCallbackPtr_t Callback #endif - ) + ) { uint8_t ErrorCode; diff --git a/LUFA/Drivers/USB/LowLevel/Pipe.c b/LUFA/Drivers/USB/LowLevel/Pipe.c index 4bfcc21e..8e817a27 100644 --- a/LUFA/Drivers/USB/LowLevel/Pipe.c +++ b/LUFA/Drivers/USB/LowLevel/Pipe.c @@ -79,13 +79,16 @@ bool Pipe_IsEndpointBound(const uint8_t EndpointAddress) { Pipe_SelectPipe(PNum); - uint8_t PipeToken = Pipe_GetPipeToken(); + if (!(Pipe_IsConfigured())) + continue; + + uint8_t PipeToken = Pipe_GetPipeToken(); bool PipeTokenCorrect = true; if (PipeToken != PIPE_TOKEN_SETUP) 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; } @@ -131,9 +134,9 @@ uint8_t Pipe_WaitUntilReady(void) uint8_t Pipe_Discard_Stream(uint16_t Length #if !defined(NO_STREAM_CALLBACKS) - , StreamCallbackPtr_t Callback + , StreamCallbackPtr_t Callback #endif - ) + ) { uint8_t ErrorCode; |
