rename bit filed order

clean up packed/bit order begin end
This commit is contained in:
hathach 2021-07-22 17:24:59 +07:00
parent 4e50ceba48
commit c4da1abb1e
4 changed files with 28 additions and 57 deletions

View File

@ -215,7 +215,9 @@ typedef enum
// Class Specific Functional Descriptor (Communication Interface)
//--------------------------------------------------------------------+
TU_ATTR_PACKED_BEGIN // Start of definition of packed structs (used by the CCRX toolchain)
// Start of all packed definitions for compiler without per-type packed
TU_ATTR_PACKED_BEGIN
TU_ATTR_BIT_FIELD_ORDER_BEGIN
/// Header Functional Descriptor (Communication Interface)
typedef struct TU_ATTR_PACKED
@ -236,10 +238,7 @@ typedef struct TU_ATTR_PACKED
uint8_t bSubordinateInterface ; ///< Array of Interface number of Data Interface
}cdc_desc_func_union_t;
TU_ATTR_PACKED_END // End of definition of packed structs (used by the CCRX toolchain)
#define cdc_desc_func_union_n_t(no_slave)\
TU_ATTR_PACKED_BEGIN \
struct TU_ATTR_PACKED { \
uint8_t bLength ;\
uint8_t bDescriptorType ;\
@ -247,10 +246,6 @@ TU_ATTR_PACKED_END // End of definition of packed structs (used by the CCRX too
uint8_t bControlInterface ;\
uint8_t bSubordinateInterface[no_slave] ;\
} \
TU_ATTR_PACKED_END
TU_ATTR_PACKED_BEGIN // Start of definition of packed structs (used by the CCRX toolchain)
/// Country Selection Functional Descriptor (Communication Interface)
typedef struct TU_ATTR_PACKED
@ -262,10 +257,7 @@ typedef struct TU_ATTR_PACKED
uint16_t wCountryCode ; ///< Country code in the format as defined in [ISO3166], release date as specified inoffset 3 for the first supported country.
}cdc_desc_func_country_selection_t;
TU_ATTR_PACKED_END // End of definition of packed structs (used by the CCRX toolchain)
#define cdc_desc_func_country_selection_n_t(no_country) \
TU_ATTR_PACKED_BEGIN \
struct TU_ATTR_PACKED { \
uint8_t bLength ;\
uint8_t bDescriptorType ;\
@ -273,17 +265,13 @@ TU_ATTR_PACKED_END // End of definition of packed structs (used by the CCRX too
uint8_t iCountryCodeRelDate ;\
uint16_t wCountryCode[no_country] ;\
} \
TU_ATTR_PACKED_END
//--------------------------------------------------------------------+
// PUBLIC SWITCHED TELEPHONE NETWORK (PSTN) SUBCLASS
//--------------------------------------------------------------------+
TU_ATTR_PACKED_BEGIN // Start of definition of packed structs (used by the CCRX toolchain)
/// \brief Call Management Functional Descriptor
/// \details This functional descriptor describes the processing of calls for the Communications Class interface.
TU_BIT_FIELD_ORDER_BEGIN
typedef struct TU_ATTR_PACKED
{
uint8_t bLength ; ///< Size of this descriptor in bytes.
@ -298,10 +286,7 @@ typedef struct TU_ATTR_PACKED
uint8_t bDataInterface;
}cdc_desc_func_call_management_t;
TU_BIT_FIELD_ORDER_END
TU_BIT_FIELD_ORDER_BEGIN
typedef struct TU_ATTR_PACKED
{
uint8_t support_comm_request : 1; ///< Device supports the request combination of Set_Comm_Feature, Clear_Comm_Feature, and Get_Comm_Feature.
@ -310,12 +295,11 @@ typedef struct TU_ATTR_PACKED
uint8_t support_notification_network_connection : 1; ///< Device supports the notification Network_Connection.
uint8_t TU_RESERVED : 4;
}cdc_acm_capability_t;
TU_BIT_FIELD_ORDER_END
TU_VERIFY_STATIC(sizeof(cdc_acm_capability_t) == 1, "mostly problem with compiler");
/// \brief Abstract Control Management Functional Descriptor
/// \details This functional descriptor describes the commands supported by by the Communications Class interface with SubClass code of \ref CDC_COMM_SUBCLASS_ABSTRACT_CONTROL_MODEL
/// Abstract Control Management Functional Descriptor
/// This functional descriptor describes the commands supported by by the Communications Class interface with SubClass code of \ref CDC_COMM_SUBCLASS_ABSTRACT_CONTROL_MODEL
typedef struct TU_ATTR_PACKED
{
uint8_t bLength ; ///< Size of this descriptor in bytes.
@ -326,7 +310,6 @@ typedef struct TU_ATTR_PACKED
/// \brief Direct Line Management Functional Descriptor
/// \details This functional descriptor describes the commands supported by the Communications Class interface with SubClass code of \ref CDC_FUNC_DESC_DIRECT_LINE_MANAGEMENT
TU_BIT_FIELD_ORDER_BEGIN
typedef struct TU_ATTR_PACKED
{
uint8_t bLength ; ///< Size of this descriptor in bytes.
@ -339,7 +322,6 @@ typedef struct TU_ATTR_PACKED
uint8_t TU_RESERVED : 5;
} bmCapabilities;
}cdc_desc_func_direct_line_management_t;
TU_BIT_FIELD_ORDER_END
/// \brief Telephone Ringer Functional Descriptor
/// \details The Telephone Ringer functional descriptor describes the ringer capabilities supported by the Communications Class interface,
@ -356,7 +338,6 @@ typedef struct TU_ATTR_PACKED
/// \brief Telephone Operational Modes Functional Descriptor
/// \details The Telephone Operational Modes functional descriptor describes the operational modes supported by
/// the Communications Class interface, with the SubClass code of \ref CDC_COMM_SUBCLASS_TELEPHONE_CONTROL_MODEL
TU_BIT_FIELD_ORDER_BEGIN
typedef struct TU_ATTR_PACKED
{
uint8_t bLength ; ///< Size of this descriptor in bytes.
@ -369,12 +350,10 @@ typedef struct TU_ATTR_PACKED
uint8_t TU_RESERVED : 5;
} bmCapabilities;
}cdc_desc_func_telephone_operational_modes_t;
TU_BIT_FIELD_ORDER_END
/// \brief Telephone Call and Line State Reporting Capabilities Descriptor
/// \details The Telephone Call and Line State Reporting Capabilities functional descriptor describes the abilities of a
/// telephone device to report optional call and line states.
TU_BIT_FIELD_ORDER_BEGIN
typedef struct TU_ATTR_PACKED
{
uint8_t bLength ; ///< Size of this descriptor in bytes.
@ -390,8 +369,8 @@ typedef struct TU_ATTR_PACKED
uint32_t TU_RESERVED : 26;
} bmCapabilities;
}cdc_desc_func_telephone_call_state_reporting_capabilities_t;
TU_BIT_FIELD_ORDER_END
// TODO remove
static inline uint8_t cdc_functional_desc_typeof(uint8_t const * p_desc)
{
return p_desc[2];
@ -410,21 +389,17 @@ typedef struct TU_ATTR_PACKED
TU_VERIFY_STATIC(sizeof(cdc_line_coding_t) == 7, "size is not correct");
TU_BIT_FIELD_ORDER_BEGIN
typedef struct TU_ATTR_PACKED
{
uint16_t dte_is_present : 1; ///< Indicates to DCE if DTE is presentor not. This signal corresponds to V.24 signal 108/2 and RS-232 signal DTR.
uint16_t half_duplex_carrier_control : 1;
uint16_t : 14;
} cdc_line_control_state_t;
TU_BIT_FIELD_ORDER_END
TU_ATTR_PACKED_END // End of definition of packed structs (used by the CCRX toolchain)
TU_VERIFY_STATIC(sizeof(cdc_line_control_state_t) == 2, "size is not correct");
/** @} */
TU_ATTR_PACKED_END // End of all packed definitions
TU_ATTR_BIT_FIELD_ORDER_END
#ifdef __cplusplus
}

