summaryrefslogtreecommitdiffhomepage
path: root/device.h
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2011-10-03 01:56:37 +0200
committerFelix Fietkau <nbd@openwrt.org>2011-10-03 01:56:37 +0200
commitf6b38cb7c9ad0e7feba7cb7d2a1678af5e032000 (patch)
treebdd8833e10c25ebfc7d017e12d505619aac3ff6a /device.h
parent39f5ec857a31fe65e14cdf9b75927297e78015bb (diff)
more changes for config reload handling
Diffstat (limited to 'device.h')
-rw-r--r--device.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/device.h b/device.h
index f1cdda0..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 */