📄 blkdev.h
字号:
/*
* UNIX Like (UL)文件系统块设备驱动层
* 介于文件系统与硬件驱动层之间的模块
*/
#pragma once
#include "UL_Buffer.h"
#define DEV_NAME_LEN 32
/* 从设备号中分离主副设备号 */
#define MAJOR(a) (((unsigned)(a))>>8)
#define MINOR(a) ((a)&0xff)
/* 块设备结构 */
struct blk_dev_struct
{
char name[DEV_NAME_LEN]; /* 设备名 */
void (*request_fn)(void); /* 每种块设备各自的读写请求处理函数 */
struct request *cur_request; /* 读写请求队列头 */
};
/* 块设备读写请求结构 */
struct request
{
int dev; // 使用的设备号(-1)。
int cmd; // 命令(READ 或WRITE)。
int errors; //操作时产生的错误次数。
unsigned long sector; // 起始扇区。(1 块=2 扇区)
unsigned long nr_sectors; // 读/写扇区数。
char *buffer; // 数据缓冲区。
struct buffer_head *bh; // 缓冲区头指针
struct request *next; // 指向下一请求项。
};
/* 块设备的数量 */
#define NR_BLK_DEV 6
/* 块设备 */
extern struct blk_dev_struct blk_dev[NR_BLK_DEV];
#define NR_REQUEST 32
/* 请求队列 */
extern struct request wr_request[NR_REQUEST];
#define CURRENT_REQUEST (blk_dev[MAJOR_NR].cur_request)
#define CURRENT_DEV (blk_dev[MAJOR_NR])
extern void blk_dev_init (void);
extern void ll_rw_block (int rw, struct buffer_head *bh);
extern void lock_buffer (struct buffer_head *bh);
extern void unlock_buffer (struct buffer_head *bh);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -