📄 filsys.h
字号:
#define FileMaxBlock 50
#define BlockSize 1024
#define IBlockNum 400
#define DBlockNum 600
#define NHINO 128
typedef struct TBMap {
unsigned short usemap[49];
unsigned int BAddr[49];
unsigned short FBNum;
} BMap;
typedef struct TINode {
struct TINode* iForw;
struct TINode* iBack;
unsigned int i_ino;
unsigned short flag;
unsigned int Icount; // 引用计数
unsigned short di_number;
char type; //
unsigned int Dino; // 磁盘 I 节点号
unsigned short mode; // 存取权限
unsigned int size; // 文件大小
unsigned int addr[FileMaxBlock]; // 物理块号
} INode;
typedef struct TDInode {
unsigned short di_number;
char type; //
unsigned int no; // I 节点号
unsigned short mode; // 存取权限
unsigned int size; // 文件大小
unsigned int addr[FileMaxBlock]; // 物理块号
} DInode;
struct hinode {
INode *iForw;
};
typedef struct TFile {
unsigned int Dino; // 对应的 inode
char name[24]; // 文件名
} File;
struct SysOFile {
char f_flag;
unsigned int f_count;
INode* f_inode;
unsigned long f_off;
int uid;
};
typedef struct TDirect {
int size;
File files[36];
} Direct;
typedef struct TUser {
char usn[9]; // 用户名
char pwd[9]; // 用户密码
unsigned int Dino; // 用户目录节点
} User;
typedef struct TMUser {
User user;
unsigned int CurDirInodeID;
int OFileNum;
int OFiles[10];
} MUser;
typedef struct TSuperBlock {
unsigned int IBNum; // i节点块块数
unsigned int DBNum; // 数据块块数
unsigned int FBNum; // 空闲块数
unsigned int FBS[100]; // 空闲块堆栈
unsigned short pFB; // 空闲块指针
unsigned int FINum; // 空闲 i结点数
unsigned int FIS[100]; // 空闲 i结点栈
unsigned short pFI; // 空闲 i结点指针
char SysMod; // 超级块修改标识
} SuperBlock;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -