Virtualmen字符设备驱动代码-----虚拟磁盘设备

驱动程序:Virtualmen.c

 

#include <linux/init.h>
#include <linux/module.h>
#include <linux/types.h>
#include <linux/fs.h>
#include <linux/errno.h>
#include <linux/cdev.h>
#include <linux/mm.h>
#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/device.h>
#include <asm/uaccess.h>

#define MEM_CLEAR 0x1        /*全局内存清零指令*/
#define VIRTUALMEM_SIZE 0x1000 /*全局内存最大4k字节*/
#define VIRTUALMEM_MAJOR 0 /*预设的Virtualmen的主设备号*/
typedef u_long dev_t;
dev_t devno;
struct class *my_class = NULL;
static int  Virtualmen_major = VIRTUALMEM_MAJOR ;
/*Virtualmen 设备结构体*/
struct Virtualmen_dev
{
	struct cdev cdev;/*cdev 结构体*/
	unsigned char men[];/*全局内存*/
};
struct Virtualmen_dev *Virtualmen_devp;/*设备结构体指针*/

/********************************************************
*名称:Virtualmen_open()
*功能:设备文件打开函数,对应用户空间open系统调用;
*********************************************************/

static int Virtualmen_open(struct inode *inode,struct file *filp)
{
	struct Virtualmen_dev *dev;
	/*通过inode的i_cdev结构得到定义的Virtualmen_dev指针*/
	dev = container_of(inode->i_cdev,struct Virtualmen_dev,cdev);
	filp->private_data = dev;/*将Virtualmen_dev指针保存到file结构中的private_date中*/
	return 0;
}

/**********************************************************
*名称:Virtualmen_release()
*功能:设备文件释放函数,对应用户空间close系统调用;
***********************************************************/
static int Virtualmen_release(struct inode *inode,struct fil
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值