linux块设备驱动与其测试

本文详细介绍了Linux块设备驱动的实现过程,包括驱动程序的头文件、数据结构和核心函数。同时,文章提供了从编译安装驱动到格式化、挂载设备的测试步骤,帮助读者理解如何在Linux系统中操作自定义块设备。
摘要由CSDN通过智能技术生成
1 驱动程序

#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/init.h>
#include <linux/sched.h>
#include <linux/kernel.h>	/* printk() */
#include <linux/slab.h>		/* kmalloc() */
#include <linux/fs.h>		/* everything... */
#include <linux/errno.h>	/* error codes */
#include <linux/timer.h>
#include <linux/types.h>	/* size_t */
#include <linux/fcntl.h>	/* O_ACCMODE */
#include <linux/hdreg.h>	/* HDIO_GETGEO */
#include <linux/kdev_t.h>
#include <linux/vmalloc.h>
#include <linux/genhd.h>
#include <linux/blkdev.h>
#include <linux/buffer_head.h>	/* invalidate_bdev */
#include <linux/bio.h>


//块设备文件主设备号  72
#define BLOCK_DEVICEMAJOR        COMPAQ_SMART2_MAJOR
// 块设备名字
#define BLOCK_DISKNAME           "queue_block" 
//块设备容量
#define BLOCK_DEV_BYTES        (1*1024*1024)   // 1M
//请求队列指针
static struct request_queue *block_request_queue;
// gendisk结构体指针变量
static struct gendisk *block_dev_disk;
//模拟磁盘空间
unsigned char block_dev_data[BLOCK_DEV_BYTES];

//该函数不能由驱动自己调用   由系统调用   系统认为是时候调用的时候调用
static void block_dev_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值