Commit 852b5e61 authored by Dean Camera's avatar Dean Camera

Remove redundant type information for bitfield elements, other than the...

Remove redundant type information for bitfield elements, other than the signed/unsignedness of the element.

Change type of USB_SelectedPipe and USB_SelectedEndpoint for the AVR32 UC3 architecture to uint32_t to reduce the compiled code size.
parent d08116b0
...@@ -72,21 +72,21 @@ ...@@ -72,21 +72,21 @@
/** Type define of an IP packet header. */ /** Type define of an IP packet header. */
typedef struct typedef struct
{ {
unsigned char HeaderLength : 4; /**< Total length of the packet header, in 4-byte blocks */ unsigned HeaderLength : 4; /**< Total length of the packet header, in 4-byte blocks */
unsigned char Version : 4; /**< IP protocol version */ unsigned Version : 4; /**< IP protocol version */
uint8_t TypeOfService; /**< Special service type identifier, indicating delay/throughput/reliability levels */ uint8_t TypeOfService; /**< Special service type identifier, indicating delay/throughput/reliability levels */
uint16_t TotalLength; /**< Total length of the IP packet, in bytes */ uint16_t TotalLength; /**< Total length of the IP packet, in bytes */
uint16_t Identification; /**< Identification value for identifying fragmented packets */ uint16_t Identification; /**< Identification value for identifying fragmented packets */
unsigned int FragmentOffset : 13; /**< Offset of this IP fragment */ unsigned FragmentOffset : 13; /**< Offset of this IP fragment */
unsigned int Flags : 3; /**< Fragment flags, to indicate if a packet is fragmented */ unsigned Flags : 3; /**< Fragment flags, to indicate if a packet is fragmented */
uint8_t TTL; /**< Maximum allowable number of hops to reach the packet destination */ uint8_t TTL; /**< Maximum allowable number of hops to reach the packet destination */
uint8_t Protocol; /**< Encapsulated protocol type */ uint8_t Protocol; /**< Encapsulated protocol type */
uint16_t HeaderChecksum; /**< Ethernet checksum of the IP header */ uint16_t HeaderChecksum; /**< Ethernet checksum of the IP header */
IP_Address_t SourceAddress; /**< Source protocol IP address of the packet */ IP_Address_t SourceAddress; /**< Source protocol IP address of the packet */
IP_Address_t DestinationAddress; /**< Destination protocol IP address of the packet */ IP_Address_t DestinationAddress; /**< Destination protocol IP address of the packet */
} IP_Header_t; } IP_Header_t;
/* Function Prototypes: */ /* Function Prototypes: */
......
...@@ -218,8 +218,8 @@ ...@@ -218,8 +218,8 @@
uint32_t SequenceNumber; /**< Data sequence number of the packet */ uint32_t SequenceNumber; /**< Data sequence number of the packet */
uint32_t AcknowledgmentNumber; /**< Data acknowledgment number of the packet */ uint32_t AcknowledgmentNumber; /**< Data acknowledgment number of the packet */
unsigned char Reserved : 4; /**< Reserved, must be all 0 */ unsigned Reserved : 4; /**< Reserved, must be all 0 */
unsigned char DataOffset : 4; /**< Offset of the data from the start of the header, in 4 byte chunks */ unsigned DataOffset : 4; /**< Offset of the data from the start of the header, in 4 byte chunks */
uint8_t Flags; /**< TCP packet flags */ uint8_t Flags; /**< TCP packet flags */
uint16_t WindowSize; /**< Current data window size (bytes remaining in reception buffer) */ uint16_t WindowSize; /**< Current data window size (bytes remaining in reception buffer) */
......
...@@ -65,13 +65,13 @@ ...@@ -65,13 +65,13 @@
/* Type Defines: */ /* Type Defines: */
typedef struct typedef struct
{ {
uint32_t Chunks[4]; uint32_t Chunks[4];
} GUID_t; } GUID_t;
typedef struct typedef struct
{ {
uint16_t LengthInBytes; uint16_t LengthInBytes;
int UnicodeString[]; int UnicodeString[];
} Unicode_String_t; } Unicode_String_t;
typedef union typedef union
...@@ -80,19 +80,19 @@ ...@@ -80,19 +80,19 @@
struct struct
{ {
uint8_t TypeBytes[3]; uint8_t TypeBytes[3];
int ErrorCode : 6; unsigned ErrorCode : 6;
int NAK : 1; unsigned NAK : 1;
int Response : 1; unsigned Response : 1;
} TypeFields; } TypeFields;
} SideShowPacketType_t; } SideShowPacketType_t;
typedef struct typedef struct
{ {
uint32_t Length; uint32_t Length;
SideShowPacketType_t Type; SideShowPacketType_t Type;
uint16_t Number; uint16_t Number;
} SideShow_PacketHeader_t; } SideShow_PacketHeader_t;
/* Function Prototypes: */ /* Function Prototypes: */
......
...@@ -90,16 +90,16 @@ ...@@ -90,16 +90,16 @@
struct struct
{ {
unsigned char ListenOnly : 1; unsigned ListenOnly : 1;
unsigned char TalkOnly : 1; unsigned TalkOnly : 1;
unsigned char PulseIndicateSupported : 1; unsigned PulseIndicateSupported : 1;
unsigned char Reserved : 5; unsigned Reserved : 5;
} Interface; } Interface;
struct struct
{ {
unsigned char SupportsAbortINOnMatch : 1; unsigned SupportsAbortINOnMatch : 1;
unsigned char Reserved : 7; unsigned Reserved : 7;
} Device; } Device;
uint8_t Reserved2[6]; uint8_t Reserved2[6];
...@@ -108,16 +108,16 @@ ...@@ -108,16 +108,16 @@
typedef struct typedef struct
{ {
unsigned char LastMessageTransaction : 1; unsigned LastMessageTransaction : 1;
unsigned char Reserved : 7; unsigned Reserved : 7;
uint8_t Reserved2[3]; uint8_t Reserved2[3];
} TMC_DevOUTMessageHeader_t; } TMC_DevOUTMessageHeader_t;
typedef struct typedef struct
{ {
unsigned char TermCharEnabled : 1; unsigned TermCharEnabled : 1;
unsigned char Reserved : 7; unsigned Reserved : 7;
uint8_t TermChar; uint8_t TermChar;
uint8_t Reserved2[2]; uint8_t Reserved2[2];
......
...@@ -79,35 +79,35 @@ ...@@ -79,35 +79,35 @@
*/ */
typedef struct typedef struct
{ {
unsigned char DeviceType : 5; unsigned DeviceType : 5;
unsigned char PeripheralQualifier : 3; unsigned PeripheralQualifier : 3;
unsigned char Reserved : 7; unsigned Reserved : 7;
unsigned char Removable : 1; unsigned Removable : 1;
uint8_t Version; uint8_t Version;
unsigned char ResponseDataFormat : 4; unsigned ResponseDataFormat : 4;
unsigned char Reserved2 : 1; unsigned Reserved2 : 1;
unsigned char NormACA : 1; unsigned NormACA : 1;
unsigned char TrmTsk : 1; unsigned TrmTsk : 1;
unsigned char AERC : 1; unsigned AERC : 1;
uint8_t AdditionalLength; uint8_t AdditionalLength;
uint8_t Reserved3[2]; uint8_t Reserved3[2];
unsigned char SoftReset : 1; unsigned SoftReset : 1;
unsigned char CmdQue : 1; unsigned CmdQue : 1;
unsigned char Reserved4 : 1; unsigned Reserved4 : 1;
unsigned char Linked : 1; unsigned Linked : 1;
unsigned char Sync : 1; unsigned Sync : 1;
unsigned char WideBus16Bit : 1; unsigned WideBus16Bit : 1;
unsigned char WideBus32Bit : 1; unsigned WideBus32Bit : 1;
unsigned char RelAddr : 1; unsigned RelAddr : 1;
uint8_t VendorID[8]; uint8_t VendorID[8];
uint8_t ProductID[16]; uint8_t ProductID[16];
uint8_t RevisionID[4]; uint8_t RevisionID[4];
} MS_SCSI_Inquiry_Response_t; } MS_SCSI_Inquiry_Response_t;
/** Type define for a SCSI sense structure to a SCSI REQUEST SENSE command. For details of the /** Type define for a SCSI sense structure to a SCSI REQUEST SENSE command. For details of the
...@@ -115,23 +115,23 @@ ...@@ -115,23 +115,23 @@
*/ */
typedef struct typedef struct
{ {
uint8_t ResponseCode; uint8_t ResponseCode;
uint8_t SegmentNumber; uint8_t SegmentNumber;
unsigned char SenseKey : 4; unsigned SenseKey : 4;
unsigned char Reserved : 1; unsigned Reserved : 1;
unsigned char ILI : 1; unsigned ILI : 1;
unsigned char EOM : 1; unsigned EOM : 1;
unsigned char FileMark : 1; unsigned FileMark : 1;
uint8_t Information[4]; uint8_t Information[4];
uint8_t AdditionalLength; uint8_t AdditionalLength;
uint8_t CmdSpecificInformation[4]; uint8_t CmdSpecificInformation[4];
uint8_t AdditionalSenseCode; uint8_t AdditionalSenseCode;
uint8_t AdditionalSenseQualifier; uint8_t AdditionalSenseQualifier;
uint8_t FieldReplaceableUnitCode; uint8_t FieldReplaceableUnitCode;
uint8_t SenseKeySpecific[3]; uint8_t SenseKeySpecific[3];
} MS_SCSI_Request_Sense_Response_t; } MS_SCSI_Request_Sense_Response_t;
/* Function Prototypes: */ /* Function Prototypes: */
......
...@@ -72,21 +72,21 @@ ...@@ -72,21 +72,21 @@
/** Type define of an IP packet header. */ /** Type define of an IP packet header. */
typedef struct typedef struct
{ {
unsigned char HeaderLength : 4; /**< Total length of the packet header, in 4-byte blocks */ unsigned HeaderLength : 4; /**< Total length of the packet header, in 4-byte blocks */
unsigned char Version : 4; /**< IP protocol version */ unsigned Version : 4; /**< IP protocol version */
uint8_t TypeOfService; /**< Special service type identifier, indicating delay/throughput/reliability levels */ uint8_t TypeOfService; /**< Special service type identifier, indicating delay/throughput/reliability levels */
uint16_t TotalLength; /**< Total length of the IP packet, in bytes */ uint16_t TotalLength; /**< Total length of the IP packet, in bytes */
uint16_t Identification; /**< Identification value for identifying fragmented packets */ uint16_t Identification; /**< Identification value for identifying fragmented packets */
unsigned int FragmentOffset : 13; /**< Offset of this IP fragment */ unsigned FragmentOffset : 13; /**< Offset of this IP fragment */
unsigned int Flags : 3; /**< Fragment flags, to indicate if a packet is fragmented */ unsigned Flags : 3; /**< Fragment flags, to indicate if a packet is fragmented */
uint8_t TTL; /**< Maximum allowable number of hops to reach the packet destination */ uint8_t TTL; /**< Maximum allowable number of hops to reach the packet destination */
uint8_t Protocol; /**< Encapsulated protocol type */ uint8_t Protocol; /**< Encapsulated protocol type */
uint16_t HeaderChecksum; /**< Ethernet checksum of the IP header */ uint16_t HeaderChecksum; /**< Ethernet checksum of the IP header */
IP_Address_t SourceAddress; /**< Source protocol IP address of the packet */ IP_Address_t SourceAddress; /**< Source protocol IP address of the packet */
IP_Address_t DestinationAddress; /**< Destination protocol IP address of the packet */ IP_Address_t DestinationAddress; /**< Destination protocol IP address of the packet */
} IP_Header_t; } IP_Header_t;
/* Function Prototypes: */ /* Function Prototypes: */
......
...@@ -219,8 +219,8 @@ ...@@ -219,8 +219,8 @@
uint32_t SequenceNumber; /**< Data sequence number of the packet */ uint32_t SequenceNumber; /**< Data sequence number of the packet */
uint32_t AcknowledgmentNumber; /**< Data acknowledgment number of the packet */ uint32_t AcknowledgmentNumber; /**< Data acknowledgment number of the packet */
unsigned char Reserved : 4; /**< Reserved, must be all 0 */ unsigned Reserved : 4; /**< Reserved, must be all 0 */
unsigned char DataOffset : 4; /**< Offset of the data from the start of the header, in 4 byte chunks */ unsigned DataOffset : 4; /**< Offset of the data from the start of the header, in 4 byte chunks */
uint8_t Flags; /**< TCP packet flags */ uint8_t Flags; /**< TCP packet flags */
uint16_t WindowSize; /**< Current data window size (bytes remaining in reception buffer) */ uint16_t WindowSize; /**< Current data window size (bytes remaining in reception buffer) */
......
...@@ -77,9 +77,9 @@ ...@@ -77,9 +77,9 @@
/* Type Defines: */ /* Type Defines: */
typedef struct typedef struct
{ {
unsigned char EA : 1; unsigned EA : 1;
unsigned char CR : 1; unsigned CR : 1;
unsigned char DLCI : 6; unsigned DLCI : 6;
} RFCOMM_Address_t; } RFCOMM_Address_t;
typedef struct typedef struct
...@@ -90,21 +90,21 @@ ...@@ -90,21 +90,21 @@
typedef struct typedef struct
{ {
unsigned char EA : 1; unsigned EA : 1;
unsigned char CR : 1; unsigned CR : 1;
unsigned char Command : 6; unsigned Command : 6;
} RFCOMM_Command_t; } RFCOMM_Command_t;
typedef struct typedef struct
{ {
uint8_t DLCI; uint8_t DLCI;
unsigned char FrameType : 4; unsigned FrameType : 4;
unsigned char ConvergenceLayer : 4; unsigned ConvergenceLayer : 4;
uint8_t Priority; uint8_t Priority;
uint8_t ACKTimerTicks; uint8_t ACKTimerTicks;
uint16_t MaximumFrameSize; uint16_t MaximumFrameSize;
uint8_t MaxRetransmissions; uint8_t MaxRetransmissions;
uint8_t RecoveryWindowSize; uint8_t RecoveryWindowSize;
} RFCOMM_DPN_Parameters_t; } RFCOMM_DPN_Parameters_t;
typedef struct typedef struct
......
...@@ -99,7 +99,7 @@ ...@@ -99,7 +99,7 @@
#define pgm_read_byte(x) *x #define pgm_read_byte(x) *x
#define memcmp_P(...) memcmp(__VA_ARGS__) #define memcmp_P(...) memcmp(__VA_ARGS__)
#define memcpy_P(...) memcpy(__VA_ARGS__) #define memcpy_P(...) memcpy(__VA_ARGS__)
// ================================================== // =================================================
typedef uint32_t uint_reg_t; typedef uint32_t uint_reg_t;
...@@ -159,6 +159,8 @@ ...@@ -159,6 +159,8 @@
* be set as a breakpoint in the resulting code. Useful for debugging purposes, where the optimiser * be set as a breakpoint in the resulting code. Useful for debugging purposes, where the optimiser
* removes/reorders code to the point where break points cannot reliably be set. * removes/reorders code to the point where break points cannot reliably be set.
* *
* \note This macro is not available for all architectures.
*
* \ingroup Group_Debugging * \ingroup Group_Debugging
*/ */
#define JTAG_DEBUG_POINT() __asm__ __volatile__ ("NOP" ::) #define JTAG_DEBUG_POINT() __asm__ __volatile__ ("NOP" ::)
...@@ -166,27 +168,17 @@ ...@@ -166,27 +168,17 @@
/** Defines an explicit JTAG break point in the resulting binary via the assembly \c BREAK statement. When /** Defines an explicit JTAG break point in the resulting binary via the assembly \c BREAK statement. When
* a JTAG is used, this causes the program execution to halt when reached until manually resumed. * a JTAG is used, this causes the program execution to halt when reached until manually resumed.
* *
* \note This macro is not available for all architectures.
*
* \ingroup Group_Debugging * \ingroup Group_Debugging
*/ */
#define JTAG_DEBUG_BREAK() __asm__ __volatile__ ("BREAK" ::) #define JTAG_DEBUG_BREAK() __asm__ __volatile__ ("BREAK" ::)
#if !defined(pgm_read_ptr) || defined(__DOXYGEN__)
/** Reads a pointer out of PROGMEM space on the AVR8 architecture. This is currently a wrapper for the
* avr-libc \c pgm_read_ptr() macro with a \c void* cast, so that its value can be assigned directly
* to a pointer variable or used in pointer arithmetic without further casting in C. In a future
* avr-libc distribution this will be part of the standard API and will be implemented in a more formal
* manner.
*
* \param[in] Addr Address of the pointer to read.
*
* \return Pointer retrieved from PROGMEM space.
*/
#define pgm_read_ptr(Addr) (void*)pgm_read_word(Addr)
#endif
/** Macro for testing condition "x" and breaking via \ref JTAG_DEBUG_BREAK() if the condition is false. /** Macro for testing condition "x" and breaking via \ref JTAG_DEBUG_BREAK() if the condition is false.
* *
* \param[in] Condition Condition that will be evaluated, * \note This macro is not available for all architectures.
*
* \param[in] Condition Condition that will be evaluated.
* *
* \ingroup Group_Debugging * \ingroup Group_Debugging
*/ */
...@@ -198,6 +190,8 @@ ...@@ -198,6 +190,8 @@
* *
* The output takes the form "{FILENAME}: Function {FUNCTION NAME}, Line {LINE NUMBER}: Assertion {Condition} failed." * The output takes the form "{FILENAME}: Function {FUNCTION NAME}, Line {LINE NUMBER}: Assertion {Condition} failed."
* *
* \note This macro is not available for all architectures.
*
* \param[in] Condition Condition that will be evaluated, * \param[in] Condition Condition that will be evaluated,
* *
* \ingroup Group_Debugging * \ingroup Group_Debugging
...@@ -205,6 +199,22 @@ ...@@ -205,6 +199,22 @@
#define STDOUT_ASSERT(Condition) MACROS{ if (!(x)) { printf_P(PSTR("%s: Function \"%s\", Line %d: " \ #define STDOUT_ASSERT(Condition) MACROS{ if (!(x)) { printf_P(PSTR("%s: Function \"%s\", Line %d: " \
"Assertion \"%s\" failed.\r\n"), \ "Assertion \"%s\" failed.\r\n"), \
__FILE__, __func__, __LINE__, #Condition); } }MACROE __FILE__, __func__, __LINE__, #Condition); } }MACROE
#if !defined(pgm_read_ptr) || defined(__DOXYGEN__)
/** Reads a pointer out of PROGMEM space on the AVR8 architecture. This is currently a wrapper for the
* avr-libc \c pgm_read_ptr() macro with a \c void* cast, so that its value can be assigned directly
* to a pointer variable or used in pointer arithmetic without further casting in C. In a future
* avr-libc distribution this will be part of the standard API and will be implemented in a more formal
* manner.
*
* \note This macro is not available for all architectures.
*
* \param[in] Address Address of the pointer to read.
*
* \return Pointer retrieved from PROGMEM space.
*/
#define pgm_read_ptr(Addr) (void*)pgm_read_word(Address)
#endif
#endif #endif
/** Forces GCC to use pointer indirection (via the device's pointer register pairs) when accessing the given /** Forces GCC to use pointer indirection (via the device's pointer register pairs) when accessing the given
...@@ -231,8 +241,8 @@ ...@@ -231,8 +241,8 @@
* Interrupt handlers written using this macro may still need to be registered with the microcontroller's * Interrupt handlers written using this macro may still need to be registered with the microcontroller's
* Interrupt Controller (if present) before they will properly handle incoming interrupt events. * Interrupt Controller (if present) before they will properly handle incoming interrupt events.
* *
* \note This is supplied on some architectures where the standard library does not include a valid * \note This macro is only supplied on some architectures, where the standard library does not include a valid
* definition. If an existing definition exists, the definition here will be ignored. * definition. If an existing definition exists, the alternative definition here will be ignored.
* *
* \ingroup Group_GlobalInt * \ingroup Group_GlobalInt
* *
......
...@@ -272,12 +272,12 @@ ...@@ -272,12 +272,12 @@
*/ */
typedef struct typedef struct
{ {
unsigned char Command : 4; /**< Upper nibble of the MIDI command being sent or received in the event packet. */ unsigned Command : 4; /**< Upper nibble of the MIDI command being sent or received in the event packet. */
unsigned char CableNumber : 4; /**< Virtual cable number of the event being sent or received in the given MIDI interface. */ unsigned CableNumber : 4; /**< Virtual cable number of the event being sent or received in the given MIDI interface. */
uint8_t Data1; /**< First byte of data in the MIDI event. */ uint8_t Data1; /**< First byte of data in the MIDI event. */
uint8_t Data2; /**< Second byte of data in the MIDI event. */ uint8_t Data2; /**< Second byte of data in the MIDI event. */
uint8_t Data3; /**< Third byte of data in the MIDI event. */ uint8_t Data3; /**< Third byte of data in the MIDI event. */
} ATTR_PACKED MIDI_EventPacket_t; } ATTR_PACKED MIDI_EventPacket_t;
/* Disable C linkage for C++ Compilers: */ /* Disable C linkage for C++ Compilers: */
......
...@@ -289,23 +289,23 @@ ...@@ -289,23 +289,23 @@
*/ */
typedef struct typedef struct
{ {
uint8_t ResponseCode; uint8_t ResponseCode;
uint8_t SegmentNumber; uint8_t SegmentNumber;
unsigned char SenseKey : 4; unsigned SenseKey : 4;
unsigned char Reserved : 1; unsigned Reserved : 1;
unsigned char ILI : 1; unsigned ILI : 1;
unsigned char EOM : 1; unsigned EOM : 1;
unsigned char FileMark : 1; unsigned FileMark : 1;
uint8_t Information[4]; uint8_t Information[4];
uint8_t AdditionalLength; uint8_t AdditionalLength;
uint8_t CmdSpecificInformation[4]; uint8_t CmdSpecificInformation[4];
uint8_t AdditionalSenseCode; uint8_t AdditionalSenseCode;
uint8_t AdditionalSenseQualifier; uint8_t AdditionalSenseQualifier;
uint8_t FieldReplaceableUnitCode; uint8_t FieldReplaceableUnitCode;
uint8_t SenseKeySpecific[3]; uint8_t SenseKeySpecific[3];
} ATTR_PACKED SCSI_Request_Sense_Response_t; } ATTR_PACKED SCSI_Request_Sense_Response_t;
/** \brief Mass Storage Class SCSI Inquiry Structure. /** \brief Mass Storage Class SCSI Inquiry Structure.
...@@ -318,35 +318,35 @@ ...@@ -318,35 +318,35 @@
*/ */
typedef struct typedef struct
{ {
unsigned char DeviceType : 5; unsigned DeviceType : 5;
unsigned char PeripheralQualifier : 3; unsigned PeripheralQualifier : 3;
unsigned char Reserved : 7; unsigned Reserved : 7;
unsigned char Removable : 1; unsigned Removable : 1;
uint8_t Version; uint8_t Version;
unsigned char ResponseDataFormat : 4; unsigned ResponseDataFormat : 4;
unsigned char Reserved2 : 1; unsigned Reserved2 : 1;
unsigned char NormACA : 1; unsigned NormACA : 1;
unsigned char TrmTsk : 1; unsigned TrmTsk : 1;
unsigned char AERC : 1; unsigned AERC : 1;
uint8_t AdditionalLength; uint8_t AdditionalLength;
uint8_t Reserved3[2]; uint8_t Reserved3[2];
unsigned char SoftReset : 1; unsigned SoftReset : 1;
unsigned char CmdQue : 1; unsigned CmdQue : 1;