#ifndef BBFDMD_H #define BBFDMD_H #include <libubus.h> #include <libubox/blobmsg.h> #include <libubox/list.h> #include "dmbbf.h" struct bbfdm_async_req { struct ubus_context *ctx; struct ubus_request_data req; struct uloop_process process; void *result; }; typedef struct bbfdm_config { int proto; int instance_mode; int transaction_timeout; int subprocess_level; uint8_t log_level; uint32_t refresh_time; char in_type[32]; char in_name[128]; char in_plugin_dir[128]; char out_type[32]; char out_name[32]; char out_parent_dm[32]; char out_object[32]; char out_root_obj[32]; char cli_in_type[32]; char cli_in_name[128]; char cli_in_plugin_dir[128]; char cli_out_type[32]; } bbfdm_config_t; struct bbfdm_context { bbfdm_config_t config; struct ubus_context ubus_ctx; struct blob_buf dm_schema; struct uloop_timeout instance_timer; struct list_head event_handlers; struct list_head instances; struct list_head old_instances; }; struct ev_handler_node { struct ubus_event_handler *ev_handler; struct list_head list; }; typedef struct bbfdm_data { struct ubus_context *ctx; struct ubus_request_data *req; struct list_head *plist; struct dmctx bbf_ctx; struct blob_buf *bbp; struct blob_buf bb; uint8_t depth; bool is_raw; int trans_id; } bbfdm_data_t; #endif /* BBFDMD_H */