Replace internal Pipe_BytesToEPSizeMask() routine with a new version which results in smaller code.

pull/1469/head
Dean Camera 15 years ago
parent 97143bf814
commit 83e293a6ec

@ -1061,18 +1061,16 @@
static inline uint8_t Pipe_BytesToEPSizeMask(const uint16_t Bytes) ATTR_WARN_UNUSED_RESULT ATTR_CONST ATTR_ALWAYS_INLINE; static inline uint8_t Pipe_BytesToEPSizeMask(const uint16_t Bytes) ATTR_WARN_UNUSED_RESULT ATTR_CONST ATTR_ALWAYS_INLINE;
static inline uint8_t Pipe_BytesToEPSizeMask(const uint16_t Bytes) static inline uint8_t Pipe_BytesToEPSizeMask(const uint16_t Bytes)
{ {
if (Bytes <= 8) uint8_t MaskVal = 0;
return (0 << EPSIZE0); uint16_t CheckBytes = 8;
else if (Bytes <= 16)
return (1 << EPSIZE0); while ((CheckBytes < Bytes) && (CheckBytes < PIPE_MAX_SIZE))
else if (Bytes <= 32) {
return (2 << EPSIZE0); MaskVal++;
else if (Bytes <= 64) CheckBytes <<= 1;
return (3 << EPSIZE0); }
else if (Bytes <= 128)
return (4 << EPSIZE0); return (MaskVal << EPSIZE0);
else
return (5 << EPSIZE0);
} }
#endif #endif

Loading…
Cancel
Save