devfs
出现使得设备驱动程序能够自主的管理设备。
驱动程序应用下面的函数来进行设备文件的创建和撤销工作。
/*创建设备目录*/
devfs_handle_t devfs_mk_dir(devfs_handle_t dir,const char *name,void *info);
/*创建设备文件*/
dev_handle_t devfs_register(dev_handler_t dir,const char *name,unsigned int flags, unsigned int major,unsigned int \
int major,unsigned int minor,umode_t mode,void *ops,void *info);
/*撤销设备文件*/
void devfs_unregister(devfs_handle_t de);
devfs使用范例
static devfs_handler_t devfs_handler;
static int __init xxx_init(void)
{
int ret;
int i;
/*在内核中注册设备*/
ret = register_handler_chrdev(XXX_MAJOR,DEVICE_NAME,&xxx_fops);
if(ret < 0)
{
printk(DEVICE_NAME"can't register ");
return ret;
}
devfs_handler = devfs_register(NULL,DEVICE_NAME,DEVFS_FL_DEFAULT,XXX_MAJOR,0,S_IFCHR | S_IRUSR | S_IWUSR | ,&xxx_fops,NULL);
printk(DEVICE_NAME"initialized\n");
return 0;
}
static void __exit xxx_exit(void)
{
devfs_unregister(devfs_handler); /*撤销设备文件*/
unregister_chrdev(XXX_MAJOR,DEVICE_NAME); /*注销设备*/
}
module_init(xxx_init);
module_exit(xxx_exit);
先自学到这里,晚安
出现使得设备驱动程序能够自主的管理设备。
驱动程序应用下面的函数来进行设备文件的创建和撤销工作。
/*创建设备目录*/
devfs_handle_t devfs_mk_dir(devfs_handle_t dir,const char *name,void *info);
/*创建设备文件*/
dev_handle_t devfs_register(dev_handler_t dir,const char *name,unsigned int flags, unsigned int major,unsigned int \
int major,unsigned int minor,umode_t mode,void *ops,void *info);
/*撤销设备文件*/
void devfs_unregister(devfs_handle_t de);
devfs使用范例
static devfs_handler_t devfs_handler;
static int __init xxx_init(void)
{
int ret;
int i;
/*在内核中注册设备*/
ret = register_handler_chrdev(XXX_MAJOR,DEVICE_NAME,&xxx_fops);
if(ret < 0)
{
printk(DEVICE_NAME"can't register ");
return ret;
}
devfs_handler = devfs_register(NULL,DEVICE_NAME,DEVFS_FL_DEFAULT,XXX_MAJOR,0,S_IFCHR | S_IRUSR | S_IWUSR | ,&xxx_fops,NULL);
printk(DEVICE_NAME"initialized\n");
return 0;
}
static void __exit xxx_exit(void)
{
devfs_unregister(devfs_handler); /*撤销设备文件*/
unregister_chrdev(XXX_MAJOR,DEVICE_NAME); /*注销设备*/
}
module_init(xxx_init);
module_exit(xxx_exit);
先自学到这里,晚安