diff options
author | Felix Fietkau <nbd@openwrt.org> | 2011-04-05 03:48:59 +0200 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2011-04-05 03:48:59 +0200 |
commit | b18fb36bd3c7615733c351c99691e1139f386c0c (patch) | |
tree | bb6d8d5c1015379fcf9864c3bda5d7b0c9d4ac2b | |
parent | 6443a383c54dee0cd3b9858801e0b765147a4ef4 (diff) |
add a helper function for freeing a device
-rw-r--r-- | device.c | 6 | ||||
-rw-r--r-- | device.h | 6 |
2 files changed, 9 insertions, 3 deletions
@@ -20,7 +20,7 @@ static void API_CTOR dev_init(void) avl_init(&devices, avl_strcmp, false, NULL); } -static void free_device(struct device *dev) +static void free_simple_device(struct device *dev) { cleanup_device(dev); free(dev); @@ -126,7 +126,7 @@ struct device *get_device(const char *name, bool create) static const struct device_type simple_type = { .name = "Device", .check_state = system_if_check, - .free = free_device, + .free = free_simple_device, }; struct device *dev; @@ -192,7 +192,7 @@ void remove_device_user(struct device_user *dep) if (list_empty(&dev->users)) { /* all references have gone away, remove this device */ - dev->type->free(dev); + free_device(dev); } dep->dev = NULL; @@ -82,6 +82,12 @@ struct device_hotplug_ops { int (*del)(struct device *main, struct device *member); }; +static inline void +free_device(struct device *dev) +{ + dev->type->free(dev); +} + void init_virtual_device(struct device *dev, const struct device_type *type, const char *name); int init_device(struct device *iface, const struct device_type *type, const char *ifname); void cleanup_device(struct device *iface); |