Skip to content
Snippets Groups Projects
dongle.h 1.67 KiB
Newer Older
  • Learn to ignore specific revisions
  • #include "common.h"
    #include "dongle_infrastructure.h"
    
    Jakob Olsson's avatar
    Jakob Olsson committed
    #include "stack_operations.h"
    
    Jakob Olsson's avatar
    Jakob Olsson committed
    struct USB {
    	char *product;
    	char *product_id;
    	char *vendor_id;
    	char *if_name;
    };
    
    struct device {
    	struct list_head list;
    	struct ubus_object *ubus_obj;
    
    Jakob Olsson's avatar
    Jakob Olsson committed
    	struct USB usb;
    	char *ip;
    	int missing; //counter
    	bool present;
    };
    
    Jakob Olsson's avatar
    Jakob Olsson committed
    void uloop_add_get_devices(struct uloop_timeout *t);
    
    Jakob Olsson's avatar
    Jakob Olsson committed
    int get_devices_from_path(char *input_path);
    
    Jakob Olsson's avatar
    Jakob Olsson committed
    int get_devices(void);
    
    int poll_devices(struct uloop_timeout *t);
    
    Jakob Olsson's avatar
    Jakob Olsson committed
    int tag_missing_devices(void);
    int add_device(struct device *new_dev);
    int delete_all_devices(void);
    int delete_device_by_name(char *name);
    int delete_device(struct device *dev);
    void free_device(struct device *dev);
    void free_usb(struct USB *usb);
    struct device *search_list(char *name);
    char *lexer(char **input, char *delimiter);
    void remove_newline(char *input);
    
    char *get_usb_stat(char *path, char *file);
    
    Jakob Olsson's avatar
    Jakob Olsson committed
    char *get_device_name(char *dir_name);
    char *get_device_ip(char *device_name);
    
    int list_to_blob(struct blob_buf *bb);
    
    Jakob Olsson's avatar
    Jakob Olsson committed
    int print_list(struct ubus_context *ctx, struct ubus_object *obj,
    			   struct ubus_request_data *req, const char *method,
    			   struct blob_attr *msg);
    int clear(struct ubus_context *ctx, struct ubus_object *obj,
    		  struct ubus_request_data *req, const char *method,
    		  struct blob_attr *msg);
    int test(struct ubus_context *ctx, struct ubus_object *obj,
    		 struct ubus_request_data *req, const char *method,
    		 struct blob_attr *msg);
    int remove_device(struct ubus_context *ctx, struct ubus_object *obj,
    				  struct ubus_request_data *req, const char *method,
    				  struct blob_attr *msg);
    void init_ubus(void);
    int publish_object(struct ubus_context *ctx);