}
static struct device *
-simple_device_create(const char *name, struct blob_attr *attr)
+simple_device_create(const char *name, struct device_type *devtype,
+ struct blob_attr *attr)
{
struct blob_attr *tb[__DEV_ATTR_MAX];
struct device *dev = NULL;
+ /* device type is unused for simple devices */
+ devtype = NULL;
+
blobmsg_parse(dev_attrs, __DEV_ATTR_MAX, tb, blob_data(attr), blob_len(attr));
dev = device_get(name, true);
if (!dev)
free(dev);
}
-const struct device_type simple_device_type = {
+struct device_type simple_device_type = {
.name = "Network device",
.config_params = &device_attr_list,
return dev->type->check_state(dev);
}
-void device_init_virtual(struct device *dev, const struct device_type *type, const char *name)
+void device_init_virtual(struct device *dev, struct device_type *type, const char *name)
{
assert(dev);
assert(type);
dev->set_state = set_device_state;
}
-int device_init(struct device *dev, const struct device_type *type, const char *ifname)
+int device_init(struct device *dev, struct device_type *type, const char *ifname)
{
int ret;
}
static enum dev_change_type
-device_set_config(struct device *dev, const struct device_type *type,
+device_set_config(struct device *dev, struct device_type *type,
struct blob_attr *attr)
{
struct blob_attr *tb[__DEV_ATTR_MAX];
}
enum dev_change_type
-device_apply_config(struct device *dev, const struct device_type *type,
+device_apply_config(struct device *dev, struct device_type *type,
struct blob_attr *config)
{
enum dev_change_type change;
}
struct device *
-device_create(const char *name, const struct device_type *type,
+device_create(const char *name, struct device_type *type,
struct blob_attr *config)
{
struct device *odev = NULL, *dev;
if (!config)
return NULL;
- dev = type->create(name, config);
+ dev = type->create(name, type, config);
if (!dev)
return NULL;