Chinaunix首页 | 论坛 | 博客
  • 博客访问: 682884
  • 博文数量: 516
  • 博客积分: 4119
  • 博客等级: 上校
  • 技术积分: 4288
  • 用 户 组: 普通用户
  • 注册时间: 2012-10-30 17:29
文章分类

全部博文(516)

文章存档

2014年(4)

2013年(160)

2012年(352)

分类: LINUX

2012-11-12 13:54:04

 
 

1,在2.6系统中,处理器与设备之间的通道叫总线,可以是实实在在存在的总线,也可以是虚拟的总线,比如平

台总线platform。总线的所在位置/sys/bus目录下

2,总线描述

struct bus_type{

const char *name;//总线名字

struct bus_attribute *bus_attrs;//总线属性

struct device_attribute *dev_attrs;//设备属性

struct driver_attribute *drv_attrs;//驱动属性

.......

}


3,总线注册/删除

bus_register(struct bus_type *bus) /先把结构实现了,在调用注册函数去往系统里注册

bus_unregister(struct bus_type *bus)

4,总线方法

int (*match)(struct device * dev,struct device_driver *drv)

当一个新设备或者驱动被添加到这个总线时,该方法被调用。用于判断指定的驱动程序是否能处理指定的设备。若可以,则返回非零值、设备有个名字,驱动一个名字,两者一样,可以处理

int dev(*uenvent)(struc device *dev,char *envp,int num_envp,char *buffer,int buffer_size)热插拔的时候调用

5,总线属性

总线属性由bus_atteibute描述,定义如下

struct bus_attribute{

struct attribute attr; //对应文件

ssize_t(*show)(struct bus_type *,char * buf); //读

ssize_t(*store)(struct bus_type *,const * buf,size_t count); //写
}

创建属性

int bus_create_file(struct bus_type *bus,struct bus_attribut *attr)

删除属性

int bus_remove_file(struct bus_type *bus,struct bus_attribut *attr)

阅读(348) | 评论(0) | 转发(0) |
0

上一篇:零碎知识

下一篇:设备学习心得

给主人留下些什么吧!~~