菜鸟问题:隐式声明函数 copy_to_user。大家帮忙啊

21lyw 21lyw 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
#include <linux/module.h>
#include <linux/init.h>
#include <linux/fs.h> /* everything... */

#define DEVICE_NAME "demo"
#define demo_MAJOR 249
#define demo_MINOR 0
#define MAX_BUF_LEN 20
static char drv_buf[20];


static int demo_open(struct inode *inode, struct file *file) {
//MOD_INC_USE_COUNT;
sprintf(drv_buf,"device open sucess!\n");
printk("device open sucess!\n");
return 0;
}
static int demo_release(struct inode *inode, struct file *filp) {
//MOD_DEC_USE_COUNT;
printk("device release\n");
return 0;
}


static ssize_t demo_read(struct file *filp, char *buffer, size_t count, loff_t *ppos) {
if(count > MAX_BUF_LEN)
count=MAX_BUF_LEN;
copy_to_user(buffer, drv_buf,count);
printk("user read data from driver\n");
return count;
}
static ssize_t demo_write(struct file *filp,const char *buffer, size_t count) {
copy_from_user(drv_buf , buffer, count);
printk("user write data to driver\n");
//your code here
return count;
}
static struct file_operations demo_fops = {
write: demo_write,
read: demo_read,
open: demo_open,
release: demo_release,
};

static int __init demo_init(void) {
int result;
SET_MODULE_OWNER(&demo_fops);
result = register_chrdev(demo_MAJOR, "demo", &demo_fops);
if (result < 0) return result;
printk(DEVICE_NAME " initialized\n");
return 0;
}
static void __exit demo_exit(void) {
unregister_chrdev(demo_MAJOR, "demo");
printk(DEVICE_NAME " unloaded\n");
}
module_init(demo_init);
module_exit(demo_exit);


makefile

obj-m := demo.o
#KERNEL_DIR :=/lib/modules/$(shell uname -r)/build
KERNEL_DIR :=/lib/modules/2.6.18-1.2798.fc6/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KERNEL_DIR) M=$(PWD) modules
...全文

相关推荐

评论 6
收藏 已收藏
分享
返回顶部
21lyw
驱动开发/核心开发 21,620 成员 21,709 内容