summaryrefslogtreecommitdiff
path: root/handler.h
diff options
context:
space:
mode:
authorArne Kappen <arne.kappen@hhi.fraunhofer.de>2020-12-09 16:01:23 +0100
committerDaniel Golle <daniel@makrotopia.org>2021-03-31 01:19:55 +0100
commitb22f83d752d4d53e120bbbcb089ec2d980cbd957 (patch)
treec03a2bb553bca35e9bae610b03ea739bf7085696 /handler.h
parent09632d4336c0fb2e82d71e42139d715d027ace64 (diff)
downloadnetifd-b22f83d752d4d53e120bbbcb089ec2d980cbd957.tar.gz
handler: add mechanism to generate external device handler stubs
Parse JSON files in a given directory and pass the information on to a callback function for creation of an external device handler stub. The description contains: - 'name': the name of the device type, - 'ubus_name': the name of the external device handler daemon on ubus, - 'bridge': a flag indicating whether the devices are bridge-like, - optionally 'br_prefix': a prefix for created devices (only for bridge-like, defaults to type name), - 'config': the UCI config options for devices of this type, and - optionally 'info' and 'stats': the format of calls to info() and dump(). Signed-off-by: Arne Kappen <arne.kappen@hhi.fraunhofer.de>
Diffstat (limited to 'handler.h')
-rw-r--r--handler.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/handler.h b/handler.h
index e3e2af5..7064409 100644
--- a/handler.h
+++ b/handler.h
@@ -19,6 +19,10 @@
#include "config.h"
typedef void (*script_dump_cb)(const char *script, const char *name, json_object *obj);
+typedef void (*create_extdev_handler_cb)(const char *cfg_file, const char *name,
+ const char *ubus_name, bool bridge,
+ const char *br_prefix, json_object *config_obj,
+ json_object *info_obj, json_object *stats_obj);
static inline json_object *
json_check_type(json_object *obj, json_type type)
@@ -41,6 +45,7 @@ json_get_field(json_object *obj, const char *name, json_type type)
int netifd_open_subdir(const char *name);
void netifd_init_script_handlers(int dir_fd, script_dump_cb cb);
+void netifd_init_extdev_handlers(int dir_fd, create_extdev_handler_cb cb);
char *netifd_handler_parse_config(struct uci_blob_param_list *config, json_object *obj);
#endif