diff options
| author | Zixun LI <[email protected]> | 2026-04-24 11:19:41 +0200 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-04-24 11:19:41 +0200 |
| commit | 4c7fd70e53b34bf63ef9334f2b5624cac48299f1 (patch) | |
| tree | 827d5c3ab5e53bdf2ab633a5805715ef05c8e686 /src/common/tusb_types.h | |
| parent | 1e644339fd984fd6168b8cc09728d3bb56f2eea2 (diff) | |
| parent | 5939831f17272571911d089508b458f496a4cc62 (diff) | |
Merge pull request #3597 from canokeys/big-endian-for-setup-packets
fix #3596: big-endian host support for SETUP packet handling
Diffstat (limited to 'src/common/tusb_types.h')
| -rw-r--r-- | src/common/tusb_types.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/common/tusb_types.h b/src/common/tusb_types.h index d8b6a8823..8ae1407f8 100644 --- a/src/common/tusb_types.h +++ b/src/common/tusb_types.h @@ -409,10 +409,19 @@ typedef struct TU_ATTR_PACKED { uint8_t bEndpointAddress ; // The address of the endpoint struct TU_ATTR_PACKED { +#if (TU_BITFIELD_ORDER == TU_BITFIELD_LE) uint8_t xfer : 2; // Control, ISO, Bulk, Interrupt uint8_t sync : 2; // None, Asynchronous, Adaptive, Synchronous uint8_t usage : 2; // Data, Feedback, Implicit feedback uint8_t : 2; +#elif (TU_BITFIELD_ORDER == TU_BITFIELD_BE) + uint8_t : 2; + uint8_t usage : 2; + uint8_t sync : 2; + uint8_t xfer : 2; +#else + #error "Please define TU_BITFIELD_ORDER as TU_BITFIELD_LE or TU_BITFIELD_BE" +#endif } bmAttributes; uint16_t wMaxPacketSize ; // Bit 10..0 : max packet size, bit 12..11 additional transaction per highspeed micro-frame @@ -522,9 +531,17 @@ typedef struct TU_ATTR_PACKED { typedef struct TU_ATTR_PACKED { union { struct TU_ATTR_PACKED { +#if (TU_BITFIELD_ORDER == TU_BITFIELD_LE) uint8_t recipient : 5; ///< Recipient type tusb_request_recipient_t. uint8_t type : 2; ///< Request type tusb_request_type_t. uint8_t direction : 1; ///< Direction type. tusb_dir_t +#elif (TU_BITFIELD_ORDER == TU_BITFIELD_BE) + uint8_t direction : 1; ///< Direction type. tusb_dir_t + uint8_t type : 2; ///< Request type tusb_request_type_t. + uint8_t recipient : 5; ///< Recipient type tusb_request_recipient_t. +#else + #error "Please define TU_BITFIELD_ORDER as TU_BITFIELD_LE or TU_BITFIELD_BE" +#endif } bmRequestType_bit; uint8_t bmRequestType; |
