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

📄 tapefs.h

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 H
字号:
#define	g2byte(x)	(((x)[1]<<8) + (x)[0])		/* little-endian */#define	g3byte(x)	(((x)[2]<<16) + ((x)[1]<<8) + (x)[0])#define	g4byte(x)	(((x)[3]<<24) + ((x)[2]<<16) + ((x)[1]<<8) + (x)[0])/* big endian */#define	b4byte(x)	(((x)[0]<<24) + ((x)[1]<<16) + ((x)[2]<<8) + (x)[3])#define	b8byte(x)	(((vlong)b4byte(x)<<32) | (u32int)b4byte((x)+4))enum{	OPERM	= 0x3,		/* mask of all permission types in open mode */	Nram	= 512,	Maxbuf	= 8192,		/* max buffer size */};typedef struct Fid Fid;typedef struct Ram Ram;struct Fid{	short	busy;	short	open;	short	rclose;	int	fid;	Fid	*next;	char	*user;	Ram	*ram;};struct Ram{	char	busy;	char	open;	char	replete;	Ram	*parent;	/* parent directory */	Ram	*child;		/* first member of directory */	Ram	*next;		/* next member of file's directory */	Qid	qid;	long	perm;	char	*name;	ulong	atime;	ulong	mtime;	char	*user;	char	*group;	vlong addr;	void *data;	vlong	ndata;};enum{	Pexec =		1,	Pwrite = 	2,	Pread = 	4,	Pother = 	1,	Pgroup = 	8,	Powner =	64,};typedef struct idmap {	char	*name;	int	id;} Idmap;typedef struct fileinf {	char	*name;	vlong	addr;	void	*data;	vlong	size;	int	mode;	int	uid;	int	gid;	long	mdate;} Fileinf;extern	ulong	path;		/* incremented for each new file */extern	Ram	*ram;extern	char	*user;extern	Idmap	*uidmap;extern	Idmap	*gidmap;extern	int	replete;extern	int	blocksize;void	error(char*);void	*erealloc(void*, ulong);void	*emalloc(ulong);char	*estrdup(char*);void	populate(char *);void	dotrunc(Ram*);void	docreate(Ram*);char	*doread(Ram*, vlong, long);void	dowrite(Ram*, char*, long, long);int	dopermw(Ram*);Idmap	*getpass(char*);char	*mapid(Idmap*,int);Ram	*poppath(Fileinf fi, int new);Ram	*popfile(Ram *dir, Fileinf fi);void	popdir(Ram*);Ram	*lookup(Ram*, char*);

⌨️ 快捷键说明

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