📄 chardrivers.c
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -