mirror of
https://github.com/hathach/tinyusb.git
synced 2025-01-31 05:52:55 +08:00
house keeping
This commit is contained in:
parent
255f832904
commit
bd2313aa8b
@ -137,23 +137,15 @@
|
|||||||
#define memclr_(buffer, size) memset((buffer), 0, (size))
|
#define memclr_(buffer, size) memset((buffer), 0, (size))
|
||||||
#define varclr_(_var) memclr_(_var, sizeof(*(_var)))
|
#define varclr_(_var) memclr_(_var, sizeof(*(_var)))
|
||||||
#define arrclr_(_arr) memclr_(_arr, sizeof(_arr))
|
#define arrclr_(_arr) memclr_(_arr, sizeof(_arr))
|
||||||
|
|
||||||
#define arrcount_(_arr) ( sizeof(_arr) / sizeof(_arr[0]) )
|
#define arrcount_(_arr) ( sizeof(_arr) / sizeof(_arr[0]) )
|
||||||
|
|
||||||
static inline uint8_t const * descriptor_next(uint8_t const p_desc[])
|
static inline bool mem_all_zero(void const* buffer, uint32_t size)
|
||||||
{
|
{
|
||||||
return p_desc + p_desc[DESC_OFFSET_LEN];
|
uint8_t const* p_mem = (uint8_t const*) buffer;
|
||||||
|
for(uint32_t i=0; i<size; i++) if (p_mem[i] != 0) return false;
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline uint8_t descriptor_type(uint8_t const p_desc[])
|
|
||||||
{
|
|
||||||
return p_desc[DESC_OFFSET_TYPE];
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline uint8_t descriptor_len(uint8_t const p_desc[])
|
|
||||||
{
|
|
||||||
return p_desc[DESC_OFFSET_LEN];
|
|
||||||
}
|
|
||||||
|
|
||||||
//------------- Conversion -------------//
|
//------------- Conversion -------------//
|
||||||
/// form an uint32_t from 4 x uint8_t
|
/// form an uint32_t from 4 x uint8_t
|
||||||
|
@ -377,6 +377,10 @@ static inline uint8_t bm_request_type(uint8_t direction, uint8_t type, uint8_t r
|
|||||||
return ((uint8_t) (direction << 7)) | ((uint8_t) (type << 5)) | (recipient);
|
return ((uint8_t) (direction << 7)) | ((uint8_t) (type << 5)) | (recipient);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------+
|
||||||
|
// Endpoint helper
|
||||||
|
//--------------------------------------------------------------------+
|
||||||
|
|
||||||
// Get direction from Endpoint address
|
// Get direction from Endpoint address
|
||||||
static inline tusb_dir_t edpt_dir(uint8_t addr)
|
static inline tusb_dir_t edpt_dir(uint8_t addr)
|
||||||
{
|
{
|
||||||
@ -394,6 +398,24 @@ static inline uint8_t edpt_addr(uint8_t num, tusb_dir_t dir)
|
|||||||
return num | (dir == TUSB_DIR_IN ? TUSB_DIR_IN_MASK : 0);
|
return num | (dir == TUSB_DIR_IN ? TUSB_DIR_IN_MASK : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------+
|
||||||
|
// Descriptor helper
|
||||||
|
//--------------------------------------------------------------------+
|
||||||
|
static inline uint8_t const * descriptor_next(uint8_t const p_desc[])
|
||||||
|
{
|
||||||
|
return p_desc + p_desc[DESC_OFFSET_LEN];
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline uint8_t descriptor_type(uint8_t const p_desc[])
|
||||||
|
{
|
||||||
|
return p_desc[DESC_OFFSET_TYPE];
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline uint8_t descriptor_len(uint8_t const p_desc[])
|
||||||
|
{
|
||||||
|
return p_desc[DESC_OFFSET_LEN];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Convert comma-separated string to descriptor unicode format
|
// Convert comma-separated string to descriptor unicode format
|
||||||
#define TUD_DESC_STRCONV( ... ) (const uint16_t[]) { (TUSB_DESC_STRING << 8 ) | (2*VA_ARGS_NUM_(__VA_ARGS__) + 2), __VA_ARGS__ }
|
#define TUD_DESC_STRCONV( ... ) (const uint16_t[]) { (TUSB_DESC_STRING << 8 ) | (2*VA_ARGS_NUM_(__VA_ARGS__) + 2), __VA_ARGS__ }
|
||||||
|
Loading…
x
Reference in New Issue
Block a user