SmartSnippets DA1459x SDK
ble_bufops.h
Go to the documentation of this file.
1 
39 #include <stdint.h>
40 #include <string.h>
41 
42 #ifndef BLE_BUFOPS_H_
43 #define BLE_BUFOPS_H_
44 
53 __STATIC_INLINE uint8_t get_u8(const uint8_t *buffer)
54 {
55  return buffer[0];
56 }
57 
66 __STATIC_INLINE uint16_t get_u16(const uint8_t *buffer)
67 {
68  return (buffer[0]) | (buffer[1] << 8);
69 }
70 
79 __STATIC_INLINE uint32_t get_u32(const uint8_t *buffer)
80 {
81  return (buffer[0]) | (buffer[1] << 8) | (buffer[2] << 16) | (buffer[3] << 24);
82 }
83 
92 __STATIC_INLINE uint8_t get_u8_inc(const uint8_t **buffer)
93 {
94  const uint8_t *b = *buffer;
95 
96  (*buffer) += sizeof(uint8_t);
97 
98  return get_u8(b);
99 }
100 
109 __STATIC_INLINE uint16_t get_u16_inc(const uint8_t **buffer)
110 {
111  const uint8_t *b = *buffer;
112 
113  (*buffer) += sizeof(uint16_t);
114 
115  return get_u16(b);
116 }
117 
126 __STATIC_INLINE uint32_t get_u32_inc(const uint8_t **buffer)
127 {
128  const uint8_t *b = *buffer;
129 
130  (*buffer) += sizeof(uint32_t);
131 
132  return get_u32(b);
133 }
134 
142 __STATIC_INLINE void put_u8(uint8_t *buffer, uint8_t value)
143 {
144  buffer[0] = value;
145 }
146 
154 __STATIC_INLINE void put_u16(uint8_t *buffer, uint16_t value)
155 {
156  buffer[0] = value;
157  buffer[1] = value >> 8;
158 }
159 
167 __STATIC_INLINE void put_u32(uint8_t *buffer, uint32_t value)
168 {
169  buffer[0] = value;
170  buffer[1] = value >> 8;
171  buffer[2] = value >> 16;
172  buffer[3] = value >> 24;
173 }
174 
182 __STATIC_INLINE void put_u8_inc(uint8_t **buffer, uint8_t value)
183 {
184  uint8_t *b = *buffer;
185 
186  (*buffer) += sizeof(uint8_t);
187 
188  put_u8(b, value);
189 }
190 
198 __STATIC_INLINE void put_u16_inc(uint8_t **buffer, uint16_t value)
199 {
200  uint8_t *b = *buffer;
201 
202  (*buffer) += sizeof(uint16_t);
203 
204  put_u16(b, value);
205 }
206 
214 __STATIC_INLINE void put_u32_inc(uint8_t **buffer, uint32_t value)
215 {
216  uint8_t *b = *buffer;
217 
218  (*buffer) += sizeof(uint32_t);
219 
220  put_u32(b, value);
221 }
222 
231 __STATIC_INLINE void put_data_inc(uint8_t **buffer, uint16_t length, const void *data)
232 {
233  memcpy(*buffer, data, length);
234 
235  (*buffer) += length;
236 }
237 
245 __STATIC_INLINE void put_str_inc(uint8_t **buffer, const char *str)
246 {
247  put_data_inc(buffer, strlen(str), str);
248  put_u8_inc(buffer, '\0');
249 }
250 
251 #endif /* BLE_BUFOPS_H_ */
252 
get_u8_inc
__STATIC_INLINE uint8_t get_u8_inc(const uint8_t **buffer)
Get uint8 from buffer and increase pointer.
Definition: ble_bufops.h:92
put_u32_inc
__STATIC_INLINE void put_u32_inc(uint8_t **buffer, uint32_t value)
Put uint32 to buffer and increase pointer.
Definition: ble_bufops.h:214
get_u16_inc
__STATIC_INLINE uint16_t get_u16_inc(const uint8_t **buffer)
Get uint16 from buffer and increase pointer.
Definition: ble_bufops.h:109
put_u32
__STATIC_INLINE void put_u32(uint8_t *buffer, uint32_t value)
Put uint32 to buffer.
Definition: ble_bufops.h:167
put_u8
__STATIC_INLINE void put_u8(uint8_t *buffer, uint8_t value)
Put uint8 to buffer.
Definition: ble_bufops.h:142
get_u32_inc
__STATIC_INLINE uint32_t get_u32_inc(const uint8_t **buffer)
Get uint32 from buffer and increase pointer.
Definition: ble_bufops.h:126
put_u16_inc
__STATIC_INLINE void put_u16_inc(uint8_t **buffer, uint16_t value)
Put uint16 to buffer and increase pointer.
Definition: ble_bufops.h:198
put_str_inc
__STATIC_INLINE void put_str_inc(uint8_t **buffer, const char *str)
Put string to buffer and increase pointer.
Definition: ble_bufops.h:245
get_u16
__STATIC_INLINE uint16_t get_u16(const uint8_t *buffer)
Get uint16 from buffer.
Definition: ble_bufops.h:66
get_u32
__STATIC_INLINE uint32_t get_u32(const uint8_t *buffer)
Get uint32 from buffer.
Definition: ble_bufops.h:79
put_u8_inc
__STATIC_INLINE void put_u8_inc(uint8_t **buffer, uint8_t value)
Put uint8 to buffer and increase pointer.
Definition: ble_bufops.h:182
put_u16
__STATIC_INLINE void put_u16(uint8_t *buffer, uint16_t value)
Put uint16 to buffer.
Definition: ble_bufops.h:154
get_u8
__STATIC_INLINE uint8_t get_u8(const uint8_t *buffer)
Get uint8 from buffer.
Definition: ble_bufops.h:53
put_data_inc
__STATIC_INLINE void put_data_inc(uint8_t **buffer, uint16_t length, const void *data)
Put data to buffer and increase pointer.
Definition: ble_bufops.h:231