本文基于mtk5507平台,内核版本Linux3.10。

一、先看下之前版本在/proc/下创建文件并提供ops

	proc_dir = proc_mkdir(MOTION_PROC_DIR, NULL);
	if (!proc_dir) {
		err = -ENOMEM;
		goto no_proc_dir;
	}
	proc_file = create_proc_entry(MOTION_PROC_FILE, 0666, proc_dir);
	if (!proc_file) {
		err = -ENOMEM;
		goto no_proc_file;
	}
	proc_file->proc_fops = &event_fops;
二、看看Linux3.10版本相同操作
        proc_dir = proc_mkdir(MOTION_PROC_DIR, NULL);
        if (!proc_dir) {
                err = -ENOMEM;
                goto no_proc_dir;
        }
        //modify by tan for linux3.10
        //proc_file = create_proc_entry(MOTION_PROC_FILE, 0666, proc_dir);
        proc_file = proc_create(MOTION_PROC_FILE, 0666, proc_dir,&event_fops);
        //end tank
        if (!proc_file) {
                err = -ENOMEM;
                goto no_proc_file;
        }
        //proc_file->proc_fops = &event_fops;  //modify by tank for linux3.10

三、注意问题

当在64bit的CPU环境下使用copy_from_user时用户空间程序必须通过64bit编译;不然拷贝会有问题。


Logo

更多推荐