chardrivers.c
来自「2.6内核做简单的字符驱动的例子」· C语言 代码 · 共 53 行
C
53 行
#include "CharDrivers.h"
unsigned int test_major=0;
MODULE_LICENSE("Dual BSD/GPL");
static ssize_t read_test(struct file *file,char *buf,size_t count,loff_t *ppos)
{
if(copy_to_user(buf,&test_major,sizeof(int)))
{
return -EFAULT;
}
return sizeof(int);
}
static ssize_t write_test(struct file *file,const char *buf,size_t count,loff_t *ppos)
{
if(copy_from_user(&test_major,buf,sizeof(int)))
{
return -EFAULT;
}
return sizeof(int);
}
static int open_test(struct inode* inode,struct file* file)
{
// MOD_INC_USE_COUNT;
return 0;
}
static int release_test(struct inode* inode,struct file* file)
{
// MOD_DEC_USE_COUNT;
return 0;
}
int __init init_module(void)
{
int result;
result=register_chrdev(0,"mytest",&test_fops);
if(result<0)
{
printk(KERN_INFO "failure\n");
return result;
}
if(test_major==0)
{
test_major=result;
}
return 0;
}
void __exit cleanup_module(void)
{
unregister_chrdev(test_major,"mytest");
}
MODULE_AUTHOR("Limei Feng");
MODULE_LICENSE("Dual BSD/GPL");
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?