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

📄 lib.h

📁 在x86平台上运行不可信任代码的sandbox。
💻 H
字号:
/* * functions (possibly) linked in, complete, from libc. */#define nelem(x)	(sizeof(x)/sizeof((x)[0]))#define offsetof(s, m)	(ulong)(&(((s*)0)->m))/* * mem routines *//* * string routines */extern	char*	strecpy(char*, char*, char*);/* * one-of-a-kind */extern	char*	cleanname(char*);extern	ulong	getcallerpc(void*);extern	int	getfields(char*, char**, int, int, char*);extern	int	tokenize(char*, char**, int);extern	int	dec64(uchar*, int, char*, int);/* * Syscall data structures */#define	MORDER	0x0003	/* mask for bits defining order of mounting */#define	MREPL	0x0000	/* mount replaces object */#define	MBEFORE	0x0001	/* mount goes before others in union directory */#define	MAFTER	0x0002	/* mount goes after others in union directory */#define	MCREATE	0x0004	/* permit creation in mounted directory */#define	MCACHE	0x0010	/* cache some data */#define	MMASK	0x0017	/* all bits on */#define	OREAD	0	/* open for read */#define	OWRITE	1	/* write */#define	ORDWR	2	/* read and write */#define	OEXEC	3	/* execute, == read but check execute permission */#define	OTRUNC	16	/* or'ed in (except for exec), truncate file first */#define	OCEXEC	32	/* or'ed in, close on exec */#define	ORCLOSE	64	/* or'ed in, remove on close */#define OEXCL   0x1000	/* or'ed in, exclusive create */#define	NCONT	0	/* continue after note */#define	NDFLT	1	/* terminate after note */#define	NSAVE	2	/* clear note but hold state */#define	NRSTR	3	/* restore saved state */typedef struct Qid	Qid;typedef struct Dir	Dir;typedef struct OWaitmsg	OWaitmsg;typedef struct Waitmsg	Waitmsg;#define	ERRMAX			128	/* max length of error string */#define	KNAMELEN		28	/* max length of name held in kernel *//* bits in Qid.type */#define QTDIR		0x80		/* type bit for directories */#define QTAPPEND	0x40		/* type bit for append only files */#define QTEXCL		0x20		/* type bit for exclusive use files */#define QTMOUNT		0x10		/* type bit for mounted channel */#define QTAUTH		0x08		/* type bit for authentication file */#define QTFILE		0x00		/* plain file *//* bits in Dir.mode */#define DMDIR		0x80000000	/* mode bit for directories */#define DMAPPEND	0x40000000	/* mode bit for append only files */#define DMEXCL		0x20000000	/* mode bit for exclusive use files */#define DMMOUNT		0x10000000	/* mode bit for mounted channel */#define DMREAD		0x4		/* mode bit for read permission */#define DMWRITE		0x2		/* mode bit for write permission */#define DMEXEC		0x1		/* mode bit for execute permission */struct Qid{	uvlong	path;	ulong	vers;	uchar	type;};struct 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 */};struct OWaitmsg{	char	pid[12];	/* of loved one */	char	time[3*12];	/* of loved one and descendants */	char	msg[64];	/* compatibility BUG */};struct Waitmsg{	int	pid;		/* of loved one */	ulong	time[3];	/* of loved one and descendants */	char	msg[ERRMAX];	/* actually variable-size in user mode */};#include "utf.h"#include "fmt.h"extern	int	dec64(uchar*, int, char*, int);extern	int	enc64(char*, int, uchar*, int);extern	int	dec32(uchar*, int, char*, int);extern	int	enc32(char*, int, uchar*, int);extern	int	dec16(uchar*, int, char*, int);extern	int	enc16(char*, int, uchar*, int);extern	int	encodefmt(Fmt*);extern	int	fmtstrcpy(Fmt*, char*);extern	void*	mallocz(ulong, int);extern	void	werrstr(char*, ...);

⌨️ 快捷键说明

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