X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fnetifd.git;a=blobdiff_plain;f=device.h;h=8cedfbae642827b1ff5f650c34cb4dfddb8e4034;hp=c76c472312432d7f756f3d523168d8a4df5e2f88;hb=51b3f21fef7f581a7df6d8a73d8b973f9eb355d2;hpb=1850d0350d3af11514744961d827a8b9facdaf00 diff --git a/device.h b/device.h index c76c472..8cedfba 100644 --- a/device.h +++ b/device.h @@ -66,6 +66,8 @@ enum device_event { DEV_EVENT_ADD, DEV_EVENT_REMOVE, + DEV_EVENT_UPDATE_IFNAME, + DEV_EVENT_SETUP, DEV_EVENT_TEARDOWN, DEV_EVENT_UP, @@ -83,6 +85,7 @@ struct device_user { bool claimed; bool hotplug; + bool alias; struct device *dev; void (*cb)(struct device_user *, enum device_event); @@ -104,6 +107,7 @@ struct device { struct avl_node avl; struct list_head users; + struct list_head aliases; char ifname[IFNAMSIZ + 1]; int ifindex; @@ -113,9 +117,11 @@ struct device { bool sys_present; bool present; int active; + bool external; bool disabled; bool deferred; + bool hidden; bool current_config; bool default_config; @@ -163,6 +169,7 @@ void device_cleanup(struct device *iface); 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_broadcast_event(struct device *dev, enum device_event ev); void device_set_present(struct device *dev, bool state); void device_refresh_present(struct device *dev); @@ -176,6 +183,7 @@ 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); +struct device *device_alias_get(const char *name); static inline void device_set_deferred(struct device *dev, bool value)