171 switch(amxc_var_type_of(data)) {
172 case AMXC_VAR_ID_BOOL: {
173 blobmsg_add_u8(b, key, (uint8_t) amxc_var_constcast(
bool, data));
177 case AMXC_VAR_ID_INT8: {
178 blobmsg_add_u8(b, key, (uint8_t) amxc_var_constcast(int8_t, data));
181 case AMXC_VAR_ID_UINT8: {
182 if(amxc_var_constcast(uint8_t, data) > INT8_MAX) {
183 blobmsg_add_u16(b, key, (uint16_t) amxc_var_constcast(uint8_t, data));
185 blobmsg_add_u8(b, key, (uint8_t) amxc_var_constcast(uint8_t, data));
189 case AMXC_VAR_ID_INT16: {
190 blobmsg_add_u16(b, key, (uint16_t) amxc_var_constcast(int16_t, data));
193 case AMXC_VAR_ID_UINT16: {
194 if(amxc_var_constcast(uint16_t, data) > INT16_MAX) {
195 blobmsg_add_u32(b, key, (uint32_t) amxc_var_constcast(uint16_t, data));
197 blobmsg_add_u16(b, key, (uint16_t) amxc_var_constcast(uint16_t, data));
201 case AMXC_VAR_ID_INT32: {
202 blobmsg_add_u32(b, key, (uint32_t) amxc_var_constcast(int32_t, data));
205 case AMXC_VAR_ID_UINT32: {
206 if(amxc_var_constcast(uint32_t, data) > INT32_MAX) {
207 blobmsg_add_u64(b, key, (uint64_t) amxc_var_constcast(uint32_t, data));
209 blobmsg_add_u32(b, key, (uint32_t) amxc_var_constcast(uint32_t, data));
213 case AMXC_VAR_ID_INT64: {
214 blobmsg_add_u64(b, key, (uint64_t) amxc_var_constcast(int64_t, data));
217 case AMXC_VAR_ID_UINT64: {
218 blobmsg_add_u64(b, key, (uint64_t) amxc_var_constcast(uint64_t, data));
222 case AMXC_VAR_ID_HTABLE: {
223 const amxc_htable_t* table = amxc_var_constcast(amxc_htable_t, data);
224 c = blobmsg_open_table(b, key);
226 blobmsg_close_table(b, c);
230 case AMXC_VAR_ID_LIST: {
231 const amxc_llist_t* list = amxc_var_constcast(amxc_llist_t, data);
232 c = blobmsg_open_array(b, key);
234 blobmsg_close_array(b, c);
239 char*
string = amxc_var_dyncast(cstring_t, data);
240 blobmsg_add_string(b, key,
string == NULL ?
"" :
string);
int PRIVATE amxb_ubus_format_blob_array(const amxc_llist_t *list, struct blob_buf *b)
int PRIVATE amxb_ubus_format_blob_table(const amxc_htable_t *table, struct blob_buf *b)