📄 yafs.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 + -