您的位置:首页 > 运维架构 > Linux

Linux Kernel设备驱动模型之子系统注册

2017-03-25 13:56 330 查看
 static int subsys_register(struct bus_type *subsys,
      const struct attribute_group **groups,
      struct kobject *parent_of_root)
{
 struct device *dev;
 int err;

 err = bus_register(subsys);
 if (err < 0)
  return err;
 dev = kzalloc(sizeof(struct device), GFP_KERNEL);
 if (!dev) {
  err = -ENOMEM;
  goto err_dev;
 }
 err = dev_set_name(dev, "%s", subsys->name);
 if (err < 0)
  goto err_name;
 dev->kobj.parent = parent_of_root;
 dev->groups = groups;
 dev->release = system_root_device_release;
 err = device_register(dev);
 if (err < 0)
  goto err_dev_reg;
 subsys->dev_root = dev;
 return 0;
err_dev_reg:
 put_device(dev);
 dev = NULL;
err_name:
 kfree(dev);
err_dev:
 bus_unregister(subsys);
 return err;
}

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: