XFusion API v1.3.0
载入中...
搜索中...
未找到
xf_sle_types.h
浏览该文件的文档.
1
20#ifndef __XF_SLE_TYPES_H__
21#define __XF_SLE_TYPES_H__
22
23/* ==================== [Includes] ========================================== */
24
25#include "xf_utils.h"
26
27#define XF_SLE_IS_ENABLE 1
28
29#if XF_SLE_IS_ENABLE || defined(__DOXYGEN__)
30
38#ifdef __cplusplus
39extern "C" {
40#endif
41
42/* ==================== [Defines] =========================================== */
43
44#if (!defined(CONFIG_XF_SLE_DEBUG_ENABLE)) || (CONFIG_XF_SLE_DEBUG_ENABLE == 0)
45#define XF_SLE_DEBUG_ENABLE 0
46#else
47#define XF_SLE_DEBUG_ENABLE 1
48#endif
49
50/* ==================== [Typedefs] ========================================== */
51
55#define XF_SLE_ADDR_LEN 6
56
60#define XF_SLE_ADDR_PRINT_FMT "%02X:%02X:%02X:%02X:%02X:%02X"
61
67#define XF_SLE_ADDR_EXPAND_TO_ARG(addr) (addr)[0],(addr)[1],(addr)[2],(addr)[3],(addr)[4],(addr)[5]
68
76
80typedef struct {
82 uint8_t addr[XF_SLE_ADDR_LEN];
84
92
97 union {
99 uint8_t _invalid;
100 };
101 union {
102 uint16_t uuid16;
103 uint8_t uuid128[XF_SLE_UUID_TYPE_128];
104 };
106
117
128
129#define _XF_SLE_UUID16_INIT(uuid16) \
130 { \
131 .type = XF_SLE_UUID_TYPE_16, \
132 .value = (uuid16), \
133 }
134
135#define _XF_SLE_UUID128_INIT(uuid128 ...) \
136 { \
137 .type = XF_SLE_UUID_TYPE_128, \
138 .value = { uuid128 }, \
139 }
140
145#define XF_SLE_DECLARE_UUID16(uuid16) \
146 ((xf_sle_uuid_info_t *) (&(xf_sle_uuid16_info_t) _XF_SLE_UUID16_INIT(uuid16)))
147
152#define XF_SLE_DECLARE_UUID128(uuid128...) \
153 ((xf_sle_uuid_info_t *) (&(xf_sle_uuid128_info_t) _XF_SLE_UUID128_INIT(uuid128)))
154
159#define XF_SLE_INVALID_ATTR_HANDLE (0x0000)
160
164typedef uint16_t xf_sle_attr_handle_t;
165
172 uintptr_t _untyped;
174 uint8_t val_u8;
175 uint16_t val_u16;
176 uint32_t val_u32;
177
178 uint8_t *ptr_u8;
179 uint16_t *ptr_u16;
180 uint32_t *ptr_u32;
181
182 uint8_t array_u8[sizeof(uintptr_t)];
183 uint16_t array_u16[sizeof(uintptr_t) / sizeof(uint16_t)];
184 uint32_t array_u32[sizeof(uintptr_t) / sizeof(uint32_t)];
186
187/* ==================== [Global Prototypes] ================================= */
188
189/* ==================== [Macros] ============================================ */
190
191#ifdef __cplusplus
192} /* extern "C" */
193#endif
194
200#endif /* XF_SLE_IS_ENABLE */
201
202#endif /* __XF_SLE_TYPES_H__ */
#define __packed
取消结构体在编译过程中的优化对齐,按照实际占用字节数进行对齐。
Definition xf_attr.h:124
union _xf_sle_var_uintptr_t xf_sle_var_uintptr_t
SLE 中类型可变的数据
xf_sle_addr_type_t
SLE 地址类型
struct __packed _xf_sle_uuid_info_t xf_sle_uuid_info_t
SLE UUID 信息 (多种长度类型通用)
#define XF_SLE_ADDR_LEN
SLE 地址长度
xf_sle_uuid_type_t
SLE UUID 类型 (长度类型)
uint16_t xf_sle_attr_handle_t
SLE 属性句柄
struct __packed _xf_sle_uuid128_info_t xf_sle_uuid128_info_t
SLE 128-bit UUID 信息
struct __packed _xf_sle_uuid16_info_t xf_sle_uuid16_info_t
SLE 16-bit UUID 信息
@ XF_SLE_ADDRESS_TYPE_RANDOM
@ XF_SLE_ADDRESS_TYPE_PUBLIC
@ XF_SLE_UUID_TYPE_128
@ XF_SLE_UUID_TYPE_16
SLE 128-bit UUID 信息
xf_sle_uuid_type_t type
SLE 16-bit UUID 信息
xf_sle_uuid_type_t type
SLE UUID 信息 (多种长度类型通用)
xf_sle_uuid_type_t len_type
SLE 地址信息
xf_sle_addr_type_t type
SLE 中类型可变的数据
uint8_t array_u8[sizeof(uintptr_t)]
uint32_t array_u32[sizeof(uintptr_t)/sizeof(uint32_t)]
uint16_t array_u16[sizeof(uintptr_t)/sizeof(uint16_t)]