xref: /plan9/sys/src/cmd/unix/drawterm/kern/fns.h (revision 8ccd4a6360d974db7bd7bbd4f37e7018419ea908)
1*8ccd4a63SDavid du Colombier #define	ROUND(s, sz)	(((s)+((sz)-1))&~((sz)-1))
2*8ccd4a63SDavid du Colombier 
3*8ccd4a63SDavid du Colombier void		accounttime(void);
4*8ccd4a63SDavid du Colombier void		addclock0link(void (*)(void), int);
5*8ccd4a63SDavid du Colombier int		addphysseg(Physseg*);
6*8ccd4a63SDavid du Colombier void		addbootfile(char*, uchar*, ulong);
7*8ccd4a63SDavid du Colombier Block*		adjustblock(Block*, int);
8*8ccd4a63SDavid du Colombier void		alarmkproc(void*);
9*8ccd4a63SDavid du Colombier Block*		allocb(int);
10*8ccd4a63SDavid du Colombier int		anyhigher(void);
11*8ccd4a63SDavid du Colombier int		anyready(void);
12*8ccd4a63SDavid du Colombier Page*		auxpage(void);
13*8ccd4a63SDavid du Colombier Block*		bl2mem(uchar*, Block*, int);
14*8ccd4a63SDavid du Colombier int		blocklen(Block*);
15*8ccd4a63SDavid du Colombier void		callwithureg(void(*)(Ureg*));
16*8ccd4a63SDavid du Colombier char*		c2name(Chan*);
17*8ccd4a63SDavid du Colombier int		cangetc(void*);
18*8ccd4a63SDavid du Colombier int		canlock(Lock*);
19*8ccd4a63SDavid du Colombier int		canpage(Proc*);
20*8ccd4a63SDavid du Colombier int		canputc(void*);
21*8ccd4a63SDavid du Colombier int		canqlock(QLock*);
22*8ccd4a63SDavid du Colombier int		canrlock(RWlock*);
23*8ccd4a63SDavid du Colombier void		chandevinit(void);
24*8ccd4a63SDavid du Colombier void		chandevreset(void);
25*8ccd4a63SDavid du Colombier void		chandevshutdown(void);
26*8ccd4a63SDavid du Colombier void		chanfree(Chan*);
27*8ccd4a63SDavid du Colombier void		chanrec(Mnt*);
28*8ccd4a63SDavid du Colombier void		checkalarms(void);
29*8ccd4a63SDavid du Colombier void		checkb(Block*, char*);
30*8ccd4a63SDavid du Colombier void		cinit(void);
31*8ccd4a63SDavid du Colombier Chan*		cclone(Chan*);
32*8ccd4a63SDavid du Colombier void		cclose(Chan*);
33*8ccd4a63SDavid du Colombier char*	clipread(void);
34*8ccd4a63SDavid du Colombier int		clipwrite(char*);
35*8ccd4a63SDavid du Colombier void		closeegrp(Egrp*);
36*8ccd4a63SDavid du Colombier void		closefgrp(Fgrp*);
37*8ccd4a63SDavid du Colombier void		closemount(Mount*);
38*8ccd4a63SDavid du Colombier void		closepgrp(Pgrp*);
39*8ccd4a63SDavid du Colombier void		closergrp(Rgrp*);
40*8ccd4a63SDavid du Colombier long		clrfpintr(void);
41*8ccd4a63SDavid du Colombier void		cmderror(Cmdbuf*, char*);
42*8ccd4a63SDavid du Colombier int		cmount(Chan**, Chan*, int, char*);
43*8ccd4a63SDavid du Colombier void		cnameclose(Cname*);
44*8ccd4a63SDavid du Colombier void		confinit(void);
45*8ccd4a63SDavid du Colombier void		confinit1(int);
46*8ccd4a63SDavid du Colombier int		consactive(void);
47*8ccd4a63SDavid du Colombier extern void		(*consdebug)(void);
48*8ccd4a63SDavid du Colombier void		copen(Chan*);
49*8ccd4a63SDavid du Colombier Block*		concatblock(Block*);
50*8ccd4a63SDavid du Colombier Block*		copyblock(Block*, int);
51*8ccd4a63SDavid du Colombier void		copypage(Page*, Page*);
52*8ccd4a63SDavid du Colombier int		cread(Chan*, uchar*, int, vlong);
53*8ccd4a63SDavid du Colombier void		cunmount(Chan*, Chan*);
54*8ccd4a63SDavid du Colombier void		cupdate(Chan*, uchar*, int, vlong);
55*8ccd4a63SDavid du Colombier void		cwrite(Chan*, uchar*, int, vlong);
56*8ccd4a63SDavid du Colombier ulong		dbgpc(Proc*);
57*8ccd4a63SDavid du Colombier int		decref(Ref*);
58*8ccd4a63SDavid du Colombier int		decrypt(void*, void*, int);
59*8ccd4a63SDavid du Colombier void		delay(int);
60*8ccd4a63SDavid du Colombier Chan*		devattach(int, char*);
61*8ccd4a63SDavid du Colombier Block*		devbread(Chan*, long, ulong);
62*8ccd4a63SDavid du Colombier long		devbwrite(Chan*, Block*, ulong);
63*8ccd4a63SDavid du Colombier Chan*		devclone(Chan*);
64*8ccd4a63SDavid du Colombier int		devconfig(int, char *, DevConf *);
65*8ccd4a63SDavid du Colombier void		devcreate(Chan*, char*, int, ulong);
66*8ccd4a63SDavid du Colombier void		devdir(Chan*, Qid, char*, vlong, char*, long, Dir*);
67*8ccd4a63SDavid du Colombier long		devdirread(Chan*, char*, long, Dirtab*, int, Devgen*);
68*8ccd4a63SDavid du Colombier Devgen		devgen;
69*8ccd4a63SDavid du Colombier void		devinit(void);
70*8ccd4a63SDavid du Colombier int		devno(int, int);
71*8ccd4a63SDavid du Colombier Chan*		devopen(Chan*, int, Dirtab*, int, Devgen*);
72*8ccd4a63SDavid du Colombier void		devpermcheck(char*, ulong, int);
73*8ccd4a63SDavid du Colombier void		devpower(int);
74*8ccd4a63SDavid du Colombier void		devremove(Chan*);
75*8ccd4a63SDavid du Colombier void		devreset(void);
76*8ccd4a63SDavid du Colombier void		devshutdown(void);
77*8ccd4a63SDavid du Colombier int		devstat(Chan*, uchar*, int, Dirtab*, int, Devgen*);
78*8ccd4a63SDavid du Colombier Walkqid*	devwalk(Chan*, Chan*, char**, int, Dirtab*, int, Devgen*);
79*8ccd4a63SDavid du Colombier int		devwstat(Chan*, uchar*, int);
80*8ccd4a63SDavid du Colombier void		drawactive(int);
81*8ccd4a63SDavid du Colombier void		drawcmap(void);
82*8ccd4a63SDavid du Colombier int		drawcanqlock(void);
83*8ccd4a63SDavid du Colombier void		drawqlock(void);
84*8ccd4a63SDavid du Colombier void		drawqunlock(void);
85*8ccd4a63SDavid du Colombier void		dumpaproc(Proc*);
86*8ccd4a63SDavid du Colombier void		dumpqueues(void);
87*8ccd4a63SDavid du Colombier void		dumpregs(Ureg*);
88*8ccd4a63SDavid du Colombier void		dumpstack(void);
89*8ccd4a63SDavid du Colombier Fgrp*		dupfgrp(Fgrp*);
90*8ccd4a63SDavid du Colombier void		duppage(Page*);
91*8ccd4a63SDavid du Colombier void		dupswap(Page*);
92*8ccd4a63SDavid du Colombier int		emptystr(char*);
93*8ccd4a63SDavid du Colombier int		encrypt(void*, void*, int);
94*8ccd4a63SDavid du Colombier void		envcpy(Egrp*, Egrp*);
95*8ccd4a63SDavid du Colombier int		eqchan(Chan*, Chan*, int);
96*8ccd4a63SDavid du Colombier int		eqqid(Qid, Qid);
97*8ccd4a63SDavid du Colombier void		error(char*);
98*8ccd4a63SDavid du Colombier long		execregs(ulong, ulong, ulong);
99*8ccd4a63SDavid du Colombier void		exhausted(char*);
100*8ccd4a63SDavid du Colombier void		exit(int);
101*8ccd4a63SDavid du Colombier uvlong		fastticks(uvlong*);
102*8ccd4a63SDavid du Colombier int		fault(ulong, int);
103*8ccd4a63SDavid du Colombier void		fdclose(int, int);
104*8ccd4a63SDavid du Colombier Chan*		fdtochan(int, int, int, int);
105*8ccd4a63SDavid du Colombier int		fixfault(Segment*, ulong, int, int);
106*8ccd4a63SDavid du Colombier void		flushmmu(void);
107*8ccd4a63SDavid du Colombier void		forkchild(Proc*, Ureg*);
108*8ccd4a63SDavid du Colombier void		forkret(void);
109*8ccd4a63SDavid du Colombier void		free(void*);
110*8ccd4a63SDavid du Colombier void		freeb(Block*);
111*8ccd4a63SDavid du Colombier void		freeblist(Block*);
112*8ccd4a63SDavid du Colombier int		freebroken(void);
113*8ccd4a63SDavid du Colombier void		freepte(Segment*, Pte*);
114*8ccd4a63SDavid du Colombier void		freesegs(int);
115*8ccd4a63SDavid du Colombier void		freesession(Session*);
116*8ccd4a63SDavid du Colombier ulong		getmalloctag(void*);
117*8ccd4a63SDavid du Colombier ulong		getrealloctag(void*);
118*8ccd4a63SDavid du Colombier void		gotolabel(Label*);
119*8ccd4a63SDavid du Colombier char*		getconfenv(void);
120*8ccd4a63SDavid du Colombier int		haswaitq(void*);
121*8ccd4a63SDavid du Colombier long		hostdomainwrite(char*, int);
122*8ccd4a63SDavid du Colombier long		hostownerwrite(char*, int);
123*8ccd4a63SDavid du Colombier void		hzsched(void);
124*8ccd4a63SDavid du Colombier void		iallocinit(void);
125*8ccd4a63SDavid du Colombier Block*		iallocb(int);
126*8ccd4a63SDavid du Colombier void		iallocsummary(void);
127*8ccd4a63SDavid du Colombier long		ibrk(ulong, int);
128*8ccd4a63SDavid du Colombier void		ilock(Lock*);
129*8ccd4a63SDavid du Colombier void		iunlock(Lock*);
130*8ccd4a63SDavid du Colombier int		incref(Ref*);
131*8ccd4a63SDavid du Colombier void		initseg(void);
132*8ccd4a63SDavid du Colombier int		iprint(char*, ...);
133*8ccd4a63SDavid du Colombier void		isdir(Chan*);
134*8ccd4a63SDavid du Colombier int		iseve(void);
135*8ccd4a63SDavid du Colombier #define	islo()	(0)
136*8ccd4a63SDavid du Colombier Segment*	isoverlap(Proc*, ulong, int);
137*8ccd4a63SDavid du Colombier int		ispages(void*);
138*8ccd4a63SDavid du Colombier int		isphysseg(char*);
139*8ccd4a63SDavid du Colombier void		ixsummary(void);
140*8ccd4a63SDavid du Colombier void		kbdclock(void);
141*8ccd4a63SDavid du Colombier int		kbdcr2nl(Queue*, int);
142*8ccd4a63SDavid du Colombier int		kbdputc(Queue*, int);
143*8ccd4a63SDavid du Colombier void		kbdrepeat(int);
144*8ccd4a63SDavid du Colombier long		keyread(char*, int, long);
145*8ccd4a63SDavid du Colombier void		kickpager(void);
146*8ccd4a63SDavid du Colombier void		killbig(void);
147*8ccd4a63SDavid du Colombier int		kproc(char*, void(*)(void*), void*);
148*8ccd4a63SDavid du Colombier void		kprocchild(Proc*, void (*)(void*), void*);
149*8ccd4a63SDavid du Colombier extern void		(*kproftimer)(ulong);
150*8ccd4a63SDavid du Colombier void		ksetenv(char*, char*, int);
151*8ccd4a63SDavid du Colombier void		kstrcpy(char*, char*, int);
152*8ccd4a63SDavid du Colombier void		kstrdup(char**, char*);
153*8ccd4a63SDavid du Colombier long		latin1(Rune*, int);
154*8ccd4a63SDavid du Colombier void		lock(Lock*);
155*8ccd4a63SDavid du Colombier void		lockinit(void);
156*8ccd4a63SDavid du Colombier void		logopen(Log*);
157*8ccd4a63SDavid du Colombier void		logclose(Log*);
158*8ccd4a63SDavid du Colombier char*		logctl(Log*, int, char**, Logflag*);
159*8ccd4a63SDavid du Colombier void		logn(Log*, int, void*, int);
160*8ccd4a63SDavid du Colombier long		logread(Log*, void*, ulong, long);
161*8ccd4a63SDavid du Colombier void		log(Log*, int, char*, ...);
162*8ccd4a63SDavid du Colombier Cmdtab*		lookupcmd(Cmdbuf*, Cmdtab*, int);
163*8ccd4a63SDavid du Colombier void		machinit(void);
164*8ccd4a63SDavid du Colombier void*		mallocz(ulong, int);
165*8ccd4a63SDavid du Colombier #define		malloc kmalloc
166*8ccd4a63SDavid du Colombier void*		malloc(ulong);
167*8ccd4a63SDavid du Colombier void		mallocsummary(void);
168*8ccd4a63SDavid du Colombier Block*		mem2bl(uchar*, int);
169*8ccd4a63SDavid du Colombier void		mfreeseg(Segment*, ulong, int);
170*8ccd4a63SDavid du Colombier void		microdelay(int);
171*8ccd4a63SDavid du Colombier void		mkqid(Qid*, vlong, ulong, int);
172*8ccd4a63SDavid du Colombier void		mmurelease(Proc*);
173*8ccd4a63SDavid du Colombier void		mmuswitch(Proc*);
174*8ccd4a63SDavid du Colombier Chan*		mntauth(Chan*, char*);
175*8ccd4a63SDavid du Colombier void		mntdump(void);
176*8ccd4a63SDavid du Colombier long		mntversion(Chan*, char*, int, int);
177*8ccd4a63SDavid du Colombier void		mountfree(Mount*);
178*8ccd4a63SDavid du Colombier ulong		ms2tk(ulong);
179*8ccd4a63SDavid du Colombier ulong		msize(void*);
180*8ccd4a63SDavid du Colombier ulong		ms2tk(ulong);
181*8ccd4a63SDavid du Colombier uvlong		ms2fastticks(ulong);
182*8ccd4a63SDavid du Colombier void		muxclose(Mnt*);
183*8ccd4a63SDavid du Colombier Chan*		namec(char*, int, int, ulong);
184*8ccd4a63SDavid du Colombier Chan*		newchan(void);
185*8ccd4a63SDavid du Colombier int		newfd(Chan*);
186*8ccd4a63SDavid du Colombier Mhead*		newmhead(Chan*);
187*8ccd4a63SDavid du Colombier Mount*		newmount(Mhead*, Chan*, int, char*);
188*8ccd4a63SDavid du Colombier Page*		newpage(int, Segment **, ulong);
189*8ccd4a63SDavid du Colombier Pgrp*		newpgrp(void);
190*8ccd4a63SDavid du Colombier Rgrp*		newrgrp(void);
191*8ccd4a63SDavid du Colombier Proc*		newproc(void);
192*8ccd4a63SDavid du Colombier char*		nextelem(char*, char*);
193*8ccd4a63SDavid du Colombier void		nexterror(void);
194*8ccd4a63SDavid du Colombier Cname*		newcname(char*);
195*8ccd4a63SDavid du Colombier int		notify(Ureg*);
196*8ccd4a63SDavid du Colombier int		nrand(int);
197*8ccd4a63SDavid du Colombier int		okaddr(ulong, ulong, int);
198*8ccd4a63SDavid du Colombier int		openmode(ulong);
199*8ccd4a63SDavid du Colombier void		oserrstr(void);
200*8ccd4a63SDavid du Colombier void		oserror(void);
201*8ccd4a63SDavid du Colombier Block*		packblock(Block*);
202*8ccd4a63SDavid du Colombier Block*		padblock(Block*, int);
203*8ccd4a63SDavid du Colombier void		pagechainhead(Page*);
204*8ccd4a63SDavid du Colombier void		pageinit(void);
205*8ccd4a63SDavid du Colombier void		pagersummary(void);
206*8ccd4a63SDavid du Colombier void		panic(char*, ...);
207*8ccd4a63SDavid du Colombier Cmdbuf*		parsecmd(char *a, int n);
208*8ccd4a63SDavid du Colombier ulong		perfticks(void);
209*8ccd4a63SDavid du Colombier void		pexit(char*, int);
210*8ccd4a63SDavid du Colombier int		preempted(void);
211*8ccd4a63SDavid du Colombier void		printinit(void);
212*8ccd4a63SDavid du Colombier int		procindex(ulong);
213*8ccd4a63SDavid du Colombier void		pgrpcpy(Pgrp*, Pgrp*);
214*8ccd4a63SDavid du Colombier void		pgrpnote(ulong, char*, long, int);
215*8ccd4a63SDavid du Colombier Pgrp*		pgrptab(int);
216*8ccd4a63SDavid du Colombier void		pio(Segment *, ulong, ulong, Page **);
217*8ccd4a63SDavid du Colombier #define		poperror()		up->nerrlab--
218*8ccd4a63SDavid du Colombier void		portclock(Ureg*);
219*8ccd4a63SDavid du Colombier int		postnote(Proc*, int, char*, int);
220*8ccd4a63SDavid du Colombier int		pprint(char*, ...);
221*8ccd4a63SDavid du Colombier void		prflush(void);
222*8ccd4a63SDavid du Colombier ulong		procalarm(ulong);
223*8ccd4a63SDavid du Colombier int		proccounter(char *name);
224*8ccd4a63SDavid du Colombier void		procctl(Proc*);
225*8ccd4a63SDavid du Colombier void		procdump(void);
226*8ccd4a63SDavid du Colombier int		procfdprint(Chan*, int, int, char*, int);
227*8ccd4a63SDavid du Colombier void		procinit0(void);
228*8ccd4a63SDavid du Colombier void		procflushseg(Segment*);
229*8ccd4a63SDavid du Colombier void		procpriority(Proc*, int, int);
230*8ccd4a63SDavid du Colombier Proc*		proctab(int);
231*8ccd4a63SDavid du Colombier void		procwired(Proc*, int);
232*8ccd4a63SDavid du Colombier Pte*		ptealloc(void);
233*8ccd4a63SDavid du Colombier Pte*		ptecpy(Pte*);
234*8ccd4a63SDavid du Colombier int		pullblock(Block**, int);
235*8ccd4a63SDavid du Colombier Block*		pullupblock(Block*, int);
236*8ccd4a63SDavid du Colombier Block*		pullupqueue(Queue*, int);
237*8ccd4a63SDavid du Colombier void		putmhead(Mhead*);
238*8ccd4a63SDavid du Colombier void		putmmu(ulong, ulong, Page*);
239*8ccd4a63SDavid du Colombier void		putpage(Page*);
240*8ccd4a63SDavid du Colombier void		putseg(Segment*);
241*8ccd4a63SDavid du Colombier void		putstr(char*);
242*8ccd4a63SDavid du Colombier void		putstrn(char*, int);
243*8ccd4a63SDavid du Colombier void		putswap(Page*);
244*8ccd4a63SDavid du Colombier ulong		pwait(Waitmsg*);
245*8ccd4a63SDavid du Colombier Label*	pwaserror(void);
246*8ccd4a63SDavid du Colombier void		qaddlist(Queue*, Block*);
247*8ccd4a63SDavid du Colombier Block*		qbread(Queue*, int);
248*8ccd4a63SDavid du Colombier long		qbwrite(Queue*, Block*);
249*8ccd4a63SDavid du Colombier Queue*		qbypass(void (*)(void*, Block*), void*);
250*8ccd4a63SDavid du Colombier int		qcanread(Queue*);
251*8ccd4a63SDavid du Colombier void		qclose(Queue*);
252*8ccd4a63SDavid du Colombier int		qconsume(Queue*, void*, int);
253*8ccd4a63SDavid du Colombier Block*		qcopy(Queue*, int, ulong);
254*8ccd4a63SDavid du Colombier int		qdiscard(Queue*, int);
255*8ccd4a63SDavid du Colombier void		qflush(Queue*);
256*8ccd4a63SDavid du Colombier void		qfree(Queue*);
257*8ccd4a63SDavid du Colombier int		qfull(Queue*);
258*8ccd4a63SDavid du Colombier Block*		qget(Queue*);
259*8ccd4a63SDavid du Colombier void		qhangup(Queue*, char*);
260*8ccd4a63SDavid du Colombier int		qisclosed(Queue*);
261*8ccd4a63SDavid du Colombier void		qinit(void);
262*8ccd4a63SDavid du Colombier int		qiwrite(Queue*, void*, int);
263*8ccd4a63SDavid du Colombier int		qlen(Queue*);
264*8ccd4a63SDavid du Colombier void		qlock(QLock*);
265*8ccd4a63SDavid du Colombier Queue*		qopen(int, int, void (*)(void*), void*);
266*8ccd4a63SDavid du Colombier int		qpass(Queue*, Block*);
267*8ccd4a63SDavid du Colombier int		qpassnolim(Queue*, Block*);
268*8ccd4a63SDavid du Colombier int		qproduce(Queue*, void*, int);
269*8ccd4a63SDavid du Colombier void		qputback(Queue*, Block*);
270*8ccd4a63SDavid du Colombier long		qread(Queue*, void*, int);
271*8ccd4a63SDavid du Colombier Block*		qremove(Queue*);
272*8ccd4a63SDavid du Colombier void		qreopen(Queue*);
273*8ccd4a63SDavid du Colombier void		qsetlimit(Queue*, int);
274*8ccd4a63SDavid du Colombier void		qunlock(QLock*);
275*8ccd4a63SDavid du Colombier int		qwindow(Queue*);
276*8ccd4a63SDavid du Colombier int		qwrite(Queue*, void*, int);
277*8ccd4a63SDavid du Colombier void		qnoblock(Queue*, int);
278*8ccd4a63SDavid du Colombier int		rand(void);
279*8ccd4a63SDavid du Colombier void		randominit(void);
280*8ccd4a63SDavid du Colombier ulong		randomread(void*, ulong);
281*8ccd4a63SDavid du Colombier void		rdb(void);
282*8ccd4a63SDavid du Colombier int		readnum(ulong, char*, ulong, ulong, int);
283*8ccd4a63SDavid du Colombier int		readstr(ulong, char*, ulong, char*);
284*8ccd4a63SDavid du Colombier void		ready(Proc*);
285*8ccd4a63SDavid du Colombier void		rebootcmd(int, char**);
286*8ccd4a63SDavid du Colombier void		reboot(void*, void*, ulong);
287*8ccd4a63SDavid du Colombier void		relocateseg(Segment*, ulong);
288*8ccd4a63SDavid du Colombier void		renameuser(char*, char*);
289*8ccd4a63SDavid du Colombier void		resched(char*);
290*8ccd4a63SDavid du Colombier void		resrcwait(char*);
291*8ccd4a63SDavid du Colombier int		return0(void*);
292*8ccd4a63SDavid du Colombier void		rlock(RWlock*);
293*8ccd4a63SDavid du Colombier long		rtctime(void);
294*8ccd4a63SDavid du Colombier void		runlock(RWlock*);
295*8ccd4a63SDavid du Colombier Proc*		runproc(void);
296*8ccd4a63SDavid du Colombier void		savefpregs(FPsave*);
297*8ccd4a63SDavid du Colombier extern void		(*saveintrts)(void);
298*8ccd4a63SDavid du Colombier void		sched(void);
299*8ccd4a63SDavid du Colombier void		scheddump(void);
300*8ccd4a63SDavid du Colombier void		schedinit(void);
301*8ccd4a63SDavid du Colombier extern void		(*screenputs)(char*, int);
302*8ccd4a63SDavid du Colombier long		seconds(void);
303*8ccd4a63SDavid du Colombier ulong		segattach(Proc*, ulong, char *, ulong, ulong);
304*8ccd4a63SDavid du Colombier void		segclock(ulong);
305*8ccd4a63SDavid du Colombier void		segpage(Segment*, Page*);
306*8ccd4a63SDavid du Colombier void		setkernur(Ureg*, Proc*);
307*8ccd4a63SDavid du Colombier int		setlabel(Label*);
308*8ccd4a63SDavid du Colombier void		setmalloctag(void*, ulong);
309*8ccd4a63SDavid du Colombier void		setrealloctag(void*, ulong);
310*8ccd4a63SDavid du Colombier void		setregisters(Ureg*, char*, char*, int);
311*8ccd4a63SDavid du Colombier void		setswapchan(Chan*);
312*8ccd4a63SDavid du Colombier char*		skipslash(char*);
313*8ccd4a63SDavid du Colombier void		sleep(Rendez*, int(*)(void*), void*);
314*8ccd4a63SDavid du Colombier void*		smalloc(ulong);
315*8ccd4a63SDavid du Colombier int		splhi(void);
316*8ccd4a63SDavid du Colombier int		spllo(void);
317*8ccd4a63SDavid du Colombier void		splx(int);
318*8ccd4a63SDavid du Colombier void		splxpc(int);
319*8ccd4a63SDavid du Colombier char*		srvname(Chan*);
320*8ccd4a63SDavid du Colombier int		swapcount(ulong);
321*8ccd4a63SDavid du Colombier int		swapfull(void);
322*8ccd4a63SDavid du Colombier void		swapinit(void);
323*8ccd4a63SDavid du Colombier void		timeradd(Timer*);
324*8ccd4a63SDavid du Colombier void		timerdel(Timer*);
325*8ccd4a63SDavid du Colombier void		timersinit(void);
326*8ccd4a63SDavid du Colombier void		timerintr(Ureg*, uvlong);
327*8ccd4a63SDavid du Colombier void		timerset(uvlong);
328*8ccd4a63SDavid du Colombier ulong		tk2ms(ulong);
329*8ccd4a63SDavid du Colombier #define		TK2MS(x) ((x)*(1000/HZ))
330*8ccd4a63SDavid du Colombier vlong		todget(vlong*);
331*8ccd4a63SDavid du Colombier void		todfix(void);
332*8ccd4a63SDavid du Colombier void		todsetfreq(vlong);
333*8ccd4a63SDavid du Colombier void		todinit(void);
334*8ccd4a63SDavid du Colombier void		todset(vlong, vlong, int);
335*8ccd4a63SDavid du Colombier Block*		trimblock(Block*, int, int);
336*8ccd4a63SDavid du Colombier void		tsleep(Rendez*, int (*)(void*), void*, int);
337*8ccd4a63SDavid du Colombier int		uartctl(Uart*, char*);
338*8ccd4a63SDavid du Colombier int		uartgetc(void);
339*8ccd4a63SDavid du Colombier void		uartkick(void*);
340*8ccd4a63SDavid du Colombier void		uartmouse(Uart*, int (*)(Queue*, int), int);
341*8ccd4a63SDavid du Colombier void		uartputc(int);
342*8ccd4a63SDavid du Colombier void		uartputs(char*, int);
343*8ccd4a63SDavid du Colombier void		uartrecv(Uart*, char);
344*8ccd4a63SDavid du Colombier Uart*		uartsetup(Uart*);
345*8ccd4a63SDavid du Colombier int		uartstageoutput(Uart*);
346*8ccd4a63SDavid du Colombier void		unbreak(Proc*);
347*8ccd4a63SDavid du Colombier void		uncachepage(Page*);
348*8ccd4a63SDavid du Colombier long		unionread(Chan*, void*, long);
349*8ccd4a63SDavid du Colombier void		unlock(Lock*);
350*8ccd4a63SDavid du Colombier Proc**	uploc(void);
351*8ccd4a63SDavid du Colombier void		userinit(void);
352*8ccd4a63SDavid du Colombier ulong		userpc(void);
353*8ccd4a63SDavid du Colombier long		userwrite(char*, int);
354*8ccd4a63SDavid du Colombier #define	validaddr(a, b, c)
355*8ccd4a63SDavid du Colombier void		validname(char*, int);
356*8ccd4a63SDavid du Colombier void		validstat(uchar*, int);
357*8ccd4a63SDavid du Colombier void		vcacheinval(Page*, ulong);
358*8ccd4a63SDavid du Colombier void*		vmemchr(void*, int, int);
359*8ccd4a63SDavid du Colombier Proc*		wakeup(Rendez*);
360*8ccd4a63SDavid du Colombier int		walk(Chan**, char**, int, int, int*);
361*8ccd4a63SDavid du Colombier #define	waserror()	(setjmp(pwaserror()->buf))
362*8ccd4a63SDavid du Colombier void		wlock(RWlock*);
363*8ccd4a63SDavid du Colombier void		wunlock(RWlock*);
364*8ccd4a63SDavid du Colombier void*		xalloc(ulong);
365*8ccd4a63SDavid du Colombier void*		xallocz(ulong, int);
366*8ccd4a63SDavid du Colombier void		xfree(void*);
367*8ccd4a63SDavid du Colombier void		xhole(ulong, ulong);
368*8ccd4a63SDavid du Colombier void		xinit(void);
369*8ccd4a63SDavid du Colombier int		xmerge(void*, void*);
370*8ccd4a63SDavid du Colombier void*		xspanalloc(ulong, int, ulong);
371*8ccd4a63SDavid du Colombier void		xsummary(void);
372*8ccd4a63SDavid du Colombier void		yield(void);
373*8ccd4a63SDavid du Colombier Segment*	data2txt(Segment*);
374*8ccd4a63SDavid du Colombier Segment*	dupseg(Segment**, int, int);
375*8ccd4a63SDavid du Colombier Segment*	newseg(int, ulong, ulong);
376*8ccd4a63SDavid du Colombier Segment*	seg(Proc*, ulong, int);
377*8ccd4a63SDavid du Colombier void		hnputv(void*, vlong);
378*8ccd4a63SDavid du Colombier void		hnputl(void*, ulong);
379*8ccd4a63SDavid du Colombier void		hnputs(void*, ushort);
380*8ccd4a63SDavid du Colombier vlong		nhgetv(void*);
381*8ccd4a63SDavid du Colombier ulong		nhgetl(void*);
382*8ccd4a63SDavid du Colombier ushort		nhgets(void*);
383*8ccd4a63SDavid du Colombier ulong	ticks(void);
384*8ccd4a63SDavid du Colombier void	osproc(Proc*);
385*8ccd4a63SDavid du Colombier void	osnewproc(Proc*);
386*8ccd4a63SDavid du Colombier void	procsleep(void);
387*8ccd4a63SDavid du Colombier void	procwakeup(Proc*);
388*8ccd4a63SDavid du Colombier void	osinit(void);
389*8ccd4a63SDavid du Colombier void	screeninit(void);
390*8ccd4a63SDavid du Colombier extern	void	terminit(void);
391*8ccd4a63SDavid du Colombier 
392