X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fnetifd.git;a=blobdiff_plain;f=device.h;h=907b9c660684327feb7e39b18f9915795be50826;hp=cb7146a5f0be5584f0c5bc72ae45502818ea1a83;hb=958012387b5bd493ea5fdabe815e9f4fd4e55dc5;hpb=818abd9f2f42c36a0f91ff6d29a9a635398216e0 diff --git a/device.h b/device.h index cb7146a..907b9c6 100644 --- a/device.h +++ b/device.h @@ -19,6 +19,12 @@ enum { __DEV_ATTR_MAX, }; +enum dev_change_type { + DEV_CONFIG_NO_CHANGE, + DEV_CONFIG_APPLIED, + DEV_CONFIG_RECREATE, +}; + struct device_type { struct list_head list; const char *name; @@ -26,6 +32,7 @@ struct device_type { const struct config_param_list *config_params; struct device *(*create)(struct blob_attr *attr); + enum dev_change_type (*reload)(struct device *, struct blob_attr *); void (*dump_status)(struct device *, struct blob_buf *buf); int (*check_state)(struct device *); void (*free)(struct device *); @@ -50,6 +57,7 @@ struct device { char ifname[IFNAMSIZ + 1]; int ifindex; + struct blob_attr *config; bool present; int active; @@ -64,8 +72,6 @@ struct device { unsigned int mtu; unsigned int txqueuelen; uint8_t macaddr[6]; - - uint32_t config_hash; }; /* events broadcasted to all users of a device */ @@ -102,6 +108,8 @@ extern const struct config_param_list device_attr_list; extern const struct device_type simple_device_type; extern const struct device_type bridge_device_type; +struct device *device_create(const char *name, const struct device_type *type, + struct blob_attr *config); void device_init_settings(struct device *dev, struct blob_attr **tb); void device_init_virtual(struct device *dev, const struct device_type *type, const char *name);