summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/common/tusb_common.h16
-rw-r--r--src/common/tusb_types.h22
2 files changed, 26 insertions, 12 deletions
diff --git a/src/common/tusb_common.h b/src/common/tusb_common.h
index 44f31ffe0..58a18f25c 100644
--- a/src/common/tusb_common.h
+++ b/src/common/tusb_common.h
@@ -137,23 +137,15 @@
#define memclr_(buffer, size) memset((buffer), 0, (size))
#define varclr_(_var) memclr_(_var, sizeof(*(_var)))
#define arrclr_(_arr) memclr_(_arr, sizeof(_arr))
-
#define arrcount_(_arr) ( sizeof(_arr) / sizeof(_arr[0]) )
-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[])
+static inline bool mem_all_zero(void const* buffer, uint32_t size)
{
- return p_desc[DESC_OFFSET_TYPE];
+ 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_len(uint8_t const p_desc[])
-{
- return p_desc[DESC_OFFSET_LEN];
-}
//------------- Conversion -------------//
/// form an uint32_t from 4 x uint8_t
diff --git a/src/common/tusb_types.h b/src/common/tusb_types.h
index 65e7cd999..1e8a5ef27 100644
--- a/src/common/tusb_types.h
+++ b/src/common/tusb_types.h
@@ -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);
}
+//--------------------------------------------------------------------+
+// Endpoint helper
+//--------------------------------------------------------------------+
+
// Get direction from Endpoint address
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);
}
+//--------------------------------------------------------------------+
+// 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
#define TUD_DESC_STRCONV( ... ) (const uint16_t[]) { (TUSB_DESC_STRING << 8 ) | (2*VA_ARGS_NUM_(__VA_ARGS__) + 2), __VA_ARGS__ }