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