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

📄 dir.h

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 H
字号:
typedef	long	long	vlong;typedef	unsigned long long uvlong;typedef 	unsigned char uchar;typedef	unsigned short ushort;typedef 	unsigned int uint;typedef	unsigned long ulong;#define	GBIT8(p)	((p)[0])#define	GBIT16(p)	((p)[0]|((p)[1]<<8))#define	GBIT32(p)	((p)[0]|((p)[1]<<8)|((p)[2]<<16)|((p)[3]<<24))#define	GBIT64(p)	((vlong)((p)[0]|((p)[1]<<8)|((p)[2]<<16)|((p)[3]<<24)) |\				((vlong)((p)[4]|((p)[5]<<8)|((p)[6]<<16)|((p)[7]<<24)) << 32))#define	PBIT8(p,v)	(p)[0]=(v)#define	PBIT16(p,v)	(p)[0]=(v);(p)[1]=(v)>>8#define	PBIT32(p,v)	(p)[0]=(v);(p)[1]=(v)>>8;(p)[2]=(v)>>16;(p)[3]=(v)>>24#define	PBIT64(p,v)	(p)[0]=(v);(p)[1]=(v)>>8;(p)[2]=(v)>>16;(p)[3]=(v)>>24;\			(p)[4]=(v)>>32;(p)[5]=(v)>>40;(p)[6]=(v)>>48;(p)[7]=(v)>>56#define	BIT8SZ		1#define	BIT16SZ		2#define	BIT32SZ		4#define	BIT64SZ		8#define	QIDSZ	(BIT8SZ+BIT32SZ+BIT64SZ)/* STATFIXLEN includes leading 16-bit count *//* The count, however, excludes itself; total size is BIT16SZ+count */#define STATFIXLEN	(BIT16SZ+QIDSZ+5*BIT16SZ+4*BIT32SZ+1*BIT64SZ)	/* amount of fixed length data in a stat buffer */typedef union{	char	clength[8];	vlong	vlength;	struct	{		long	hlength;		long	length;	};} Length;typedefstruct Qid{	uvlong	path;	ulong	vers;	uchar	type;} Qid;typedefstruct Dir {	/* system-modified data */	ushort	type;	/* server type */	uint	dev;	/* server subtype */	/* file data */	Qid	qid;	/* unique id from server */	ulong	mode;	/* permissions */	ulong	atime;	/* last read time */	ulong	mtime;	/* last write time */	vlong	length;	/* file length: see <u.h> */	char	*name;	/* last element of path */	char	*uid;	/* owner name */	char	*gid;	/* group name */	char	*muid;	/* last modifier name */} Dir;void	_dirtostat(struct stat *, Dir*, Fdinfo*);uint	_convM2D(uchar*, uint, Dir*, char*);uint	_convD2M(Dir*, uchar*, uint);Dir	*_dirstat(char*);int	_dirwstat(char*, Dir*);Dir	*_dirfstat(int);int	_dirfwstat(int, Dir*);long	_dirread(int, Dir**);long _dirreadall(int, Dir**);void _nulldir(Dir*);uint _sizeD2M(Dir*);#ifndef nil#define nil ((void*)0)#endif

⌨️ 快捷键说明

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