Skip to content
Snippets Groups Projects
bbfdmd.h 1.29 KiB
Newer Older
  • Learn to ignore specific revisions
  • Bogdan Bogush's avatar
    Bogdan Bogush committed
    #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 */