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