20#ifndef __XF_SLE_TYPES_H__
21#define __XF_SLE_TYPES_H__
27#define XF_SLE_IS_ENABLE 1
29#if XF_SLE_IS_ENABLE || defined(__DOXYGEN__)
44#if (!defined(CONFIG_XF_SLE_DEBUG_ENABLE)) || (CONFIG_XF_SLE_DEBUG_ENABLE == 0)
45#define XF_SLE_DEBUG_ENABLE 0
47#define XF_SLE_DEBUG_ENABLE 1
55#define XF_SLE_ADDR_LEN 6
60#define XF_SLE_ADDR_PRINT_FMT "%02X:%02X:%02X:%02X:%02X:%02X"
67#define XF_SLE_ADDR_EXPAND_TO_ARG(addr) (addr)[0],(addr)[1],(addr)[2],(addr)[3],(addr)[4],(addr)[5]
129#define _XF_SLE_UUID16_INIT(uuid16) \
131 .type = XF_SLE_UUID_TYPE_16, \
135#define _XF_SLE_UUID128_INIT(uuid128 ...) \
137 .type = XF_SLE_UUID_TYPE_128, \
138 .value = { uuid128 }, \
145#define XF_SLE_DECLARE_UUID16(uuid16) \
146 ((xf_sle_uuid_info_t *) (&(xf_sle_uuid16_info_t) _XF_SLE_UUID16_INIT(uuid16)))
152#define XF_SLE_DECLARE_UUID128(uuid128...) \
153 ((xf_sle_uuid_info_t *) (&(xf_sle_uuid128_info_t) _XF_SLE_UUID128_INIT(uuid128)))
159#define XF_SLE_INVALID_ATTR_HANDLE (0x0000)
183 uint16_t
array_u16[
sizeof(uintptr_t) /
sizeof(uint16_t)];
184 uint32_t
array_u32[
sizeof(uintptr_t) /
sizeof(uint32_t)];
#define __packed
取消结构体在编译过程中的优化对齐,按照实际占用字节数进行对齐。
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_t len_type
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)]