#include <linux/module.h>
#include <linux/init.h>
#include <linux/fs.h>
#include <asm/uaccess.h>
#include <linux/moduleparam.h>
static int __init mydriver_init(void);//设备初始化函数
static void __exit mydriver_exit(void);//设备注销函数
static int mydriver_open(struct inode *, struct file *);//打开设备函数
static int mydriver_release(struct inode *, struct file *);//释放设备函数
static ssize_t mydriver_read(struct file* ,char* ,size_t ,loff_t* );//读设备函数
static ssize_t mydriver_write(struct file *, const char *, size_t, loff_t *);//写设备函数
#define DEVICE_NAME "mydriver"//定义设备名称
static int Major;//定义设备主设备号
/*定义对设备所进行的操作*/
static struct file_operations mydriver_fops = {
.read = mydriver_read,//读操作
.write = mydriver_write,//写操作
.open = mydriver_open,//打开操作
.release = mydriver_release,//释放操作
};
/* 设备初始化函数的实现*/
static int __init mydriver_init(void)
{
Major = register_chrdev(250, DEVICE_NAME, &mydriver_fops);//注册设备
if (Major < 0) {//注册失败
printk ("Registering the character device failed with %d\n", Major);
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余2页未读,立即下载