首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

Linux装置模型分析之bus(基于3.10.1内核)

2013-11-02 
Linux设备模型分析之bus(基于3.10.1内核)作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz内核版本:3.10

Linux设备模型分析之bus(基于3.10.1内核)

作者:刘昊昱 

博客:http://blog.csdn.net/liuhaoyutz

内核版本:3.10.1

 
一、bus定义
Linux设备驱动模型中的bus,即可以是物理总线(如PCI、I2C总线)的抽象,也可以是出于设备驱动模型架构需要而定义的虚拟的“platform”总线。一个符合Linux设备驱动模型的device或device_driver必须挂靠在一个bus上,无论这个bus是物理的还是虚拟的。
Linux内核使用bus_type结构体来描述bus,该结构体定义在include/linux/device.h文件中,其内容如下:
 838/** 839 * bus_add_attrs - Add default attributes for this bus. 840 * @bus: Bus that has just been registered. 841 */ 842 843static int bus_add_attrs(struct bus_type *bus) 844{ 845    int error = 0; 846    int i; 847 848    if (bus->bus_attrs) { 849        for (i = 0; attr_name(bus->bus_attrs[i]); i++) { 850            error = bus_create_file(bus, &bus->bus_attrs[i]); 851            if (error) 852                goto err; 853        } 854    } 855done: 856    return error; 857err: 858    while (--i >= 0) 859        bus_remove_file(bus, &bus->bus_attrs[i]); 860    goto done; 861}


如果指定了bus的默认属性,即bus->bus_attrs不为NULL,则创建对应的属性文件。
至此,bus_register函数我们就分析完了。

热点排行