Linux Kernel设备驱动模型之总线添加设备

设备驱动之总线添加设备:

/**  * bus_add_device - add device to bus  * @dev: device being added  *  * - Add device's bus attributes.  * - Create links to device's bus.  * - Add the device to its bus's list of devices.  */ int bus_add_device(struct device *dev) {  struct bus_type *bus = bus_get(dev->bus);  int error = 0;

 if (bus) {   pr_debug("bus: '%s': add device %s\n", bus->name, dev_name(dev));   error = device_add_attrs(bus, dev);   if (error)    goto out_put;   error = device_add_groups(dev, bus->dev_groups);   if (error)    goto out_id;   error = sysfs_create_link(&bus->p->devices_kset->kobj,       &dev->kobj, dev_name(dev));   if (error)    goto out_groups;   error = sysfs_create_link(&dev->kobj,     &dev->bus->p->subsys.kobj, "subsystem");   if (error)    goto out_subsys;   klist_add_tail(&dev->p->knode_bus, &bus->p->klist_devices);  }  return 0;

out_subsys:  sysfs_remove_link(&bus->p->devices_kset->kobj, dev_name(dev)); out_groups:  device_remove_groups(dev, bus->dev_groups); out_id:  device_remove_attrs(bus, dev); out_put:  bus_put(dev->bus);  return error; }

 
 
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值