View File

@ -82,8 +82,8 @@
#define TU_ATTR_PACKED_BEGIN
#define TU_ATTR_PACKED_END
#define TU_BIT_FIELD_ORDER_BEGIN
#define TU_BIT_FIELD_ORDER_END
#define TU_ATTR_BIT_FIELD_ORDER_BEGIN
#define TU_ATTR_BIT_FIELD_ORDER_END
// Endian conversion use well-known host to network (big endian) naming
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
@ -153,8 +153,8 @@
#define TU_ATTR_PACKED_BEGIN _Pragma("pack")
#define TU_ATTR_PACKED_END _Pragma("packoption")
#define TU_BIT_FIELD_ORDER_BEGIN _Pragma("bit_order right")
#define TU_BIT_FIELD_ORDER_END _Pragma("bit_order")
#define TU_ATTR_BIT_FIELD_ORDER_BEGIN _Pragma("bit_order right")
#define TU_ATTR_BIT_FIELD_ORDER_END _Pragma("bit_order")
// Endian conversion use well-known host to network (big endian) naming
#if defined(__LIT)

View File

@ -262,7 +262,9 @@ enum
// USB Descriptors
//--------------------------------------------------------------------+
TU_ATTR_PACKED_BEGIN // Start of definition of packed structs (used by the CCRX toolchain)
// Start of all packed definitions for compiler without per-type packed
TU_ATTR_PACKED_BEGIN
TU_ATTR_BIT_FIELD_ORDER_BEGIN
/// USB Device Descriptor
typedef struct TU_ATTR_PACKED
@ -297,6 +299,8 @@ typedef struct TU_ATTR_PACKED
uint8_t bNumDeviceCaps ; ///< Number of device capability descriptors in the BOS
} tusb_desc_bos_t;
TU_VERIFY_STATIC( sizeof(tusb_desc_bos_t) == 5, "size is not correct");
/// USB Configuration Descriptor
typedef struct TU_ATTR_PACKED
{
@ -328,8 +332,9 @@ typedef struct TU_ATTR_PACKED
uint8_t iInterface ; ///< Index of string descriptor describing this interface
} tusb_desc_interface_t;
TU_VERIFY_STATIC( sizeof(tusb_desc_interface_t) == 9, "size is not correct");
/// USB Endpoint Descriptor
TU_BIT_FIELD_ORDER_BEGIN
typedef struct TU_ATTR_PACKED
{
uint8_t bLength ; ///< Size of this descriptor in bytes
@ -357,7 +362,6 @@ typedef struct TU_ATTR_PACKED
uint8_t bInterval ; ///< Interval for polling endpoint for data transfers. Expressed in frames or microframes depending on the device operating speed (i.e., either 1 millisecond or 125 us units). \n- For full-/high-speed isochronous endpoints, this value must be in the range from 1 to 16. The bInterval value is used as the exponent for a \f$ 2^(bInterval-1) \f$ value; e.g., a bInterval of 4 means a period of 8 (\f$ 2^(4-1) \f$). \n- For full-/low-speed interrupt endpoints, the value of this field may be from 1 to 255. \n- For high-speed interrupt endpoints, the bInterval value is used as the exponent for a \f$ 2^(bInterval-1) \f$ value; e.g., a bInterval of 4 means a period of 8 (\f$ 2^(4-1) \f$) . This value must be from 1 to 16. \n- For high-speed bulk/control OUT endpoints, the bInterval must specify the maximum NAK rate of the endpoint. A value of 0 indicates the endpoint never NAKs. Other values indicate at most 1 NAK each bInterval number of microframes. This value must be in the range from 0 to 255. \n Refer to Chapter 5 of USB 2.0 specification for more information.
} tusb_desc_endpoint_t;
TU_BIT_FIELD_ORDER_END
/// USB Other Speed Configuration Descriptor
typedef struct TU_ATTR_PACKED
@ -433,7 +437,6 @@ typedef struct TU_ATTR_PACKED
} tusb_desc_webusb_url_t;
// DFU Functional Descriptor
TU_BIT_FIELD_ORDER_BEGIN
typedef struct TU_ATTR_PACKED
{
uint8_t bLength;
@ -455,12 +458,10 @@ typedef struct TU_ATTR_PACKED
uint16_t wTransferSize;
uint16_t bcdDFUVersion;
} tusb_desc_dfu_functional_t;
TU_BIT_FIELD_ORDER_END
/*------------------------------------------------------------------*/
/* Types
*------------------------------------------------------------------*/
TU_BIT_FIELD_ORDER_BEGIN
typedef struct TU_ATTR_PACKED{
union {
struct TU_ATTR_PACKED {
@ -477,17 +478,12 @@ typedef struct TU_ATTR_PACKED{
uint16_t wIndex;
uint16_t wLength;
} tusb_control_request_t;
TU_BIT_FIELD_ORDER_END
TU_ATTR_PACKED_END // End of definition of packed structs (used by the CCRX toolchain)
TU_VERIFY_STATIC( sizeof(tusb_control_request_t) == 8, "size is not correct");
// TODO move to somewhere suitable
static inline uint8_t bm_request_type(uint8_t direction, uint8_t type, uint8_t recipient)
{
return ((uint8_t) (direction << 7)) | ((uint8_t) (type << 5)) | (recipient);
}
TU_ATTR_PACKED_END // End of all packed definitions
TU_ATTR_BIT_FIELD_ORDER_END
//--------------------------------------------------------------------+
// Endpoint helper

View File

@ -95,7 +95,7 @@
#define FIFO_REQ_CLR (1u)
#define FIFO_COMPLETE (1u<<1)
TU_BIT_FIELD_ORDER_BEGIN
TU_ATTR_BIT_FIELD_ORDER_BEGIN
typedef struct {
union {
struct {
@ -108,9 +108,9 @@ typedef struct {
};
uint16_t TRN;
} reg_pipetre_t;
TU_BIT_FIELD_ORDER_END
TU_ATTR_BIT_FIELD_ORDER_END
TU_BIT_FIELD_ORDER_BEGIN
TU_ATTR_BIT_FIELD_ORDER_BEGIN
typedef union {
struct {
volatile uint16_t u8: 8;
@ -118,11 +118,11 @@ typedef union {
};
volatile uint16_t u16;
} hw_fifo_t;
TU_BIT_FIELD_ORDER_END
TU_ATTR_BIT_FIELD_ORDER_END
TU_ATTR_PACKED_BEGIN // Start of definition of packed structs (used by the CCRX toolchain)
TU_BIT_FIELD_ORDER_BEGIN
TU_ATTR_BIT_FIELD_ORDER_BEGIN
typedef struct TU_ATTR_PACKED
{
uintptr_t addr; /* the start address of a transfer data buffer */
@ -133,7 +133,7 @@ typedef struct TU_ATTR_PACKED
uint32_t : 0;
};
} pipe_state_t;
TU_BIT_FIELD_ORDER_END
TU_ATTR_BIT_FIELD_ORDER_END
TU_ATTR_PACKED_END // End of definition of packed structs (used by the CCRX toolchain)