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

📄 portfns.h

📁 在x86平台上运行不可信任代码的sandbox。
💻 H
字号:
// Plan 9 VX: avoid Unix reserved words#define log _klog#define malloc _kmalloc#define encrypt _kencrypt#undef timeradd#define timeradd _ktimeradd#define reboot _kreboot#undef _assert#define _assert __kassert#define rand _krandvoid		_assert(char*);void		accounttime(void);Timer*		addclock0link(void (*)(void), int);int		addphysseg(Physseg*);void		addbootfile(char*, uchar*, ulong);void		addwatchdog(Watchdog*);Block*		adjustblock(Block*, int);void		alarmkproc(void*);Block*		allocb(int);int		anyhigher(void);int		anyready(void);Image*		attachimage(int, Chan*, ulong, ulong);Page*		auxpage(void);Block*		bl2mem(uchar*, Block*, int);int		blocklen(Block*);void		bootlinks(void);void		cachedel(Image*, ulong);void		cachepage(Page*, Image*);void		callwithureg(void(*)(Ureg*));char*		chanpath(Chan*);int		canlock(Lock*);int		canpage(Proc*);int		canqlock(QLock*);int		canrlock(RWlock*);void		chandevinit(void);void		chandevreset(void);void		chandevshutdown(void);void		chanfree(Chan*);void		checkalarms(void);void		checkb(Block*, char*);void		cinit(void);Chan*		cclone(Chan*);void		cclose(Chan*);void		ccloseq(Chan*);void		closeegrp(Egrp*);void		closefgrp(Fgrp*);void		closepgrp(Pgrp*);void		closergrp(Rgrp*);long		clrfpintr(void);void		cmderror(Cmdbuf*, char*);int		cmount(Chan**, Chan*, int, char*);void		confinit(void);int		consactive(void);void		(*consdebug)(void);void		copen(Chan*);Block*		concatblock(Block*);Block*		copyblock(Block*, int);void		copypage(Page*, Page*);void		countpagerefs(ulong*, int);int		cread(Chan*, uchar*, int, vlong);void		cunmount(Chan*, Chan*);void		cupdate(Chan*, uchar*, int, vlong);void		cwrite(Chan*, uchar*, int, vlong);ulong		dbgpc(Proc*);long		decref(Ref*);int		decrypt(void*, void*, int);void		delay(int);Proc*		dequeueproc(Schedq*, Proc*);Chan*		devattach(int, char*);Block*		devbread(Chan*, long, ulong);long		devbwrite(Chan*, Block*, ulong);Chan*		devclone(Chan*);int		devconfig(int, char *, DevConf *);void		devcreate(Chan*, char*, int, ulong);void		devdir(Chan*, Qid, char*, vlong, char*, long, Dir*);long		devdirread(Chan*, char*, long, Dirtab*, int, Devgen*);Devgen		devgen;void		devinit(void);int		devno(int, int);Chan*		devopen(Chan*, int, Dirtab*, int, Devgen*);void		devpermcheck(char*, ulong, int);void		devpower(int);void		devremove(Chan*);void		devreset(void);void		devshutdown(void);int		devstat(Chan*, uchar*, int, Dirtab*, int, Devgen*);Walkqid*	devwalk(Chan*, Chan*, char**, int, Dirtab*, int, Devgen*);int		devwstat(Chan*, uchar*, int);void		drawactive(int);void		drawcmap(void);void		dumpaproc(Proc*);void		dumpregs(Ureg*);void		dumpstack(void);Fgrp*		dupfgrp(Fgrp*);int		duppage(Page*);void		dupswap(Page*);void		edfinit(Proc*);char*		edfadmit(Proc*);int		edfready(Proc*);void		edfrecord(Proc*);void		edfrun(Proc*, int);void		edfstop(Proc*);void		edfyield(void);int		emptystr(char*);int		encrypt(void*, void*, int);void		envcpy(Egrp*, Egrp*);int		eqchan(Chan*, Chan*, int);int		eqchantdqid(Chan*, int, int, Qid, int);int		eqqid(Qid, Qid);void		error(char*);long		execregs(ulong, ulong, ulong);void		exhausted(char*);void		exit(int);uvlong		fastticks(uvlong*);uvlong		fastticks2ns(uvlong);uvlong		fastticks2us(uvlong);int		fault(ulong, int);void		fdclose(int, int);Chan*		fdtochan(int, int, int, int);int		findmount(Chan**, Mhead**, int, int, Qid);int		fixfault(Segment*, ulong, int, int);void		flushmmu(void);void		forceclosefgrp(void);void		forkchild(Proc*, Ureg*);void		forkret(void);void		free(void*);void		freeb(Block*);void		freeblist(Block*);int		freebroken(void);void		freepte(Segment*, Pte*);void		getcolor(ulong, ulong*, ulong*, ulong*);ulong		getmalloctag(void*);ulong		getrealloctag(void*);char*		getconfenv(void);int		haswaitq(void*);long		hostdomainwrite(char*, int);long		hostownerwrite(char*, int);void		hzsched(void);Block*		iallocb(int);void		iallocsummary(void);long		ibrk(ulong, int);void		ilock(Lock*);void		iunlock(Lock*);long		incref(Ref*);void		initseg(void);int		iprint(char*, ...);void		isdir(Chan*);int		iseve(void);int		islo(void);Segment*	isoverlap(Proc*, ulong, int);int		ispages(void*);int		isphysseg(char*);void		ixsummary(void);int		kbdcr2nl(Queue*, int);int		kbdgetmap(uint, int*, int*, Rune*);int		kbdputc(Queue*, int);void		kbdputmap(ushort, ushort, Rune);void		kickpager(void);void		killbig(char*);void		kproc(char*, void(*)(void*), void*);void		kprocchild(Proc*, void (*)(void*), void*);void		(*kproftimer)(ulong);void		ksetenv(char*, char*, int);void		kstrcpy(char*, char*, int);void		kstrdup(char**, char*);long		latin1(Rune*, int);int		lock(Lock*);void		logopen(Log*);void		logclose(Log*);char*		logctl(Log*, int, char**, Logflag*);void		logn(Log*, int, void*, int);long		logread(Log*, void*, ulong, long);void		log(Log*, int, char*, ...);Cmdtab*		lookupcmd(Cmdbuf*, Cmdtab*, int);Page*		lookpage(Image*, ulong);#define		MS2NS(n) (((vlong)(n))*1000000LL)void		machinit(void);void*		mallocz(ulong, int);void*		malloc(ulong);void*		mallocalign(ulong, ulong, long, ulong);void		mallocsummary(void);Block*		mem2bl(uchar*, int);void		mfreeseg(Segment*, ulong, int);void		microdelay(int);uvlong		mk64fract(uvlong, uvlong);void		mkqid(Qid*, vlong, ulong, int);void		mmurelease(Proc*);void		mmuswitch(Proc*);Chan*		mntauth(Chan*, char*);long		mntversion(Chan*, char*, int, int);void		mouseresize(void);void		mountfree(Mount*);ulong		ms2tk(ulong);ulong		msize(void*);ulong		ms2tk(ulong);uvlong		ms2fastticks(ulong);void		mul64fract(uvlong*, uvlong, uvlong);void		muxclose(Mnt*);Chan*		namec(char*, int, int, ulong);void		nameerror(char*, char*);Chan*		newchan(void);int		newfd(Chan*);Mhead*		newmhead(Chan*);Mount*		newmount(Mhead*, Chan*, int, char*);Page*		newpage(int, Segment **, ulong);Path*		newpath(char*);Pgrp*		newpgrp(void);Rgrp*		newrgrp(void);Proc*		newproc(void);void		nexterror(void);int		notify(Ureg*);int		nrand(int);uvlong		ns2fastticks(uvlong);void*		okaddr(ulong, ulong, int);int		openmode(ulong);Block*		packblock(Block*);Block*		padblock(Block*, int);void		pagechainhead(Page*);void		pageinit(void);ulong	pagenumber(Page*);void		pagersummary(void);void		panic(char*, ...);Cmdbuf*		parsecmd(char *a, int n);void		pathclose(Path*);ulong		perfticks(void);void		pexit(char*, int);void		pgrpcpy(Pgrp*, Pgrp*);void		pgrpnote(ulong, char*, long, int);void		pio(Segment *, ulong, ulong, Page **);#define		poperror()		up->nerrlab--void		portcountpagerefs(ulong*, int);int		postnote(Proc*, int, char*, int);int		pprint(char*, ...);int		preempted(void);void		prflush(void);void		printinit(void);ulong		procalarm(ulong);void		procctl(Proc*);void		procdump(void);int		procfdprint(Chan*, int, int, char*, int);int		procindex(ulong);void		procinit0(void);void		procflushseg(Segment*);void		procpriority(Proc*, int, int);Proc*		proctab(int);extern void	(*proctrace)(Proc*, int, vlong); void		procwired(Proc*, int);Pte*		ptealloc(void);Pte*		ptecpy(Pte*);int		pullblock(Block**, int);Block*		pullupblock(Block*, int);Block*		pullupqueue(Queue*, int);void		putimage(Image*);void		putmhead(Mhead*);void		putmmu(ulong, ulong, Page*);void		putpage(Page*);void		putseg(Segment*);void		putstrn(char*, int);void		putswap(Page*);ulong		pwait(Waitmsg*);void		qaddlist(Queue*, Block*);Block*		qbread(Queue*, int);long		qbwrite(Queue*, Block*);Queue*		qbypass(void (*)(void*, Block*), void*);int		qcanread(Queue*);void		qclose(Queue*);int		qconsume(Queue*, void*, int);Block*		qcopy(Queue*, int, ulong);int		qdiscard(Queue*, int);void		qflush(Queue*);void		qfree(Queue*);int		qfull(Queue*);Block*		qget(Queue*);void		qhangup(Queue*, char*);int		qisclosed(Queue*);int		qiwrite(Queue*, void*, int);int		qlen(Queue*);void		qlock(QLock*);Queue*		qopen(int, int, void (*)(void*), void*);int		qpass(Queue*, Block*);int		qpassnolim(Queue*, Block*);int		qproduce(Queue*, void*, int);void		qputback(Queue*, Block*);long		qread(Queue*, void*, int);Block*		qremove(Queue*);void		qreopen(Queue*);void		qsetlimit(Queue*, int);void		qunlock(QLock*);int		qwindow(Queue*);int		qwrite(Queue*, void*, int);void		qnoblock(Queue*, int);int		rand(void);void		randominit(void);ulong		randomread(void*, ulong);void		rdb(void);int		readnum(ulong, char*, ulong, ulong, int);int		readstr(ulong, char*, ulong, char*);void		ready(Proc*);void		rebootcmd(int, char**);void		reboot(void*, void*, ulong);void		relocateseg(Segment*, ulong);void		renameuser(char*, char*);void		resched(char*);void		resrcwait(char*);int		return0(void*);void		rlock(RWlock*);long		rtctime(void);void		runlock(RWlock*);Proc*		runproc(void);void		savefpregs(FPsave*);void		sched(void);void		scheddump(void);void		schedinit(void);void		(*screenputs)(char*, int);long		seconds(void);ulong		segattach(Proc*, ulong, char *, ulong, ulong);void		segclock(ulong);void		segpage(Segment*, Page*);int		setcolor(ulong, ulong, ulong, ulong);void		setkernur(Ureg*, Proc*);void		setmalloctag(void*, ulong);void		setrealloctag(void*, ulong);void		setregisters(Ureg*, char*, char*, int);void		setswapchan(Chan*);char*		skipslash(char*);void		sleep(Rendez*, int(*)(void*), void*);void*		smalloc(ulong);int		splhi(void);int		spllo(void);void		splx(int);void		splxpc(int);char*		srvname(Chan*);int		swapcount(ulong);int		swapfull(void);void		swapinit(void);void		timeradd(Timer*);void		timerdel(Timer*);void		timersinit(void);void		timerintr(Ureg*, Tval);void		timerset(Tval);ulong		tk2ms(ulong);#define		TK2MS(x) ((x)*(1000/HZ))uvlong		tod2fastticks(vlong);vlong		todget(vlong*);void		todsetfreq(vlong);void		todinit(void);void		todset(vlong, vlong, int);Block*		trimblock(Block*, int, int);void		tsleep(Rendez*, int (*)(void*), void*, ulong);int		uartctl(Uart*, char*);int		uartgetc(void);void		uartkick(void*);void		uartmouse(Uart*, int (*)(Queue*, int), int);void		uartsetmouseputc(Uart*, int (*)(Queue*, int));void		uartputc(int);void		uartputs(char*, int);void		uartrecv(Uart*, char);int		uartstageoutput(Uart*);void		unbreak(Proc*);void		uncachepage(Page*);long		unionread(Chan*, void*, long);void		unlock(Lock*);uvlong		us2fastticks(uvlong);void		userinit(void);ulong		userpc(void);long		userwrite(char*, int);void		validname(char*, int);char*		validnamedup(char*, int);void		validstat(uchar*, int);void*		vmemchr(void*, int, int);Proc*		wakeup(Rendez*);int		walk(Chan**, char**, int, int, int*);void		wlock(RWlock*);void		wunlock(RWlock*);void*		xalloc(ulong);void*		xallocz(ulong, int);void		xfree(void*);void		xhole(ulong, ulong);void		xinit(void);int		xmerge(void*, void*);void*		xspanalloc(ulong, int, ulong);void		xsummary(void);void		yield(void);Segment*	data2txt(Segment*);Segment*	dupseg(Segment**, int, int);Segment*	newseg(int, ulong, ulong);Segment*	seg(Proc*, ulong, int);void		hnputv(void*, uvlong);void		hnputl(void*, uint);void		hnputs(void*, ushort);uvlong		nhgetv(void*);uint		nhgetl(void*);ushort		nhgets(void*);void		_xinc(long*);long		_xdec(long*);long		lcycles(void);// Plan 9 VX additionsvoid	echo(char*, int);long	kbind(char*, char*, int);Chan*	knamec(char*, int, int, ulong);void	ksrvadd(Chan*, Chan*);ulong	msec(void);void	_ready(Proc*);Proc*	_runproc(void);void	uartecho(char*, int);void	vx32sysr1(void);void	vxnewproc(Proc*);

⌨️ 快捷键说明

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