19ef1f84bSDavid du Colombier void _assert(char*); 29ef1f84bSDavid du Colombier void accounttime(void); 39ef1f84bSDavid du Colombier void addbootfile(char*, uchar*, ulong); 49ef1f84bSDavid du Colombier Timer* addclock0link(void (*)(void), int); 59ef1f84bSDavid du Colombier int addconsdev(Queue*, void (*fn)(char*,int), int, int); 69ef1f84bSDavid du Colombier int addkbdq(Queue*, int); 79ef1f84bSDavid du Colombier int addphysseg(Physseg*); 89ef1f84bSDavid du Colombier void addwatchdog(Watchdog*); 99ef1f84bSDavid du Colombier int adec(int*); 109ef1f84bSDavid du Colombier Block* adjustblock(Block*, int); 119ef1f84bSDavid du Colombier int ainc(int*); 129ef1f84bSDavid du Colombier void alarmkproc(void*); 139ef1f84bSDavid du Colombier Block* allocb(int); 149ef1f84bSDavid du Colombier int anyhigher(void); 159ef1f84bSDavid du Colombier int anyready(void); 16*094d6818SDavid du Colombier Image* attachimage(int, Chan*, int, uintptr, uintptr); 17*094d6818SDavid du Colombier Page* auxpage(uint); 189ef1f84bSDavid du Colombier Block* bl2mem(uchar*, Block*, int); 199ef1f84bSDavid du Colombier int blocklen(Block*); 209ef1f84bSDavid du Colombier void bootlinks(void); 219ef1f84bSDavid du Colombier void cachedel(Image*, ulong); 229ef1f84bSDavid du Colombier void cachepage(Page*, Image*); 239ef1f84bSDavid du Colombier void callwithureg(void (*)(Ureg*)); 249ef1f84bSDavid du Colombier char* chanpath(Chan*); 259ef1f84bSDavid du Colombier int canlock(Lock*); 269ef1f84bSDavid du Colombier int canpage(Proc*); 279ef1f84bSDavid du Colombier int canqlock(QLock*); 289ef1f84bSDavid du Colombier int canrlock(RWlock*); 299ef1f84bSDavid du Colombier Chan* cclone(Chan*); 309ef1f84bSDavid du Colombier void cclose(Chan*); 319ef1f84bSDavid du Colombier void ccloseq(Chan*); 329ef1f84bSDavid du Colombier void chanfree(Chan*); 339ef1f84bSDavid du Colombier void checkalarms(void); 349ef1f84bSDavid du Colombier void checkb(Block*, char*); 359ef1f84bSDavid du Colombier void cinit(void); 369ef1f84bSDavid du Colombier void closeegrp(Egrp*); 379ef1f84bSDavid du Colombier void closefgrp(Fgrp*); 389ef1f84bSDavid du Colombier void closepgrp(Pgrp*); 399ef1f84bSDavid du Colombier void closergrp(Rgrp*); 409ef1f84bSDavid du Colombier void cmderror(Cmdbuf*, char*); 419ef1f84bSDavid du Colombier int cmount(Chan**, Chan*, int, char*); 429ef1f84bSDavid du Colombier int consactive(void); 439ef1f84bSDavid du Colombier void (*consdebug)(void); 449ef1f84bSDavid du Colombier Block* concatblock(Block*); 459ef1f84bSDavid du Colombier void (*consputs)(char*, int); 469ef1f84bSDavid du Colombier void copen(Chan*); 479ef1f84bSDavid du Colombier Block* copyblock(Block*, int); 489ef1f84bSDavid du Colombier void copypage(Page*, Page*); 499ef1f84bSDavid du Colombier int cread(Chan*, uchar*, int, vlong); 509ef1f84bSDavid du Colombier void cunmount(Chan*, Chan*); 519ef1f84bSDavid du Colombier void cupdate(Chan*, uchar*, int, vlong); 529ef1f84bSDavid du Colombier void cwrite(Chan*, uchar*, int, vlong); 539ef1f84bSDavid du Colombier uintptr dbgpc(Proc*); 549ef1f84bSDavid du Colombier int decrypt(void*, void*, int); 559ef1f84bSDavid du Colombier void delay(int); 569ef1f84bSDavid du Colombier void delconsdevs(void); 579ef1f84bSDavid du Colombier Proc* dequeueproc(Schedq*, Proc*); 589ef1f84bSDavid du Colombier Chan* devattach(int, char*); 599ef1f84bSDavid du Colombier Block* devbread(Chan*, long, vlong); 609ef1f84bSDavid du Colombier long devbwrite(Chan*, Block*, vlong); 619ef1f84bSDavid du Colombier Chan* devclone(Chan*); 629ef1f84bSDavid du Colombier int devconfig(int, char *, DevConf *); 639ef1f84bSDavid du Colombier void devcreate(Chan*, char*, int, int); 649ef1f84bSDavid du Colombier void devdir(Chan*, Qid, char*, vlong, char*, long, Dir*); 659ef1f84bSDavid du Colombier long devdirread(Chan*, char*, long, Dirtab*, int, Devgen*); 669ef1f84bSDavid du Colombier Devgen devgen; 679ef1f84bSDavid du Colombier void devinit(void); 689ef1f84bSDavid du Colombier Chan* devopen(Chan*, int, Dirtab*, int, Devgen*); 699ef1f84bSDavid du Colombier void devpermcheck(char*, int, int); 709ef1f84bSDavid du Colombier void devpower(int); 719ef1f84bSDavid du Colombier void devremove(Chan*); 729ef1f84bSDavid du Colombier void devreset(void); 739ef1f84bSDavid du Colombier void devshutdown(void); 749ef1f84bSDavid du Colombier long devstat(Chan*, uchar*, long, Dirtab*, int, Devgen*); 759ef1f84bSDavid du Colombier Dev* devtabget(int, int); 769ef1f84bSDavid du Colombier void devtabinit(void); 779ef1f84bSDavid du Colombier void devtabreset(void); 789ef1f84bSDavid du Colombier long devtabread(Chan*, void*, long, vlong); 799ef1f84bSDavid du Colombier void devtabshutdown(void); 809ef1f84bSDavid du Colombier Walkqid* devwalk(Chan*, Chan*, char**, int, Dirtab*, int, Devgen*); 819ef1f84bSDavid du Colombier long devwstat(Chan*, uchar*, long); 829ef1f84bSDavid du Colombier void drawactive(int); 839ef1f84bSDavid du Colombier void drawcmap(void); 849ef1f84bSDavid du Colombier void dumpaproc(Proc*); 859ef1f84bSDavid du Colombier void dumpregs(Ureg*); 869ef1f84bSDavid du Colombier void dumpstack(void); 879ef1f84bSDavid du Colombier Fgrp* dupfgrp(Fgrp*); 889ef1f84bSDavid du Colombier int duppage(Page*); 899ef1f84bSDavid du Colombier void edfinit(Proc*); 909ef1f84bSDavid du Colombier char* edfadmit(Proc*); 919ef1f84bSDavid du Colombier int edfready(Proc*); 929ef1f84bSDavid du Colombier void edfrecord(Proc*); 939ef1f84bSDavid du Colombier void edfrun(Proc*, int); 949ef1f84bSDavid du Colombier void edfstop(Proc*); 959ef1f84bSDavid du Colombier void edfyield(void); 969ef1f84bSDavid du Colombier int emptystr(char*); 979ef1f84bSDavid du Colombier int encrypt(void*, void*, int); 989ef1f84bSDavid du Colombier void envcpy(Egrp*, Egrp*); 999ef1f84bSDavid du Colombier int eqchanddq(Chan*, int, uint, Qid, int); 1009ef1f84bSDavid du Colombier int eqqid(Qid, Qid); 1019ef1f84bSDavid du Colombier void error(char*); 1029ef1f84bSDavid du Colombier void exhausted(char*); 1039ef1f84bSDavid du Colombier void exit(int); 1049ef1f84bSDavid du Colombier uvlong fastticks(uvlong*); 1059ef1f84bSDavid du Colombier uvlong fastticks2us(uvlong); 1069ef1f84bSDavid du Colombier uvlong fastticks2ns(uvlong); 1079ef1f84bSDavid du Colombier int fault(uintptr, int); 1089ef1f84bSDavid du Colombier void fdclose(int, int); 1099ef1f84bSDavid du Colombier Chan* fdtochan(int, int, int, int); 1109ef1f84bSDavid du Colombier int findmount(Chan**, Mhead**, int, uint, Qid); 111*094d6818SDavid du Colombier int fixfault(Segment*, uintptr, int, int, int); 1129ef1f84bSDavid du Colombier void fmtinit(void); 1139ef1f84bSDavid du Colombier void forceclosefgrp(void); 1149ef1f84bSDavid du Colombier void free(void*); 1159ef1f84bSDavid du Colombier void freeb(Block*); 1169ef1f84bSDavid du Colombier void freeblist(Block*); 1179ef1f84bSDavid du Colombier int freebroken(void); 1189ef1f84bSDavid du Colombier void freepte(Segment*, Pte*); 1199ef1f84bSDavid du Colombier void getcolor(ulong, ulong*, ulong*, ulong*); 1209ef1f84bSDavid du Colombier void gotolabel(Label*); 1219ef1f84bSDavid du Colombier char* getconfenv(void); 1229ef1f84bSDavid du Colombier int haswaitq(void*); 1239ef1f84bSDavid du Colombier long hostdomainwrite(char*, long); 1249ef1f84bSDavid du Colombier long hostownerwrite(char*, long); 1259ef1f84bSDavid du Colombier void hzsched(void); 1269ef1f84bSDavid du Colombier Block* iallocb(int); 1279ef1f84bSDavid du Colombier void ialloclimit(ulong); 1289ef1f84bSDavid du Colombier void iallocsummary(void); 1299ef1f84bSDavid du Colombier void ilock(Lock*); 1309ef1f84bSDavid du Colombier void iunlock(Lock*); 1319ef1f84bSDavid du Colombier void initimage(void); 132277b6efdSDavid du Colombier void initmark(Watermark *, int, char *); 1339ef1f84bSDavid du Colombier int iprint(char*, ...); 1349ef1f84bSDavid du Colombier void isdir(Chan*); 1359ef1f84bSDavid du Colombier int iseve(void); 1369ef1f84bSDavid du Colombier int islo(void); 1379ef1f84bSDavid du Colombier Segment* isoverlap(Proc*, uintptr, usize); 1389ef1f84bSDavid du Colombier int ispages(void*); 1399ef1f84bSDavid du Colombier int isphysseg(char*); 1409ef1f84bSDavid du Colombier void ixsummary(void); 1419ef1f84bSDavid du Colombier int kbdcr2nl(Queue*, int); 142277b6efdSDavid du Colombier int kbdgetmap(uint, int*, int*, Rune*); 1439ef1f84bSDavid du Colombier int kbdputc(Queue*, int); 1449ef1f84bSDavid du Colombier void kbdputmap(ushort, ushort, Rune); 145*094d6818SDavid du Colombier void kickpager(uint, int); 1469ef1f84bSDavid du Colombier void killbig(char*); 1479ef1f84bSDavid du Colombier void kproc(char*, void(*)(void*), void*); 1489ef1f84bSDavid du Colombier void kprocchild(Proc*, void (*)(void*), void*); 1499ef1f84bSDavid du Colombier void (*kproftimer)(uintptr); 1509ef1f84bSDavid du Colombier void ksetenv(char*, char*, int); 1519ef1f84bSDavid du Colombier void kstrcpy(char*, char*, int); 1529ef1f84bSDavid du Colombier void kstrdup(char**, char*); 153406c76faSDavid du Colombier ulong l2be(long); 1549ef1f84bSDavid du Colombier long latin1(Rune*, int); 1559ef1f84bSDavid du Colombier int lock(Lock*); 1569ef1f84bSDavid du Colombier void logopen(Log*); 1579ef1f84bSDavid du Colombier void logclose(Log*); 1589ef1f84bSDavid du Colombier char* logctl(Log*, int, char**, Logflag*); 1599ef1f84bSDavid du Colombier void logn(Log*, int, void*, int); 1609ef1f84bSDavid du Colombier long logread(Log*, void*, ulong, long); 1619ef1f84bSDavid du Colombier void log(Log*, int, char*, ...); 1629ef1f84bSDavid du Colombier Cmdtab* lookupcmd(Cmdbuf*, Cmdtab*, int); 1639ef1f84bSDavid du Colombier Page* lookpage(Image*, ulong); 1649ef1f84bSDavid du Colombier #define MS2NS(n) (((vlong)(n))*1000000LL) 1659ef1f84bSDavid du Colombier void mallocinit(void); 1669ef1f84bSDavid du Colombier long mallocreadsummary(Chan*, void*, long, long); 1679ef1f84bSDavid du Colombier void mallocsummary(void); 1689ef1f84bSDavid du Colombier Block* mem2bl(uchar*, int); 1699ef1f84bSDavid du Colombier void mfreeseg(Segment*, uintptr, uintptr); 1709ef1f84bSDavid du Colombier void microdelay(int); 1719ef1f84bSDavid du Colombier uvlong mk64fract(uvlong, uvlong); 1729ef1f84bSDavid du Colombier void mkqid(Qid*, vlong, ulong, int); 1739ef1f84bSDavid du Colombier void mmuflush(void); 1749ef1f84bSDavid du Colombier void mmuput(uintptr, uintptr, Page*); 1759ef1f84bSDavid du Colombier void mmurelease(Proc*); 1769ef1f84bSDavid du Colombier void mmuswitch(Proc*); 1779ef1f84bSDavid du Colombier Chan* mntauth(Chan*, char*); 1789ef1f84bSDavid du Colombier usize mntversion(Chan*, u32int, char*, usize); 1799ef1f84bSDavid du Colombier void mountfree(Mount*); 1809ef1f84bSDavid du Colombier int mregfmt(Fmt*); 1819ef1f84bSDavid du Colombier ulong ms2tk(ulong); 1829ef1f84bSDavid du Colombier uvlong ms2fastticks(ulong); 1839ef1f84bSDavid du Colombier void mul64fract(uvlong*, uvlong, uvlong); 1849ef1f84bSDavid du Colombier void muxclose(Mnt*); 1859ef1f84bSDavid du Colombier Chan* namec(char*, int, int, int); 1869ef1f84bSDavid du Colombier void nameerror(char*, char*); 1879ef1f84bSDavid du Colombier Chan* newchan(void); 1889ef1f84bSDavid du Colombier int newfd(Chan*); 1899ef1f84bSDavid du Colombier Mhead* newmhead(Chan*); 1909ef1f84bSDavid du Colombier Mount* newmount(Mhead*, Chan*, int, char*); 191*094d6818SDavid du Colombier Page* newpage(int, Segment*, uintptr, uint, int, int); 1929ef1f84bSDavid du Colombier Path* newpath(char*); 1939ef1f84bSDavid du Colombier Pgrp* newpgrp(void); 1949ef1f84bSDavid du Colombier Rgrp* newrgrp(void); 1959ef1f84bSDavid du Colombier Proc* newproc(void); 1969ef1f84bSDavid du Colombier void nexterror(void); 197277b6efdSDavid du Colombier void notemark(Watermark *, int); 1989ef1f84bSDavid du Colombier int nrand(int); 1999ef1f84bSDavid du Colombier uvlong ns2fastticks(uvlong); 2009ef1f84bSDavid du Colombier int okaddr(uintptr, long, int); 2019ef1f84bSDavid du Colombier int openmode(int); 2029ef1f84bSDavid du Colombier Block* packblock(Block*); 2039ef1f84bSDavid du Colombier Block* padblock(Block*, int); 2049ef1f84bSDavid du Colombier void pagechainhead(Page*); 2059ef1f84bSDavid du Colombier void pageinit(void); 2069ef1f84bSDavid du Colombier ulong pagenumber(Page*); 2079ef1f84bSDavid du Colombier uvlong pagereclaim(int); 208*094d6818SDavid du Colombier void pageunchain(Page*); 2099ef1f84bSDavid du Colombier void panic(char*, ...); 2109ef1f84bSDavid du Colombier Cmdbuf* parsecmd(char *a, int n); 2119ef1f84bSDavid du Colombier void pathclose(Path*); 2129ef1f84bSDavid du Colombier ulong perfticks(void); 2139ef1f84bSDavid du Colombier void pexit(char*, int); 214*094d6818SDavid du Colombier Page* pgalloc(uint, int); 215*094d6818SDavid du Colombier void pgfree(Page*); 2169ef1f84bSDavid du Colombier void pgrpcpy(Pgrp*, Pgrp*); 2179ef1f84bSDavid du Colombier void pgrpnote(ulong, char*, long, int); 2182c57ff9fSDavid du Colombier uintmem physalloc(u64int, int*, void*); 2192c57ff9fSDavid du Colombier void physdump(void); 2202c57ff9fSDavid du Colombier void physfree(uintmem, u64int); 2212c57ff9fSDavid du Colombier void physinit(uintmem, u64int); 2222c57ff9fSDavid du Colombier void* phystag(uintmem); 2239ef1f84bSDavid du Colombier int psindex(int); 224*094d6818SDavid du Colombier void pio(Segment*, uintptr, uintptr, Page**, int); 2259ef1f84bSDavid du Colombier #define poperror() up->nerrlab-- 2269ef1f84bSDavid du Colombier int postnote(Proc*, int, char*, int); 2279ef1f84bSDavid du Colombier int pprint(char*, ...); 2289ef1f84bSDavid du Colombier int preempted(void); 2299ef1f84bSDavid du Colombier void prflush(void); 2309ef1f84bSDavid du Colombier void printinit(void); 2319ef1f84bSDavid du Colombier void psinit(void); 2329ef1f84bSDavid du Colombier ulong procalarm(ulong); 2339ef1f84bSDavid du Colombier void procctl(Proc*); 2349ef1f84bSDavid du Colombier void procdump(void); 2359ef1f84bSDavid du Colombier int procfdprint(Chan*, int, int, char*, int); 2369ef1f84bSDavid du Colombier void procflushseg(Segment*); 2379ef1f84bSDavid du Colombier void procpriority(Proc*, int, int); 2389ef1f84bSDavid du Colombier void procrestore(Proc*); 2399ef1f84bSDavid du Colombier void procsave(Proc*); 2409ef1f84bSDavid du Colombier Proc* psincref(int); 2419ef1f84bSDavid du Colombier void psdecref(Proc*); 242d46407a3SDavid du Colombier void (*proctrace)(Proc*, int, vlong, vlong); 2439ef1f84bSDavid du Colombier void procwired(Proc*, int); 2449ef1f84bSDavid du Colombier Pte* ptealloc(void); 2459ef1f84bSDavid du Colombier Pte* ptecpy(Pte*); 2469ef1f84bSDavid du Colombier int pullblock(Block**, int); 2479ef1f84bSDavid du Colombier Block* pullupblock(Block*, int); 2489ef1f84bSDavid du Colombier Block* pullupqueue(Queue*, int); 2499ef1f84bSDavid du Colombier void putimage(Image*); 2509ef1f84bSDavid du Colombier void putmhead(Mhead*); 2519ef1f84bSDavid du Colombier void putpage(Page*); 2529ef1f84bSDavid du Colombier void putseg(Segment*); 2539ef1f84bSDavid du Colombier void putstrn(char*, int); 2549ef1f84bSDavid du Colombier int pwait(Waitmsg*); 2559ef1f84bSDavid du Colombier void qaddlist(Queue*, Block*); 2569ef1f84bSDavid du Colombier Block* qbread(Queue*, int); 2579ef1f84bSDavid du Colombier long qbwrite(Queue*, Block*); 2589ef1f84bSDavid du Colombier Queue* qbypass(void (*)(void*, Block*), void*); 2599ef1f84bSDavid du Colombier int qcanread(Queue*); 2609ef1f84bSDavid du Colombier void qclose(Queue*); 2619ef1f84bSDavid du Colombier int qconsume(Queue*, void*, int); 2629ef1f84bSDavid du Colombier Block* qcopy(Queue*, int, ulong); 2639ef1f84bSDavid du Colombier int qdiscard(Queue*, int); 2649ef1f84bSDavid du Colombier void qflush(Queue*); 2659ef1f84bSDavid du Colombier void qfree(Queue*); 2669ef1f84bSDavid du Colombier int qfull(Queue*); 2679ef1f84bSDavid du Colombier Block* qget(Queue*); 2689ef1f84bSDavid du Colombier void qhangup(Queue*, char*); 2699ef1f84bSDavid du Colombier int qisclosed(Queue*); 2709ef1f84bSDavid du Colombier int qiwrite(Queue*, void*, int); 2719ef1f84bSDavid du Colombier int qlen(Queue*); 2729ef1f84bSDavid du Colombier void qlock(QLock*); 2739ef1f84bSDavid du Colombier Queue* qopen(int, int, void (*)(void*), void*); 2749ef1f84bSDavid du Colombier int qpass(Queue*, Block*); 2759ef1f84bSDavid du Colombier int qpassnolim(Queue*, Block*); 2769ef1f84bSDavid du Colombier int qproduce(Queue*, void*, int); 2779ef1f84bSDavid du Colombier void qputback(Queue*, Block*); 2789ef1f84bSDavid du Colombier long qread(Queue*, void*, int); 2799ef1f84bSDavid du Colombier Block* qremove(Queue*); 2809ef1f84bSDavid du Colombier void qreopen(Queue*); 2819ef1f84bSDavid du Colombier void qsetlimit(Queue*, int); 2829ef1f84bSDavid du Colombier void qunlock(QLock*); 2839ef1f84bSDavid du Colombier int qwindow(Queue*); 2849ef1f84bSDavid du Colombier int qwrite(Queue*, void*, int); 2859ef1f84bSDavid du Colombier void qnoblock(Queue*, int); 2869ef1f84bSDavid du Colombier int rand(void); 2879ef1f84bSDavid du Colombier void randominit(void); 2889ef1f84bSDavid du Colombier ulong randomread(void*, ulong); 2899ef1f84bSDavid du Colombier void rdb(void); 2909ef1f84bSDavid du Colombier int readnum(ulong, char*, ulong, ulong, int); 2919ef1f84bSDavid du Colombier long readstr(long, char*, long, char*); 2929ef1f84bSDavid du Colombier void ready(Proc*); 2939ef1f84bSDavid du Colombier void rebootcmd(int, char**); 2949ef1f84bSDavid du Colombier void reboot(void*, void*, long); 2959ef1f84bSDavid du Colombier void relocateseg(Segment*, uintptr); 2969ef1f84bSDavid du Colombier void renameuser(char*, char*); 2979ef1f84bSDavid du Colombier void resched(char*); 2989ef1f84bSDavid du Colombier void resrcwait(char*); 2999ef1f84bSDavid du Colombier int return0(void*); 3009ef1f84bSDavid du Colombier void rlock(RWlock*); 3019ef1f84bSDavid du Colombier long rtctime(void); 3029ef1f84bSDavid du Colombier void runlock(RWlock*); 3039ef1f84bSDavid du Colombier Proc* runproc(void); 3049ef1f84bSDavid du Colombier void sched(void); 3059ef1f84bSDavid du Colombier void scheddump(void); 3069ef1f84bSDavid du Colombier void schedinit(void); 3079ef1f84bSDavid du Colombier long seconds(void); 3089ef1f84bSDavid du Colombier void segclock(uintptr); 3099ef1f84bSDavid du Colombier void segpage(Segment*, Page*); 310277b6efdSDavid du Colombier char* seprintmark(char *, char *, Watermark *); 311*094d6818SDavid du Colombier char* seprintpagestats(char*, char*); 312*094d6818SDavid du Colombier char* seprintphysstats(char*, char*); 3139ef1f84bSDavid du Colombier int setcolor(ulong, ulong, ulong, ulong); 3149ef1f84bSDavid du Colombier void setkernur(Ureg*, Proc*); 3159ef1f84bSDavid du Colombier int setlabel(Label*); 3169ef1f84bSDavid du Colombier void setregisters(Ureg*, char*, char*, int); 3179ef1f84bSDavid du Colombier char* skipslash(char*); 3189ef1f84bSDavid du Colombier void sleep(Rendez*, int (*)(void*), void*); 3199ef1f84bSDavid du Colombier void* smalloc(ulong); 3209ef1f84bSDavid du Colombier char* srvname(Chan*); 3219ef1f84bSDavid du Colombier void syscallfmt(int, va_list list); 3229ef1f84bSDavid du Colombier void sysretfmt(int, va_list, Ar0*, uvlong, uvlong); 3239ef1f84bSDavid du Colombier void sysrforkchild(Proc*, Proc*); 3249ef1f84bSDavid du Colombier void timeradd(Timer*); 3259ef1f84bSDavid du Colombier void timerdel(Timer*); 3269ef1f84bSDavid du Colombier void timersinit(void); 3279ef1f84bSDavid du Colombier void timerintr(Ureg*, vlong); 3289ef1f84bSDavid du Colombier void timerset(uvlong); 3299ef1f84bSDavid du Colombier ulong tk2ms(ulong); 3309ef1f84bSDavid du Colombier #define TK2MS(x) ((x)*(1000/HZ)) 3319ef1f84bSDavid du Colombier uvlong tod2fastticks(vlong); 3329ef1f84bSDavid du Colombier vlong todget(vlong*); 3339ef1f84bSDavid du Colombier void todsetfreq(vlong); 3349ef1f84bSDavid du Colombier void todinit(void); 3359ef1f84bSDavid du Colombier void todset(vlong, vlong, int); 3369ef1f84bSDavid du Colombier void tsleep(Rendez*, int (*)(void*), void*, long); 3379ef1f84bSDavid du Colombier Block* trimblock(Block*, int, int); 3389ef1f84bSDavid du Colombier Uart* uartconsole(int, char*); 3399ef1f84bSDavid du Colombier int uartctl(Uart*, char*); 3409ef1f84bSDavid du Colombier int uartgetc(void); 3419ef1f84bSDavid du Colombier void uartkick(void*); 34245e6af3bSDavid du Colombier void uartmouse(Uart*, int (*)(Queue*, int), int); 34345e6af3bSDavid du Colombier void uartsetmouseputc(Uart*, int (*)(Queue*, int)); 3449ef1f84bSDavid du Colombier void uartputc(int); 3459ef1f84bSDavid du Colombier void uartputs(char*, int); 3469ef1f84bSDavid du Colombier void uartrecv(Uart*, char); 3479ef1f84bSDavid du Colombier int uartstageoutput(Uart*); 3489ef1f84bSDavid du Colombier void unbreak(Proc*); 3499ef1f84bSDavid du Colombier void uncachepage(Page*); 3509ef1f84bSDavid du Colombier void unlock(Lock*); 3519ef1f84bSDavid du Colombier void userinit(void); 3529ef1f84bSDavid du Colombier uintptr userpc(Ureg*); 3539ef1f84bSDavid du Colombier long userwrite(char*, long); 3549ef1f84bSDavid du Colombier void* validaddr(void*, long, int); 3559ef1f84bSDavid du Colombier void validname(char*, int); 3569ef1f84bSDavid du Colombier char* validnamedup(char*, int); 3579ef1f84bSDavid du Colombier void validstat(uchar*, usize); 3589ef1f84bSDavid du Colombier void* vmemchr(void*, int, int); 3599ef1f84bSDavid du Colombier Proc* wakeup(Rendez*); 3609ef1f84bSDavid du Colombier int walk(Chan**, char**, int, int, int*); 3619ef1f84bSDavid du Colombier void wlock(RWlock*); 3629ef1f84bSDavid du Colombier void wunlock(RWlock*); 3639ef1f84bSDavid du Colombier void yield(void); 3649ef1f84bSDavid du Colombier Segment* data2txt(Segment*); 3659ef1f84bSDavid du Colombier Segment* dupseg(Segment**, int, int); 3669ef1f84bSDavid du Colombier Segment* newseg(int, uintptr, uintptr); 3679ef1f84bSDavid du Colombier Segment* seg(Proc*, uintptr, int); 3689ef1f84bSDavid du Colombier void hnputv(void*, uvlong); 3699ef1f84bSDavid du Colombier void hnputl(void*, uint); 3709ef1f84bSDavid du Colombier void hnputs(void*, ushort); 3719ef1f84bSDavid du Colombier uvlong nhgetv(void*); 3729ef1f84bSDavid du Colombier uint nhgetl(void*); 3739ef1f84bSDavid du Colombier ushort nhgets(void*); 3749ef1f84bSDavid du Colombier ulong µs(void); 3759ef1f84bSDavid du Colombier 3769ef1f84bSDavid du Colombier #pragma varargck argpos iprint 1 3779ef1f84bSDavid du Colombier #pragma varargck argpos panic 1 3789ef1f84bSDavid du Colombier #pragma varargck argpos pprint 1 379