⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 yafs.h

📁 简单模拟了操作系统文件系统的操作
💻 H
字号:
/*! * \file *\brief 磁盘中的各类数据结构的定义 */#ifndef _YAFS_H#define _YAFS_Htypedef unsigned char __u8;typedef unsigned short __u16;typedef unsigned int __u32;typedef unsigned long long __u64;#define YAFS_N_BLOCKS 15				//!<定义文件数据块指针的长度#define YAFS_NAME_LEN 116				//!<定义文件名的长度/*! * \brief 超级块 * * 超级块结构,用于描述磁盘的基本信息 */struct super_block{  __u32 inodes_count;		//!<索引结点数量  __u32 blocks_count;		//!<块数量  __u32 free_inodes_count;	//!<空闲的索引结点数量  __u32 free_blocks_count;	//!<空闲的块数量  __u32 log_blocks_size;	//!<块的大小  __u32 blocks_per_group;	//!<每一个块组的块的数量  __u32 inodes_per_group;	//!<每一个块组的索引结点的数量  char fill[996];		    //!<将超级块填充至1024字节,没有实际作用};/*! * \brief 块组描述符 * * 块组描述符结构,用于描述块组中的块和索引结点的信息 */struct group_desc{  __u32 block_bitmap;			//!<块“位图”所在的块号  __u32 inode_bitmap;			//!<结点“位图”所在的块号  __u32 inode_table;			//!<索引结点表所在的块号  __u32 free_blocks_count;		//!<空闲的块的数量  __u32 free_inodes_count;		//!<空闲的索引结点的数量};/*! * \brief 索引结点 * * 索引结点结构,用于描述索引结点指向的文件的信息 */struct inode{  __u32 i_size;				//!<文件的大小  __u32 i_atime;			//!<文件最近一次被访问的时间  __u32 i_ctime;			//!<文件被创建的时间  __u32 i_mtime;			//!<文件被修改的时间  __u32 i_dtime;			//!<文件被删除的时间  __u32 i_blocks;			//!<文件数据所占用的块的数量  __u32 i_block[YAFS_N_BLOCKS];		//!<文件数据所在块的块号};/*! * \brief 目录项 * * 目录项结构,用于目录下的项目的信息 */struct dir_entry{  __u32 inode;				//!<目录项的索引结点号  __u32 rec_len;			//!<目录项到下一个目录项的长度  __u32 file_type;			//!<目录项的类型(0表示未知类型,1表示普通文件,2表示文件夹)  char name[YAFS_NAME_LEN];		//!<目录项的名称};#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -