projects
/
project
/
netifd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
try to grab log data more aggressively
[project/netifd.git]
/
device.h
diff --git
a/device.h
b/device.h
index
8ecb9ef
..
057506b
100644
(file)
--- a/
device.h
+++ b/
device.h
@@
-11,7
+11,6
@@
typedef int (*device_state_cb)(struct device *, bool up);
enum {
DEV_ATTR_TYPE,
enum {
DEV_ATTR_TYPE,
- DEV_ATTR_NAME,
DEV_ATTR_IFNAME,
DEV_ATTR_MTU,
DEV_ATTR_MACADDR,
DEV_ATTR_IFNAME,
DEV_ATTR_MTU,
DEV_ATTR_MACADDR,
@@
-31,9
+30,11
@@
struct device_type {
const struct config_param_list *config_params;
const struct config_param_list *config_params;
- struct device *(*create)(struct blob_attr *attr);
+ struct device *(*create)(const char *name, struct blob_attr *attr);
+ void (*config_init)(struct device *);
enum dev_change_type (*reload)(struct device *, struct blob_attr *);
enum dev_change_type (*reload)(struct device *, struct blob_attr *);
- void (*dump_status)(struct device *, struct blob_buf *buf);
+ void (*dump_info)(struct device *, struct blob_buf *buf);
+ void (*dump_stats)(struct device *, struct blob_buf *buf);
int (*check_state)(struct device *);
void (*free)(struct device *);
};
int (*check_state)(struct device *);
void (*free)(struct device *);
};
@@
-58,8
+59,13
@@
struct device {
int ifindex;
struct blob_attr *config;
int ifindex;
struct blob_attr *config;
+ bool config_pending;
bool present;
int active;
bool present;
int active;
+ bool external;
+
+ bool current_config;
+ bool default_config;
/* set interface up or down */
device_state_cb set_state;
/* set interface up or down */
device_state_cb set_state;
@@
-95,6
+101,8
@@
struct device_user {
struct list_head list;
bool claimed;
struct list_head list;
bool claimed;
+ bool hotplug;
+
struct device *dev;
void (*cb)(struct device_user *, enum device_event);
};
struct device *dev;
void (*cb)(struct device_user *, enum device_event);
};
@@
-108,14
+116,25
@@
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;
extern const struct device_type simple_device_type;
extern const struct device_type bridge_device_type;
+void device_lock(void);
+void device_unlock(void);
+
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);
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_pending(void);
+
+enum dev_change_type
+device_set_config(struct device *dev, const struct device_type *type,
+ struct blob_attr *attr);
+
+void device_reset_config(void);
+void device_reset_old(void);
void device_init_virtual(struct device *dev, const struct device_type *type, const char *name);
int device_init(struct device *iface, const struct device_type *type, const char *ifname);
void device_cleanup(struct device *iface);
void device_init_virtual(struct device *dev, const struct device_type *type, const char *name);
int device_init(struct device *iface, const struct device_type *type, const char *ifname);
void device_cleanup(struct device *iface);
-struct device *device_get(const char *name,
bool
create);
+struct device *device_get(const char *name,
int
create);
void device_add_user(struct device_user *dep, struct device *iface);
void device_remove_user(struct device_user *dep);
void device_add_user(struct device_user *dep, struct device *iface);
void device_remove_user(struct device_user *dep);
@@
-123,6
+142,7
@@
void device_set_present(struct device *dev, bool state);
int device_claim(struct device_user *dep);
void device_release(struct device_user *dep);
int device_check_state(struct device *dev);
int device_claim(struct device_user *dep);
void device_release(struct device_user *dep);
int device_check_state(struct device *dev);
+void device_dump_status(struct blob_buf *b, struct device *dev);
static inline void
device_free(struct device *dev)
static inline void
device_free(struct device *dev)
@@
-133,5
+153,6
@@
device_free(struct device *dev)
void device_free_unused(struct device *dev);
struct device *get_vlan_device_chain(const char *ifname, bool create);
void device_free_unused(struct device *dev);
struct device *get_vlan_device_chain(const char *ifname, bool create);
+void alias_notify_device(const char *name, struct device *dev);
#endif
#endif