[PATCH BlueZ 4/9] mesh: Generalize mesh-config APIs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This changes argument for each mesh-config API to use void* as
a pointer to a node configuration object. This makes usage of JSON
opaque for the rest of the code and allows to plug in a non-JSON
configuration storage implementation.
---
 mesh/mesh-config-json.c | 228 +++++++++++++++++++++++-----------------
 mesh/mesh-config.h      | 107 +++++++++----------
 2 files changed, 180 insertions(+), 155 deletions(-)

diff --git a/mesh/mesh-config-json.c b/mesh/mesh-config-json.c
index 8fcb8afe3..5ca086ad0 100644
--- a/mesh/mesh-config-json.c
+++ b/mesh/mesh-config-json.c
@@ -252,10 +252,14 @@ static json_object *jarray_key_del(json_object *jarray, int16_t idx)
 	return jarray_new;
 }
 
-bool mesh_config_read_iv_index(json_object *jobj, uint32_t *idx, bool *update)
+bool mesh_config_read_iv_index(void *cfg, uint32_t *idx, bool *update)
 {
+	json_object *jobj = cfg;
 	int tmp;
 
+	if (!jobj)
+		return false;
+
 	/* IV index */
 	if (!get_int(jobj, "IVindex", &tmp))
 		return false;
@@ -270,12 +274,12 @@ bool mesh_config_read_iv_index(json_object *jobj, uint32_t *idx, bool *update)
 	return true;
 }
 
-bool mesh_config_read_token(json_object *jobj, uint8_t token[8])
+bool mesh_config_read_token(void *cfg, uint8_t token[8])
 {
-	json_object *jvalue;
+	json_object *jobj = cfg, *jvalue;
 	char *str;
 
-	if (!token)
+	if (!token || !jobj)
 		return false;
 
 	if (!json_object_object_get_ex(jobj, "token", &jvalue))
@@ -288,12 +292,12 @@ bool mesh_config_read_token(json_object *jobj, uint8_t token[8])
 	return true;
 }
 
-bool mesh_config_read_device_key(json_object *jobj, uint8_t key_buf[16])
+bool mesh_config_read_device_key(void *cfg, uint8_t key_buf[16])
 {
-	json_object *jvalue;
+	json_object *jvalue, *jobj = cfg;
 	char *str;
 
-	if (!key_buf)
+	if (!key_buf || !jobj)
 		return false;
 
 	if (!json_object_object_get_ex(jobj, "deviceKey", &jvalue))
@@ -306,15 +310,15 @@ bool mesh_config_read_device_key(json_object *jobj, uint8_t key_buf[16])
 	return true;
 }
 
