码迷,mamicode.com
首页 > 其他好文 > 详细

第二天

时间:2016-11-25 00:35:08      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:struct   第一个   判断   个数   添加   生成   结构体   创建   参数   

一 动态注册设备号

int alloc_chrdev_region(dev_t *dev, unsigned baseminor, unsigned count,const char *name)
参数:
@dev 获得动态设备号
@baseminor 第一个次设备号
@count 此设备号的个数
@name 名字,可以在/proc/devices文件看到
返回值:
成功返回0,失败返回负的错误码

二、通过主设备号和次设备号生成设备号
宏:MKDEV(major,minor)

三、通过设备号获得主设备号或次设备号

获得主设备号宏:MAJOR(dev_num)
获得次设备号宏:MINOR(dev_num)


四 如何添加驱动的时候,自动生成设备节点

1.创建类(在/sys/class目录下创建一个子目录)

struct class *class_create(struct module *owner, char *name)
参数 :
@owner THIS_MODULE
@name 子目录的名字
放回值:
成功返回有效指针,失败返回负的错误码


2.在sysfs文件中注册设备(导出一些参数:主设备号和次设备号)
struct device *device_create(struct class *class, struct device *parent,
dev_t devt, void *drvdata, const char *fmt, ...)
参数:
@class 类结构体首地址
@parent NULL
@devt 设备号
@drvdata NULL
@fmt 格式化串 "mycdev" 或 "mycdev%d",1
成功返回有效指针,失败返回负的错误码

3.如何判断是有效指针还是负的错误码

宏 :IS_ERR(指针)
返回值:
指针是负的错误码,返回真,否则返回假

宏 :PRT_ERR(指针)
返回值:
负的错误码

 

第二天

标签:struct   第一个   判断   个数   添加   生成   结构体   创建   参数   

原文地址:http://www.cnblogs.com/gaoningbo/p/6100002.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!