当前位置: 技术问答>linux和unix
PCI设备驱动程序在哪里注册file_operations
来源: 互联网 发布时间:2016-06-03
本文导语: 小弟要做一个PCI设备的驱动程序,在参考了LDD的PCI一章后,觉得我的设备就是一个字符设备,但是却发现《LDD》竟然没有说在哪里注册设备的file_operations数据结构,看了很多PCI声卡和显卡的源码,也没有看到有明确的...
小弟要做一个PCI设备的驱动程序,在参考了LDD的PCI一章后,觉得我的设备就是一个字符设备,但是却发现《LDD》竟然没有说在哪里注册设备的file_operations数据结构,看了很多PCI声卡和显卡的源码,也没有看到有明确的注册file_operations的操作,难道不需要吗?那应用程序如何操作这样的PCI设备呢?
|
static const struct file_operations misc_fops = {
.owner = THIS_MODULE,
.open = misc_open,
};
EXPORT_SYMBOL(misc_register);
EXPORT_SYMBOL(misc_deregister);
static int __init misc_init(void)
{
int err;
#ifdef CONFIG_PROC_FS
proc_create("misc", 0, NULL, &misc_proc_fops);
#endif
misc_class = class_create(THIS_MODULE, "misc");
err = PTR_ERR(misc_class);
if (IS_ERR(misc_class))
goto fail_remove;
err = -EIO;
if (register_chrdev(MISC_MAJOR,"misc",&misc_fops))
goto fail_printk;
return 0;
fail_printk:
printk("unable to get major %d for misc devicesn", MISC_MAJOR);
class_destroy(misc_class);
fail_remove:
remove_proc_entry("misc", NULL);
return err;
}
subsys_initcall(misc_init);
字符设备就用上面的 register_chrdev 注册那个 fops ...
|
http://forum.eaw.com.cn/thread/2034/1
http://www.91linux.com/html/article/program/20070605/2562.html
register_chrdev
http://www.91linux.com/html/article/program/20070605/2562.html
register_chrdev