-static int
-alias_device_set_state(struct device *dev, bool state)
-{
- struct alias_device *alias;
-
- alias = container_of(dev, struct alias_device, dev);
- if (!alias->dep.dev)
- return -1;
-
- if (state)
- return device_claim(&alias->dep);
-
- device_release(&alias->dep);
- if (alias->cleanup)
- device_remove_user(&alias->dep);
- return 0;
-}
-
-static struct device *
-alias_device_create(const char *name, struct blob_attr *attr)
-{
- struct alias_device *alias;
-
- alias = calloc(1, sizeof(*alias) + strlen(name) + 1);
- strcpy(alias->name, name);
- alias->dev.set_state = alias_device_set_state;
- device_init_virtual(&alias->dev, &alias_device_type, NULL);
- alias->avl.key = alias->name;
- avl_insert(&aliases, &alias->avl);
-
- return &alias->dev;
-}
-
-static void alias_device_free(struct device *dev)
-{
- struct alias_device *alias;
-
- device_cleanup(dev);
-
- alias = container_of(dev, struct alias_device, dev);
- avl_delete(&aliases, &alias->avl);
- free(alias);
-}
-
-static const struct device_type alias_device_type = {
- .name = "Network alias",
- .create = alias_device_create,
- .free = alias_device_free,
-};
-