Linux 内核设备驱动
设备模型跟踪所有对系统已知的驱动. 这个跟踪的主要原因是使驱动核心能匹配驱动和新 设备. 一旦驱动在系统中是已知的对象, 但是, 许多其他的事情变得有可能. 设备驱动可 输出和任何特定设备无关的信息和配置变量, 例如:
驱动由下列结构定义:
struct device_driver { char *name;
struct bus_type *bus; struct kobject kobj; struct list_head devices;
int (*probe)(struct device *dev); int (*remove)(struct device *dev);
void (*shutdown) (struct device *dev);
};
再一次, 几个结构成员被忽略( 全部内容见 <linux/device.h> ). 这里, name 是驱动的 名子( 它在 sysfs 中出现 ), bus 是这个驱动使用的总线类型, kobj 是必然的 kobject, devices 是当前绑定到这个驱动的所有设备的列表, probe 是一个函数被调用来查询一个 特定设备的存在(以及这个驱动是否可以使用它), remove 当设备从系统中去除时被调用, shutdown 在关闭时被调用来关闭设备.
使用 device_driver 结构的函数的形式, 现在应当看来是类似的(因此我们快速涵盖它 们). 注册函数是:
int driver_register(struct device_driver *drv); void driver_unregister(struct device_driver *drv);
通常的属性结构在:
struct driver_attribute { struct attribute attr;
ssize_t
(*show)(struct device_driver *drv, char *buf); ssize_t (*store)(struct
device_driver *drv, const char *buf, size_t count);
};
DRIVER_ATTR(name,
mode, show, store);
以及属性文件以通常的方法创建:
int
driver_create_file(struct device_driver *drv, struct driver_attribute *attr);
void driver_remove_file(struct device_driver *drv, struct driver_attribute
*attr);
bus_type 结构含有一个成员( drv_attrs ) 指向一套缺省属性, 对所有关联到这个总线 的驱动都创建.
最新文章
- JSON and Microsoft Technologies(翻译)
- Docker 介绍以及其相关术语、底层原理和技术
- 字符串分割函数 STRTOK &; STRTOK_R (转)
- xml之Schema架构
- 一个有意思的js实例,你会吗??[原创]
- 使用WebRTC实现电脑与手机通过浏览器进行视频通话
- JavaScript引用类型之Array数组的拼接方法-concat()和截取方法-slice()
- contact form
- react.JS基础
- c# API接收Base64转图片
- Scrapy中选择器的用法
- 你(可能)不知道的web api
- 数组中的逆序对(Java实现)
- Codeforces Round #355 (Div. 2) A. Vanya and Fence 水题
- 关于MySQL的几个命令之load
- Gradle中的SourceSet理解
- Windows Server、 Windows 区别
- input只读属性readonly和disabled的区别
- TQ2440系统介绍入门 、linux系统目录结构
- python函数式编程之返回函数、匿名函数、装饰器、偏函数学习
热门文章
- linux 下安装编译配置 QT
- cmakelists.txt中配置openg环境出现: undefined reference to symbol &#39;glLightfv&#39;
- 如何在“代码”视图中工作并充分利用 Dreamweaver 的编码功能。如 Emmet 缩写
- 【Mysql的那些事】数据库之ORM操作
- Libevent:3创建event_base
- JavaWeb登录、注销、退出、记住用户名和密码
- Save and Load from XML
- Python深入:Distutils发布Python模块
- HZOJ 回家
- @noi - 172@ 追捕大象