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

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;