first_drv.c
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/fs.h>
#include <linux/init.h>
#include <linux/delay.h>
#include <asm/uaccess.h>
#include <asm/irq.h>
#include <asm/io.h>
#include <linux/device.h>
int major = 231; //主设备号
static struct class *firstdrv_class;
static struct class_device *firstdrv_class_dev;
/* open函数 */
static int first_drv_open(struct inode *inode,struct file *file)
{
printk("first_drv_open\n");
return 0;
}
/* write函数 */
static ssize_t first_drv_write(struct file *file,const char __user *buf,size_t count,loff_t *ppos)
{
printk("first_drv_write\n");
return 0;
}
/* 结构体 */
static struct file_operations first_drv_fops={
.owner = THIS_MODULE,/* 这是一个宏,推向编译模块时自动创建到__this_module变量 */
.open = first_drv_open,
.write = first_drv_write,
};
/* 入口函数 */
int first_drv_init(void)