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