+/* events broadcasted to all users of a device */
+enum device_event {
+ DEV_EVENT_ADD,
+ DEV_EVENT_REMOVE,
+
+ DEV_EVENT_SETUP,
+ DEV_EVENT_TEARDOWN,
+ DEV_EVENT_UP,
+ DEV_EVENT_DOWN,
+
+ DEV_EVENT_LINK_UP,
+ DEV_EVENT_LINK_DOWN,
+};
+
+/*
+ * device dependency with callbacks
+ */
+struct device_user {
+ struct list_head list;
+
+ bool claimed;
+ bool hotplug;
+
+ struct device *dev;
+ void (*cb)(struct device_user *, enum device_event);
+};
+
+struct device_settings {
+ unsigned int flags;
+ unsigned int mtu;
+ unsigned int txqueuelen;
+ uint8_t macaddr[6];
+};
+