曲径通幽论坛
标题:
register_chrdev & unregister_chrdev
[打印本页]
作者:
beyes
时间:
2009-8-27 16:17
标题:
register_chrdev & unregister_chrdev
register_chrdev()
--老版本字符设备注册函数
功能
:注册设备
原型
:
#include <linux.fs.h>
int
register_chardev
(
unsigned
int
major
,
const
char
*
name
,
struct
file_operations
*
fops
)
说明
:register_chrdev 是注册设备驱动程序的内核函数。
变量:
major 主设备号,该值为 0 时,自动运行分配。而实际值不是 0 。
name 设备名称;
fops file_operations 结构体变量地址(指针)。
返回值
:
major 值为 0 ,正常注册后,返回分配的主设备号。如果分配失败,返回 EBUSY 的负值 ( -EBUSY ) 。major 值若大于 linux/major.h (2.4内核)中声明的最大值 (#define MAX_CHRDEV 255) ,则返回EINVAL 的负值 (-EINVAL) 。指定 major 值后,若有注册的设备,返回 EBUSY 的负值 (-EBUSY)。若正常注册,则返回 0 值。
unregister_chrdev()
-- 老版本字符设备注销函数
功能:注销设备
原型
:
#include <linux.fs.h>
int
unregister_chrdev
(
unsigned
int
major
,
const
char
*
name
)
说明:
注销设备驱动程序的内核函数
变量:
major 主设备号
name 设备文件
返回值: major 值若大于 linux/major.h (2.4 内核)中声明的最大值 (#define MAX_CHRDEV 255),返回 EINVAL的负值 (-EINVAL)。指定了 major的值后,若将要注销的 major 值并不是注册的设备驱动程序,返回 EINVAL的负值 ( -EINVAL )。正常注销则返回 0值。
欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/)
Powered by Discuz! X3.2