tinyusb  0.4
Click here to lend your support to tinyusb donation and make a donation at pledgie.com
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
common.h

Macros

#define STRING_(x)   #x
 stringify without expand
 
#define STRING_(x)   #x
 stringify without expand
 
#define XSTRING_(x)   STRING_(x)
 expand then stringify
 
#define XSTRING_(x)   STRING_(x)
 expand then stringify
 
#define STRING_CONCAT_(a, b)   a##b
 concat without expand
 
#define STRING_CONCAT_(a, b)   a##b
 concat without expand
 
#define XSTRING_CONCAT_(a, b)   STRING_CONCAT_(a, b)
 expand then concat
 
#define XSTRING_CONCAT_(a, b)   STRING_CONCAT_(a, b)
 expand then concat
 
#define MAX_OF(a, b)   ( (a) > (b) ? (a) : (b) )
 
#define MIN_OF(a, b)   ( (a) < (b) ? (a) : (b) )
 
#define U16_HIGH_U8(u16)   ((uint8_t) (((u16) >> 8) & 0x00ff))
 
#define U16_LOW_U8(u16)   ((uint8_t) ((u16) & 0x00ff))
 
#define U16_TO_U8S_BE(u16)   U16_HIGH_U8(u16), U16_LOW_U8(u16)
 
#define U16_TO_U8S_LE(u16)   U16_LOW_U8(u16), U16_HIGH_U8(u16)
 
#define U32_B1_U8(u32)   ((uint8_t) (((u32) >> 24) & 0x000000ff))
 
#define U32_B2_U8(u32)   ((uint8_t) (((u32) >> 16) & 0x000000ff))
 
#define U32_B3_U8(u32)   ((uint8_t) (((u32) >> 8) & 0x000000ff))
 
#define U32_B4_U8(u32)   ((uint8_t) ((u32) & 0x000000ff))
 
#define U32_TO_U8S_BE(u32)   U32_B1_U8(u32), U32_B2_U8(u32), U32_B3_U8(u32), U32_B4_U8(u32)
 
#define U32_TO_U8S_LE(u32)   U32_B4_U8(u32), U32_B3_U8(u32), U32_B2_U8(u32), U32_B1_U8(u32)
 
#define ENDIAN_BE(u32)   (uint32_t) ( (((u32) & 0xFF) << 24) | (((u32) & 0xFF00) << 8) | (((u32) >> 8) & 0xFF00) | (((u32) >> 24) & 0xFF) )
 
#define ENDIAN_BE16(le16)   ((uint16_t) ((U16_LOW_U8(le16) << 8) | U16_HIGH_U8(le16)) )
 
#define __n2be_16(u16)   ((uint16_t) ((U16_LOW_U8(u16) << 8) | U16_HIGH_U8(u16)) )
 
#define __be2n_16(u16)   __n2be_16(u16)
 
#define memclr_(buffer, size)   memset((buffer), 0, (size))
 

Functions

static uint8_t const * descriptor_next (uint8_t const p_desc[]) ATTR_ALWAYS_INLINE ATTR_PURE
 
static uint8_t descriptor_typeof (uint8_t const p_desc[]) ATTR_ALWAYS_INLINE ATTR_PURE
 
static uint32_t u32_from_u8 (uint8_t b1, uint8_t b2, uint8_t b3, uint8_t b4) ATTR_ALWAYS_INLINE ATTR_CONST
 form an uint32_t from 4 x uint8_t
 
static uint8_t u16_high_u8 (uint16_t u16) ATTR_CONST ATTR_ALWAYS_INLINE
 
static uint8_t u16_low_u8 (uint16_t u16) ATTR_CONST ATTR_ALWAYS_INLINE
 
static uint16_t u16_le2be (uint16_t u16) ATTR_CONST ATTR_ALWAYS_INLINE
 
static uint8_t min8_of (uint8_t x, uint8_t y) ATTR_ALWAYS_INLINE ATTR_CONST
 
static uint16_t min16_of (uint16_t x, uint16_t y) ATTR_ALWAYS_INLINE ATTR_CONST
 
static uint32_t min32_of (uint32_t x, uint32_t y) ATTR_ALWAYS_INLINE ATTR_CONST
 
static uint32_t max32_of (uint32_t x, uint32_t y) ATTR_ALWAYS_INLINE ATTR_CONST
 
static uint16_t max16_of (uint16_t x, uint16_t y) ATTR_ALWAYS_INLINE ATTR_CONST
 
static uint32_t align32 (uint32_t value) ATTR_ALWAYS_INLINE ATTR_CONST
 
static uint32_t align16 (uint32_t value) ATTR_ALWAYS_INLINE ATTR_CONST
 
static uint32_t align_n (uint32_t alignment, uint32_t value) ATTR_ALWAYS_INLINE ATTR_CONST
 
static uint32_t align4k (uint32_t value) ATTR_ALWAYS_INLINE ATTR_CONST
 
static uint32_t offset4k (uint32_t value) ATTR_ALWAYS_INLINE ATTR_CONST
 
static uint32_t abs_of (int32_t value) ATTR_ALWAYS_INLINE ATTR_CONST
 
static bool is_in_range (uint32_t lower, uint32_t value, uint32_t upper) ATTR_ALWAYS_INLINE ATTR_CONST
 inclusive range checking
 
static bool is_in_range_exclusive (uint32_t lower, uint32_t value, uint32_t upper) ATTR_ALWAYS_INLINE ATTR_CONST
 exclusive range checking
 
static uint8_t log2_of (uint32_t value) ATTR_ALWAYS_INLINE ATTR_CONST
 
static uint8_t cardinality_of (uint32_t value) ATTR_ALWAYS_INLINE ATTR_CONST
 

Detailed Description