tinyusb
|
#include "primitive_types.h"
#include <stddef.h>
#include <string.h>
#include <stdio.h>
#include "tusb_option.h"
#include "compiler/compiler.h"
#include "assertion.h"
#include "binary.h"
#include "tusb_errors.h"
#include "tusb_types.h"
#include "std_descriptors.h"
#include "std_request.h"
#include "osal/osal.h"
Go to the source code of this file.
Macros | |
#define | STRING_(x) #x |
stringify without expand | |
#define | XSTRING_(x) STRING_(x) |
expand then stringify | |
#define | STRING_CONCAT_(a, b) a##b |
concat without expand | |
#define | XSTRING_CONCAT_(a, b) STRING_CONCAT_(a, b) |
expand then concat | |
#define | STRING_(x) #x |
stringify without expand | |
#define | XSTRING_(x) STRING_(x) |
expand then stringify | |
#define | STRING_CONCAT_(a, b) a##b |
concat without expand | |
#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 |
Software License Agreement (BSD License)
Copyright (c) 2013, hathach (tinyusb.org) All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT INCLUDING NEGLIGENCE OR OTHERWISE ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
This file is part of the tinyusb stack.