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

📄 structure.h

📁 Linux 的最重要的特徵之一是它的为许多不同的文件系统的支持。这使其非常灵活从而与许多另外的操作系统可以很好的共存。linux采用的是树型结构。最上层是根目录
💻 H
字号:
#ifndef _STRUCTURE_H 
#define _STRUCTURE_H


#define MAX 32767
#define BLOCKSIZ 512
#define SYSOPENFILE 40
#define DIRNUM 128
#define DIRSIZ 14
#define PWDSIZ 12
#define PWDNUM 32
#define NOFILE 20
#define NADDR 10
#define NHINO 128
#define USERNUM 10
#define DINODESIZ 72

#define DINODEBLK 32
#define FILEBLK 512
#define NICFREE 50
#define NICINOD 50
#define DINODESTART 1024 
#define DATASTART (2+DINODEBLK)*BLOCKSIZ

#define DIEMPTY		00000
#define DIFILE		01000
#define DIDIR		02000

#define UDIREAD		00001
#define UDIWRITE	00002
#define UDIEXICUTE	00004
#define GDIREAD		00010
#define GDIWRITE	00020
#define GDIEXICUTE	00040
#define ODIREAD		00100
#define	ODIWRITE	00200
#define ODIEXICUTE	00400

#define READ	1
#define WRITE	2
#define	EXICUTE	3

#define DEFAULTMODE 00777

#define IUPDATE	00002
#define	SUPDATE	00001

#define FREAD	00001
#define FWRITE  00002
#define FAPPEND 00004

#define DISKFULL 65535

#define SEEK_SET 0


struct inode
{
	struct inode *i_forw;
	struct inode *i_back;
	char i_flag;
	unsigned int i_ino;
	unsigned int i_count;
	unsigned int di_addr[NADDR];
	unsigned short di_number;
	unsigned short di_mode;
	unsigned short di_uid;
	unsigned short di_gid;
	unsigned short di_size;
};

struct dinode
{
 	unsigned short di_number;
	unsigned short di_mode;
	unsigned short di_uid;
	unsigned short di_gid;
	unsigned long di_size;
	unsigned int di_addr[NADDR];
};
struct direct
{
	char d_name[DIRSIZ];
	unsigned int d_ino;
};

struct filsys
{
	unsigned short s_isize;
	unsigned long s_fsize;
	
	unsigned int s_nfree;
	unsigned short s_pfree;
	unsigned int s_free[NICFREE];

	unsigned int s_ninode;
	unsigned short s_pinode;
	unsigned int s_inode[NICINOD];
	unsigned int s_rinode;

	char s_fmod;
};

struct pwd
{
	unsigned short p_uid;
	unsigned short p_gid;
	char password[PWDSIZ];
};

struct dir
{
	struct direct direct[DIRNUM];
	int size;
};

struct hinode
{
	struct inode *i_forw;
};

struct file
{
	char f_flag;
	unsigned int f_count;
	struct inode *f_inode;
	unsigned long f_off;
};

struct user
{
	unsigned short u_default_mode;
	unsigned short u_uid;
	unsigned short u_gid;
	unsigned short u_ofile[NOFILE];
};

extern struct inode* aaa;
extern struct hinode hinode[NHINO];
extern struct dir dir;
extern struct file sys_ofile[SYSOPENFILE];
extern struct filsys filsys;
extern struct pwd pwd[PWDNUM];
extern struct user user[USERNUM];
extern struct inode *cur_path_inode;
extern FILE *fd;
extern int user_id;

extern struct inode *iget();
extern iput();
extern unsigned int balloc();
extern bfree();
extern struct inode *ialloc();
extern ifree();
extern int namei();
extern short iname();
extern unsigned int access();
extern _dir();
extern mkdir();
extern chdir();
extern unsigned short open();
extern create();
extern unsigned int read();
extern unsigned int write();
extern int login();
extern logout();
extern install();
extern format();
extern close();
extern halt();





#endif

⌨️ 快捷键说明

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