48#ifndef PROTOCORE_LWM2M_TLV_H
49#define PROTOCORE_LWM2M_TLV_H
53#if PROTOCORE_ENABLE_LWM2M
58#define LWM2M_TLV_IDTYPE_MASK 0xC0
59#define LWM2M_TLV_ID16_FLAG 0x20
60#define LWM2M_TLV_LENTYPE_SHIFT 3
61#define LWM2M_TLV_LENTYPE_MASK 0x03
62#define LWM2M_TLV_INLINE_LEN_MASK 0x07
67 LWM2M_TLV_OBJECT_INSTANCE = 0x00,
68 LWM2M_TLV_RESOURCE_INSTANCE = 0x40,
69 LWM2M_TLV_MULTIPLE_RESOURCE = 0x80,
70 LWM2M_TLV_RESOURCE_WITH_VALUE = 0xC0,
90 Lwm2mTlvIdType id_type;
97 const uint8_t *opaque;
99 int64_t integer_value;
102 const char *string_value;
131 Lwm2mTlvSinkArgs sink;
132 Lwm2mTlvSourceArgs source;
133 Lwm2mTlvHeaderArgs hdr;
134 Lwm2mTlvValueArgs val;
140extern Lwm2mTlvVars Lwm2mTlvV;
145 void (*
const open)(uint8_t *work);
146 void (*
const write)(uint8_t *work);
147 void (*
const write_integer)(uint8_t *work);
148 void (*
const write_boolean)(uint8_t *work);
149 void (*
const write_string)(uint8_t *work);
150 void (*
const write_float)(uint8_t *work);
151 void (*
const finish)(uint8_t *work);
152 void (*
const parse)(uint8_t *work);
153 void (*
const next)(uint8_t *work);
154 void (*
const value_integer)(uint8_t *work);
159void protocore_lwm2m_tlv_open(uint8_t *work);
160void protocore_lwm2m_tlv_write(uint8_t *work);
161void protocore_lwm2m_tlv_write_integer(uint8_t *work);
162void protocore_lwm2m_tlv_write_boolean(uint8_t *work);
163void protocore_lwm2m_tlv_write_string(uint8_t *work);
164void protocore_lwm2m_tlv_write_float(uint8_t *work);
165void protocore_lwm2m_tlv_finish(uint8_t *work);
166void protocore_lwm2m_tlv_parse(uint8_t *work);
167void protocore_lwm2m_tlv_next(uint8_t *work);
168void protocore_lwm2m_tlv_value_integer(uint8_t *work);
174static const Lwm2mTlvNs Lwm2mTlv __attribute__((unused)) = {
175 .open = protocore_lwm2m_tlv_open,
176 .write = protocore_lwm2m_tlv_write,
177 .write_integer = protocore_lwm2m_tlv_write_integer,
178 .write_boolean = protocore_lwm2m_tlv_write_boolean,
179 .write_string = protocore_lwm2m_tlv_write_string,
180 .write_float = protocore_lwm2m_tlv_write_float,
181 .finish = protocore_lwm2m_tlv_finish,
182 .parse = protocore_lwm2m_tlv_parse,
183 .next = protocore_lwm2m_tlv_next,
184 .value_integer = protocore_lwm2m_tlv_value_integer,
196uint8_t *protocore_lwm2m_tlv_span(
void);
PROTO_ENUM_PACKED
Application protocol spoken on a listener port or connection slot.
#define PROTOCORE_BEGIN_DECLS
Give a header's declarations C linkage, so their symbol names carry no parameter types.
_Bool proto_bool
The truth value.
#define PROTOCORE_END_DECLS