-bool mesh_config_read_app_keys(json_object *jobj, mesh_config_app_key_cb cb,
+bool mesh_config_read_app_keys(void *cfg, mesh_config_app_key_cb cb,
 							void *user_data)
 {
-	json_object *jarray;
+	json_object *jarray, *jobj = cfg;
 	int len;
 	int i;
 
-	if (!cb)
-		return true;
+	if (!jobj || !cb)
+		return false;
 
 	if (!json_object_object_get_ex(jobj, "appKeys", &jarray))
 		return false;
@@ -368,15 +372,15 @@ bool mesh_config_read_app_keys(json_object *jobj, mesh_config_app_key_cb cb,
 	return true;
 }
 
-bool mesh_config_read_net_keys(json_object *jobj, mesh_config_net_key_cb cb,
+bool mesh_config_read_net_keys(void *cfg, mesh_config_net_key_cb cb,
 								void *user_data)
 {
-	json_object *jarray;
+	json_object *jarray, *jobj = cfg;
 	int len;
 	int i;
 
-	if (!cb)
-		return true;
+	if (!cb || !jobj)
+		return false;
 
 	if (!json_object_object_get_ex(jobj, "netKeys", &jarray))
 		return false;
@@ -431,12 +435,14 @@ bool mesh_config_read_net_keys(json_object *jobj, mesh_config_net_key_cb cb,
 	return true;
 }
 
-bool mesh_config_net_key_add(json_object *jobj, uint16_t idx,
-							const uint8_t key[16])
+bool mesh_config_net_key_add(void *cfg, uint16_t idx, const uint8_t key[16])
 {
-	json_object *jarray = NULL, *jentry = NULL, *jstring;
+	json_object *jarray = NULL, *jentry = NULL, *jstring, *jobj = cfg;
 	char buf[5];
 
+	if (!jobj)
+		return false;
+
 	json_object_object_get_ex(jobj, "netKeys", &jarray);
 	if (jarray)
 		jentry = get_key_object(jarray, idx);
@@ -479,12 +485,14 @@ fail:
 	return false;
 }
 
-bool mesh_config_net_key_update(json_object *jobj, uint16_t idx,
-							const uint8_t key[16])
+bool mesh_config_net_key_update(void *cfg, uint16_t idx, const uint8_t key[16])
 {
-	json_object *jarray, *jentry, *jstring;
+	json_object *jarray, *jentry, *jstring, *jobj = cfg;
 	const char *str;
 
+	if (!jobj)
+		return false;
+
 	if (!json_object_object_get_ex(jobj, "netKeys", &jarray))
 		return false;
 
@@ -510,9 +518,12 @@ bool mesh_config_net_key_update(json_object *jobj, uint16_t idx,
 	return true;
 }
 
-bool mesh_config_net_key_del(json_object *jobj, uint16_t idx)
+bool mesh_config_net_key_del(void *cfg, uint16_t idx)
 {
-	json_object *jarray, *jarray_new;
+	json_object *jarray, *jarray_new, *jobj = cfg;
+
+	if (!jobj)
+		return false;
 
 	if (!json_object_object_get_ex(jobj, "netKeys", &jarray))
 		return true;
@@ -541,21 +552,35 @@ bool mesh_config_net_key_del(json_object *jobj, uint16_t idx)
 	return true;
 }
 
-bool mesh_config_write_device_key(json_object *jnode, uint8_t *key)
+bool mesh_config_write_device_key(void *cfg, uint8_t *key)
 {
-	return add_key_value(jnode, "deviceKey", key);
+	json_object *jobj = cfg;
+
+	if (!jobj)
+		return false;
+
+	return add_key_value(jobj, "deviceKey", key);
 }
 
-bool mesh_config_write_token(json_object *jnode, uint8_t *token)
+bool mesh_config_write_token(void *cfg, uint8_t *token)
 {
-	return add_u64_value(jnode, "token", token);
+	json_object *jobj = cfg;
+
+	if (!jobj)
+		return false;
+
+	return add_u64_value(jobj, "token", token);
 }
 
-bool mesh_config_app_key_add(json_object *jobj, uint16_t net_idx,
+bool mesh_config_app_key_add(void *cfg, uint16_t net_idx,
 					uint16_t app_idx, const uint8_t key[16])
 {
 	json_object *jarray = NULL, *jentry = NULL, *jstring = NULL;
 	char buf[5];
+	json_object *jobj = cfg;
+
+	if (!jobj)
+		return false;
 
 	json_object_object_get_ex(jobj, "appKeys", &jarray);
 	if (jarray)
@@ -604,11 +629,15 @@ fail:
 	return false;
 }
 
-bool mesh_config_app_key_update(json_object *jobj, uint16_t app_idx,
+bool mesh_config_app_key_update(void *cfg, uint16_t app_idx,
 							const uint8_t key[16])
 {
 	json_object *jarray, *jentry = NULL, *jstring = NULL;
 	const char *str;
+	json_object *jobj = cfg;
+
+	if (!jobj)
+		return false;
 
 	if (!json_object_object_get_ex(jobj, "appKeys", &jarray))
 		return false;
@@ -629,9 +658,13 @@ bool mesh_config_app_key_update(json_object *jobj, uint16_t app_idx,
 	return add_key_value(jentry, "key", key);
 }
 
-bool mesh_config_app_key_del(json_object *jobj, uint16_t net_idx, uint16_t idx)
+bool mesh_config_app_key_del(void *cfg, uint16_t net_idx, uint16_t idx)
 {
 	json_object *jarray, *jarray_new;
+	json_object *jobj = cfg;
+
+	if (!jobj)
+		return false;
 
 	if (!json_object_object_get_ex(jobj, "appKeys", &jarray))
 		return true;
@@ -660,14 +693,17 @@ bool mesh_config_app_key_del(json_object *jobj, uint16_t net_idx, uint16_t idx)
 	return true;
 }
 
-bool mesh_config_model_binding_add(json_object *jnode, uint8_t ele_idx,
-					bool vendor, uint32_t mod_id,
-							uint16_t app_idx)
+bool mesh_config_model_binding_add(void *cfg, uint8_t ele_idx, bool vendor,
+					uint32_t mod_id, uint16_t app_idx)
 {
 	json_object *jmodel, *jstring, *jarray = NULL;
 	char buf[5];
+	json_object *jobj = cfg;
 
-	jmodel = get_element_model(jnode, ele_idx, mod_id, vendor);
+	if (!jobj)
+		return false;
+
+	jmodel = get_element_model(jobj, ele_idx, mod_id, vendor);
 	if (!jmodel)
 		return false;
 
@@ -695,14 +731,16 @@ bool mesh_config_model_binding_add(json_object *jnode, uint8_t ele_idx,
 	return true;
 }
 
-bool mesh_config_model_binding_del(json_object *jnode, uint8_t ele_idx,
-					bool vendor, uint32_t mod_id,
-							uint16_t app_idx)
+bool mesh_config_model_binding_del(void *cfg, uint8_t ele_idx, bool vendor,
+					uint32_t mod_id, uint16_t app_idx)
 {
-	json_object *jmodel, *jarray, *jarray_new;
+	json_object *jmodel, *jarray, *jarray_new, *jobj = cfg;
 	char buf[5];
 
-	jmodel = get_element_model(jnode, ele_idx, mod_id, vendor);
+	if (!jobj)
+		return false;
+
+	jmodel = get_element_model(jobj, ele_idx, mod_id, vendor);
 	if (!jmodel)
 		return false;
 
@@ -1162,14 +1200,13 @@ static bool parse_composition(json_object *jcomp, struct mesh_config_node *node)
 	return true;
 }
 
-bool mesh_config_read_node(json_object *jnode, mesh_config_node_cb cb,
-							void *user_data)
+bool mesh_config_read_node(void *cfg, mesh_config_node_cb cb, void *user_data)
 {
 	struct mesh_config_node node;
-	json_object *jvalue;
+	json_object *jvalue, *jobj = cfg;
 	char *str;
 
-	if (!jnode)
+	if (!jobj)
 		return false;
 
 	if (!cb) {
@@ -1179,14 +1216,14 @@ bool mesh_config_read_node(json_object *jnode, mesh_config_node_cb cb,
 
 	memset(&node, 0, sizeof(node));
 
-	if (!parse_composition(jnode, &node)) {
+	if (!parse_composition(jobj, &node)) {
 		l_info("Failed to parse local node composition");
 		return false;
 	}
 
-	parse_features(jnode, &node);
+	parse_features(jobj, &node);
 
-	if (!json_object_object_get_ex(jnode, "unicastAddress", &jvalue)) {
+	if (!json_object_object_get_ex(jobj, "unicastAddress", &jvalue)) {
 		l_info("Bad config: Unicast address must be present");
 		return false;
 	}
@@ -1195,7 +1232,7 @@ bool mesh_config_read_node(json_object *jnode, mesh_config_node_cb cb,
 	if (sscanf(str, "%04hx", &node.unicast) != 1)
 		return false;
 
-	if (json_object_object_get_ex(jnode, "defaultTTL", &jvalue)) {
+	if (json_object_object_get_ex(jobj, "defaultTTL", &jvalue)) {
 		int ttl = json_object_get_int(jvalue);
 
 		if (ttl < 0 || ttl == 1 || ttl > DEFAULT_TTL)
@@ -1203,11 +1240,11 @@ bool mesh_config_read_node(json_object *jnode, mesh_config_node_cb cb,
 		node.ttl = (uint8_t) ttl;
 	}
 
-	if (json_object_object_get_ex(jnode, "sequenceNumber", &jvalue))
+	if (json_object_object_get_ex(jobj, "sequenceNumber", &jvalue))
 		node.seq_number = json_object_get_int(jvalue);
 
 	/* Check for required "elements" property */
-	if (!json_object_object_get_ex(jnode, "elements", &jvalue))
+	if (!json_object_object_get_ex(jobj, "elements", &jvalue))
 		return false;
 
 	if (!parse_elements(jvalue, &node))
@@ -1216,10 +1253,9 @@ bool mesh_config_read_node(json_object *jnode, mesh_config_node_cb cb,
 	return cb(&node, user_data);
 }
 
-bool mesh_config_write_uint16_hex(json_object *jobj, const char *desc,
-								uint16_t value)
+bool mesh_config_write_uint16_hex(void *cfg, const char *desc, uint16_t value)
 {
-	json_object *jstring;
+	json_object *jstring, *jobj = cfg;
 	char buf[5];
 
 	if (!jobj)
@@ -1234,10 +1270,9 @@ bool mesh_config_write_uint16_hex(json_object *jobj, const char *desc,
 	return true;
 }
 
-bool mesh_config_write_uint32_hex(json_object *jobj, const char *desc,
-								uint32_t value)
+bool mesh_config_write_uint32_hex(void *cfg, const char *desc, uint32_t value)
 {
-	json_object *jstring;
+	json_object *jstring, *jobj = cfg;
 	char buf[9];
 
 	if (!jobj)
@@ -1252,9 +1287,9 @@ bool mesh_config_write_uint32_hex(json_object *jobj, const char *desc,
 	return true;
 }
 
-bool mesh_config_write_int(json_object *jobj, const char *keyword, int value)
+bool mesh_config_write_int(void *cfg, const char *keyword, int value)
 {
-	json_object *jvalue;
+	json_object *jvalue, *jobj = cfg;
 
 	if (!jobj)
 		return false;
@@ -1269,9 +1304,9 @@ bool mesh_config_write_int(json_object *jobj, const char *keyword, int value)
 	return true;
 }
 
-bool mesh_config_write_bool(json_object *jobj, const char *keyword, bool value)
+bool mesh_config_write_bool(void *cfg, const char *keyword, bool value)
 {
-	json_object *jvalue;
+	json_object *jvalue, *jobj = cfg;
 
 	if (!jobj)
 		return false;
@@ -1298,9 +1333,9 @@ static const char *mode_to_string(int mode)
 	}
 }
 
-bool mesh_config_write_mode(json_object *jobj, const char *keyword, int value)
+bool mesh_config_write_mode(void *cfg, const char *keyword, int value)
 {
-	json_object *jstring;
+	json_object *jstring, *jobj = cfg;
 
 	if (!jobj)
 		return false;
@@ -1315,15 +1350,15 @@ bool mesh_config_write_mode(json_object *jobj, const char *keyword, int value)
 	return true;
 }
 
-bool mesh_config_write_relay_mode(json_object *jnode, uint8_t mode,
-					uint8_t count, uint16_t interval)
+bool mesh_config_write_relay_mode(void *cfg, uint8_t mode, uint8_t count,
+							uint16_t interval)
 {
-	json_object *jrelay;
+	json_object *jrelay, *jobj = cfg;
 
-	if (!jnode)
+	if (!jobj)
 		return false;
 
-	json_object_object_del(jnode, "relay");
+	json_object_object_del(jobj, "relay");
 
 	jrelay = json_object_new_object();
 	if (!jrelay)
@@ -1338,7 +1373,7 @@ bool mesh_config_write_relay_mode(json_object *jnode, uint8_t mode,
 	if (!mesh_config_write_int(jrelay, "interval", interval))
 		goto fail;
 
-	json_object_object_add(jnode, "relay", jrelay);
+	json_object_object_add(jobj, "relay", jrelay);
 
 	return true;
 fail:
@@ -1346,10 +1381,9 @@ fail:
 	return false;
 }
 
-bool mesh_config_read_net_transmit(json_object *jobj, uint8_t *cnt,
-							uint16_t *interval)
+bool mesh_config_read_net_transmit(void *cfg, uint8_t *cnt, uint16_t *interval)
 {
-	json_object *jretransmit, *jvalue;
+	json_object *jretransmit, *jvalue, *jobj = cfg;
 
 	if (!jobj)
 		return false;
@@ -1370,10 +1404,9 @@ bool mesh_config_read_net_transmit(json_object *jobj, uint8_t *cnt,
 	return true;
 }
 
-bool mesh_config_write_net_transmit(json_object *jobj, uint8_t cnt,
-							uint16_t interval)
+bool mesh_config_write_net_transmit(void *cfg, uint8_t cnt, uint16_t interval)
 {
-	json_object *jretransmit;
+	json_object *jretransmit, *jobj = cfg;
 
 	if (!jobj)
 		return false;
@@ -1399,8 +1432,9 @@ fail:
 
 }
 
-bool mesh_config_write_iv_index(json_object *jobj, uint32_t idx, bool update)
+bool mesh_config_write_iv_index(void *cfg, uint32_t idx, bool update)
 {
+	json_object *jobj = cfg;
 	int tmp = update ? 1 : 0;
 
 	if (!jobj)
@@ -1415,8 +1449,10 @@ bool mesh_config_write_iv_index(json_object *jobj, uint32_t idx, bool update)
 	return true;
 }
 
-void mesh_config_remove_property(json_object *jobj, const char *desc)
+void mesh_config_remove_property(void *cfg, const char *desc)
 {
+	json_object *jobj = cfg;
+
 	if (jobj)
 		json_object_object_del(jobj, desc);
 }
@@ -1440,11 +1476,11 @@ static void add_model(void *a, void *b)
 }
 
 /* Add unprovisioned node (local) */
-bool mesh_config_add_node(json_object *jnode, struct mesh_config_node *node)
+bool mesh_config_add_node(void *cfg, struct mesh_config_node *node)
 {
 	struct mesh_config_modes *modes = &node->modes;
 	const struct l_queue_entry *entry;
-	json_object *jelems;
+	json_object *jelems, *jnode = cfg;
 
 	if (!jnode)
 		return false;
@@ -1562,10 +1598,9 @@ static void finish_key_refresh(json_object *jobj, uint16_t net_idx)
 
 }
 
-bool mesh_config_net_key_set_phase(json_object *jobj, uint16_t idx,
-								uint8_t phase)
+bool mesh_config_net_key_set_phase(void *cfg, uint16_t idx, uint8_t phase)
 {
-	json_object *jarray, *jentry = NULL;
+	json_object *jobj = cfg, *jarray, *jentry = NULL;
 
 	if (!jobj)
 		return false;
@@ -1588,11 +1623,10 @@ bool mesh_config_net_key_set_phase(json_object *jobj, uint16_t idx,
 	return true;
 }
 
-bool mesh_config_model_pub_add(json_object *jnode, uint16_t addr,
-					uint32_t mod_id, bool vendor,
-					struct mesh_config_pub *pub)
+bool mesh_config_model_pub_add(void *cfg, uint16_t addr, uint32_t mod_id,
+				bool vendor, struct mesh_config_pub *pub)
 {
-	json_object *jmodel, *jpub, *jretransmit;
+	json_object *jnode = cfg, *jmodel, *jpub, *jretransmit;
 	bool res;
 	int ele_idx;
 
@@ -1672,20 +1706,21 @@ static bool delete_model_property(json_object *jnode, uint16_t addr,
 	return true;
 }
 
-bool mesh_config_model_pub_del(json_object *jnode, uint16_t addr,
-						uint32_t mod_id, bool vendor)
+bool mesh_config_model_pub_del(void *cfg, uint16_t addr, uint32_t mod_id,
+								bool vendor)
 {
+	json_object *jnode = cfg;
+
 	if (!jnode)
 		return false;
 
 	return delete_model_property(jnode, addr, mod_id, vendor, "publish");
 }
 
-bool mesh_config_model_sub_add(json_object *jnode, uint16_t addr,
-						uint32_t mod_id, bool vendor,
-						struct mesh_config_sub *sub)
+bool mesh_config_model_sub_add(void *cfg, uint16_t addr, uint32_t mod_id,
+				bool vendor, struct mesh_config_sub *sub)
 {
-	json_object *jmodel, *jstring, *jarray = NULL;
+	json_object *jnode = cfg, *jmodel, *jstring, *jarray = NULL;
 	int ele_idx, len;
 	char buf[33];
 
@@ -1730,11 +1765,10 @@ bool mesh_config_model_sub_add(json_object *jnode, uint16_t addr,
 	return true;
 }
 
-bool mesh_config_model_sub_del(json_object *jnode, uint16_t addr,
-						uint32_t mod_id, bool vendor,
-						struct mesh_config_sub *sub)
+bool mesh_config_model_sub_del(void *cfg, uint16_t addr, uint32_t mod_id,
+				bool vendor, struct mesh_config_sub *sub)
 {
-	json_object *jmodel, *jarray, *jarray_new;
+	json_object *jnode = cfg, *jmodel, *jarray, *jarray_new;
 	char buf[33];
 	int len, ele_idx;
 
@@ -1783,9 +1817,11 @@ bool mesh_config_model_sub_del(json_object *jnode, uint16_t addr,
 	return true;
 }
 
-bool mesh_config_model_sub_del_all(json_object *jnode, uint16_t addr,
-						uint32_t mod_id, bool vendor)
+bool mesh_config_model_sub_del_all(void *cfg, uint16_t addr, uint32_t mod_id,
+								bool vendor)
 {
+	json_object *jnode = cfg;
+
 	if (!jnode)
 		return false;
 
diff --git a/mesh/mesh-config.h b/mesh/mesh-config.h
index f60ae18cd..ab101a331 100644
--- a/mesh/mesh-config.h
+++ b/mesh/mesh-config.h
@@ -21,7 +21,7 @@ struct mesh_config_sub {
 	bool virt;
 	union {
 		uint16_t addr;
-		uint8_t	virt_addr[16];
+		uint8_t virt_addr[16];
 	} src;
 };
 
@@ -100,66 +100,55 @@ typedef bool (*mesh_config_app_key_cb)(uint16_t idx, uint16_t net_idx,
 typedef bool (*mesh_config_node_cb)(struct mesh_config_node *node,
 							void *user_data);
 
-bool mesh_config_read_node(json_object *jobj, mesh_config_node_cb cb,
+bool mesh_config_read_node(void *cfg, mesh_config_node_cb cb, void *user_data);
+bool mesh_config_add_node(void *cfg, struct mesh_config_node *node);
+bool mesh_config_read_iv_index(void *cfg, uint32_t *idx, bool *update);
+bool mesh_config_read_device_key(void *cfg, uint8_t key_buf[16]);
+bool mesh_config_read_token(void *cfg, uint8_t token[8]);
+bool mesh_config_read_net_transmit(void *cfg, uint8_t *cnt, uint16_t *interval);
+bool mesh_config_write_net_transmit(void *cfg, uint8_t cnt, uint16_t interval);
+bool mesh_config_read_net_keys(void *cfg, mesh_config_net_key_cb cb,
 							void *user_data);
-bool mesh_config_add_node(json_object *jnode, struct mesh_config_node *node);
-bool mesh_config_read_iv_index(json_object *jobj, uint32_t *idx, bool *update);
-bool mesh_config_read_device_key(json_object *jobj, uint8_t key_buf[16]);
-bool mesh_config_read_token(json_object *jobj, uint8_t token[8]);
-bool mesh_config_read_net_transmit(json_object *jobj, uint8_t *cnt,
-							uint16_t *interval);
-bool mesh_config_write_net_transmit(json_object *jobj, uint8_t cnt,
-							uint16_t interval);
-bool mesh_config_read_net_keys(json_object *jobj, mesh_config_net_key_cb cb,
-							void *user_data);
-bool mesh_config_read_app_keys(json_object *jobj, mesh_config_app_key_cb cb,
+bool mesh_config_read_app_keys(void *cfg, mesh_config_app_key_cb cb,
 							void *user_data);
-bool mesh_config_write_device_key(json_object *jobj, uint8_t *key);
-bool mesh_config_write_token(json_object *jobj, uint8_t *token);
-bool mesh_config_write_network_key(json_object *jobj, uint16_t idx,
-				uint8_t *key, uint8_t *new_key, int phase);
-bool mesh_config_write_app_key(json_object *jobj, uint16_t net_idx,
-			uint16_t app_idx, uint8_t *key, uint8_t *new_key);
-bool mesh_config_write_int(json_object *jobj, const char *keyword, int value);
-bool mesh_config_write_uint16_hex(json_object *jobj, const char *desc,
-								uint16_t value);
-bool mesh_config_write_uint32_hex(json_object *jobj, const char *desc,
-								uint32_t value);
-bool mesh_config_write_bool(json_object *jobj, const char *keyword, bool value);
-bool mesh_config_write_relay_mode(json_object *jnode, uint8_t mode,
-					uint8_t count, uint16_t interval);
-bool mesh_config_write_mode(json_object *jobj, const char *keyword, int value);
-bool mesh_config_model_binding_add(json_object *jnode, uint8_t ele_idx,
-						bool vendor, uint32_t mod_id,
-							uint16_t app_idx);
-bool mesh_config_model_binding_del(json_object *jnode, uint8_t ele_idx,
-						bool vendor, uint32_t mod_id,
-							uint16_t app_idx);
-bool mesh_config_model_pub_add(json_object *jnode, uint16_t ele_addr,
-						uint32_t mod_id, bool vendor,
-						struct mesh_config_pub *pub);
-bool mesh_config_model_pub_del(json_object *jnode, uint16_t ele_addr,
-						uint32_t mod_id, bool vendor);
-bool mesh_config_model_sub_add(json_object *jnode, uint16_t addr,
-						uint32_t mod_id, bool vendor,
-						struct mesh_config_sub *sub);
-bool mesh_config_model_sub_del(json_object *jnode, uint16_t addr,
-						uint32_t mod_id, bool vendor,
-						struct mesh_config_sub *sub);
-bool mesh_config_model_sub_del_all(json_object *jnode, uint16_t addr,
-						uint32_t mod_id, bool vendor);
-bool mesh_config_app_key_add(json_object *jnode, uint16_t net_idx,
-				uint16_t app_idx, const uint8_t key[16]);
-bool mesh_config_app_key_update(json_object *jobj, uint16_t app_idx,
+bool mesh_config_write_device_key(void *cfg, uint8_t *key);
+bool mesh_config_write_token(void *cfg, uint8_t *token);
+bool mesh_config_write_network_key(void *cfg, uint16_t net_idx, uint8_t *key,
+						uint8_t *new_key, int phase);
+bool mesh_config_write_app_key(void *cfg, uint16_t net_idx, uint16_t app_idx,
+						uint8_t *key, uint8_t *new_key);
+bool mesh_config_write_int(void *cfg, const char *keyword, int value);
+bool mesh_config_write_uint16_hex(void *cfg, const char *desc, uint16_t value);
+bool mesh_config_write_uint32_hex(void *cfg, const char *desc, uint32_t value);
+bool mesh_config_write_bool(void *cfg, const char *keyword, bool value);
+bool mesh_config_write_relay_mode(void *cfg, uint8_t mode, uint8_t count,
+							uint16_t interval);
+bool mesh_config_write_mode(void *cfg, const char *keyword, int value);
+bool mesh_config_model_binding_add(void *cfg, uint8_t ele_idx, bool vendor,
+					uint32_t mod_id, uint16_t app_idx);
+bool mesh_config_model_binding_del(void *cfg, uint8_t ele_idx, bool vendor,
+					uint32_t mod_id, uint16_t app_idx);
+bool mesh_config_model_pub_add(void *cfg, uint16_t ele_addr, uint32_t mod_id,
+				bool vendor, struct mesh_config_pub *pub);
+bool mesh_config_model_pub_del(void *cfg, uint16_t ele_addr, uint32_t mod_id,
+								bool vendor);
+bool mesh_config_model_sub_add(void *cfg, uint16_t addr, uint32_t mod_id,
+				bool vendor, struct mesh_config_sub *sub);
+bool mesh_config_model_sub_del(void *cfg, uint16_t addr, uint32_t mod_id,
+				bool vendor, struct mesh_config_sub *sub);
+bool mesh_config_model_sub_del_all(void *cfg, uint16_t addr, uint32_t mod_id,
+								bool vendor);
+bool mesh_config_app_key_add(void *cfg, uint16_t net_idx, uint16_t app_idx,
+							const uint8_t key[16]);
+bool mesh_config_app_key_update(void *cfg, uint16_t app_idx,
 							const uint8_t key[16]);
-bool mesh_config_app_key_del(json_object *jobj, uint16_t net_idx, uint16_t idx);
-bool mesh_config_net_key_add(json_object *jobj, uint16_t net_idx,
+bool mesh_config_app_key_del(void *cfg, uint16_t net_idx, uint16_t idx);
+bool mesh_config_net_key_add(void *cfg, uint16_t net_idx,
 							const uint8_t key[16]);
-bool mesh_config_net_key_update(json_object *jobj, uint16_t idx,
+bool mesh_config_net_key_update(void *cfg, uint16_t net_idx,
 							const uint8_t key[16]);
-bool mesh_config_net_key_del(json_object *jobj, uint16_t net_idx);
-bool mesh_config_net_key_set_phase(json_object *jobj, uint16_t idx,
-								uint8_t phase);
-bool mesh_config_write_address(json_object *jobj, uint16_t address);
-bool mesh_config_write_iv_index(json_object *jobj, uint32_t idx, bool update);
-void mesh_config_remove_property(json_object *jobj, const char *desc);
+bool mesh_config_net_key_del(void *cfg, uint16_t net_idx);
+bool mesh_config_net_key_set_phase(void *cfg, uint16_t net_idx, uint8_t phase);
+bool mesh_config_write_address(void *cfg, uint16_t address);
+bool mesh_config_write_iv_index(void *cfg, uint32_t net_idx, bool update);
+void mesh_config_remove_property(void *cfg, const char *desc);
-- 
2.21.0




[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux