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