- use uint for msec, ulong for ticks. ticks deserves its own type so it can be eventually converted to use the TSC counter. - clean up headers. both waserror and poperror should be in port, or neither. port seemed like the best option. Reference: /n/atom/patch/applied/uintmsec Date: Mon Jun 16 19:44:51 CES 2014 Signed-off-by: quanstro@quanstro.net --- /sys/src/nix/k10/acpiio.c Mon Jun 16 19:41:41 2014 +++ /sys/src/nix/k10/acpiio.c Mon Jun 16 19:41:41 2014 @@ -14,6 +14,8 @@ static void memtr(char *s, uintmem pa, int len, void *data) { + if(DBGFLG == 0) + return; if(len <= 8) print("aml: %s %#P len %d %#llux\n", s, pa, len, getle(data, len)); else --- /sys/src/nix/k10/fns.h Mon Jun 16 19:41:41 2014 +++ /sys/src/nix/k10/fns.h Mon Jun 16 19:41:41 2014 @@ -1,4 +1,5 @@ #include "../port/portfns.h" + void acpiinit(int); Dirtab* addarchfile(char*, int, long(*)(Chan*, void*, long, vlong), long(*)(Chan*, void*, long, vlong)); void adrinit(void); @@ -9,6 +10,7 @@ void archinit(void); int archmmu(void); void archreset(void); +#define BIOSSEG(a) KADDR(((uint)(a))<<4) void cgaconsputs(char*, int); void cgainit(void); void cgapost(int); @@ -17,7 +19,6 @@ #define coherence() mfence() void confsetenv(void); void cpuid(u32int, u32int, u32int[4]); -int dbgprint(char*, ...); void delay(int); void devacpiinit(void); void dumpmmu(Proc*); @@ -30,8 +31,8 @@ void fpuprocrestore(Proc*); void fpuprocsave(Proc*); void fpusysprocsetup(Proc*); -void fpusysrfork(Ureg*); void fpusysrforkchild(Proc*, Proc*); +void fpusysrfork(Ureg*); void gdtget(void*); void gdtput(int, u64int, u16int); char* getconf(char*); @@ -47,6 +48,7 @@ void i8042reset(void); void* i8250alloc(int, int, int); void i8250console(void); +int i8259init(int); void idlehands(void); void idthandlers(void); void idtput(int, u64int); @@ -64,8 +66,8 @@ void ioinit(void); int ioreserve(int, int, int, char*); int iounused(int, int); -int iprint(char*, ...); int islo(void); +void* KADDR(uintmem); void kbdenable(void); void kbdinit(void); void kexit(Ureg*); @@ -76,11 +78,13 @@ void machinit(void); void meminit(void); void mfence(void); -void mmumap(uintmem, uintptr, u64int, uint); void mmuflushtlb(uintmem); void mmuinit(void); +void mmumap(uintmem, uintptr, u64int, uint); uintmem mmuphysaddr(uintptr); int mmuwalk(PTE*, uintptr, int, PTE**, uintmem (*)(usize)); +int mpacpi(int); +void mpsinit(int); void ndnr(void); void nmienable(void); void noerrorsleft(void); @@ -93,6 +97,7 @@ void outs(int, ushort); void outsl(int, void*, int); void outss(int, void*, int); +uintmem PADDR(void*); void pause(void); void physallocdump(void); void printcpufreq(void); @@ -104,12 +109,17 @@ u64int rdtsc(void); int screenprint(char*, ...); /* debugging */ void sfence(void); +void sipi(void); +void syscallentry(void); +void syscallreturn(void); void syscall(uint, Ureg*); +void sysrforkret(void); void* tmpmap(uintmem); void tmpunmap(void*); -void trap(Ureg*); +void touser(uintptr); void trapenable(int, void (*)(Ureg*, void*), void*, char*); void trapinit(void); +void trap(Ureg*); void trput(u64int); void tssrsp0(u64int); void umeminit(void); @@ -125,6 +135,8 @@ void vunmap(void*, usize); void writeconf(void); void wrmsr(u32int, u64int); +#define PTR2UINT(p) ((uintptr)(p)) +#define UINT2PTR(i) ((void*)(i)) int ainc8(void*); int cas32(void*, u32int, u32int); @@ -139,24 +151,6 @@ #define fasp(p, v) ((void*)fas64((u64int*)(p), (u64int)(v))) #define tas(p) tas32(p) -void touser(uintptr); -void syscallentry(void); -void syscallreturn(void); -void sysrforkret(void); - -#define waserror() (up->nerrlab++, setlabel(&up->errlab[up->nerrlab-1])) - -#define PTR2UINT(p) ((uintptr)(p)) -#define UINT2PTR(i) ((void*)(i)) - -void* KADDR(uintmem); -uintmem PADDR(void*); - -#define BIOSSEG(a) KADDR(((uint)(a))<<4) - -/* - * archk10.c; l64v.s - */ #define monmwait(v, o) ((int)monmwait32((u32int*)(v), (u32int)(o))) u32int (*monmwait32)(u32int*, u32int); u32int nopmonmwait32(u32int*, u32int); @@ -167,18 +161,4 @@ u64int nopmonmwait64(u64int*, u64int); u64int k10monmwait64(u64int*, u64int); -/* - * i8259.c - */ -int i8259init(int); - -/* - * mp.c - */ -void mpsinit(int); -int mpacpi(int); - -/* - * sipi.c - */ -void sipi(void); +#pragma varargck argpos screenprint 1 --- /sys/src/nix/port/alarm.c Mon Jun 16 19:41:41 2014 +++ /sys/src/nix/port/alarm.c Mon Jun 16 19:41:41 2014 @@ -65,8 +65,8 @@ qunlock(&alarms); } -ulong -procalarm(ulong time) +uint +procalarm(uint time) { Proc **l, *f; ulong when, old; --- /sys/src/nix/port/portclock.c Mon Jun 16 19:41:41 2014 +++ /sys/src/nix/port/portclock.c Mon Jun 16 19:41:42 2014 @@ -261,7 +261,7 @@ * It is a LOT slower so shouldn't be used if you're just converting * a delta. */ -ulong +uint tk2ms(ulong ticks) { uvlong t, hz; --- /sys/src/nix/port/portfns.h Mon Jun 16 19:41:42 2014 +++ /sys/src/nix/port/portfns.h Mon Jun 16 19:41:42 2014 @@ -84,7 +84,6 @@ void dumpstack(void); Fgrp* dupfgrp(Fgrp*); Segment* dupseg(Segment**, int, int); -void dupswap(Page*); char* edfadmit(Proc*); void edfinit(Proc*); int edfready(Proc*); @@ -117,9 +116,9 @@ int getpgszi(usize); void gotolabel(Label*); int haswaitq(void*); -void hnputl(void*, uint); -void hnputs(void*, ushort); -void hnputv(void*, uvlong); +void hnputl(void*, u32int); +void hnputs(void*, u16int); +void hnputv(void*, u64int); long hostdomainwrite(char*, long); long hostownerwrite(char*, long); void hzsched(void); @@ -187,8 +186,9 @@ Chan* mntauth(Chan*, char*); usize mntversion(Chan*, u32int, char*, usize); void mountfree(Mount*); -uvlong ms2fastticks(ulong); +uvlong ms2fastticks(uint); #define MS2NS(n) (((vlong)(n))*1000000LL) +#define MS2TK(m) (((m)*HZ)/1000) ulong ms2tk(ulong); void mul64fract(uvlong*, uvlong, uvlong); void muxclose(Mnt*); @@ -205,9 +205,9 @@ Rgrp* newrgrp(void); Segment* newseg(int, uintptr, uintptr); void nexterror(void); -uint nhgetl(void*); -ushort nhgets(void*); -uvlong nhgetv(void*); +u32int nhgetl(void*); +u16int nhgets(void*); +u64int nhgetv(void*); int nrand(int); uvlong ns2fastticks(uvlong); int okaddr(uintptr, long, int); @@ -234,7 +234,6 @@ void physdump(void); void physfree(uintmem, u64int); void physinit(uintmem, u64int, int); -void* phystag(uintmem); void pio(Segment*, uintptr, usize, Page**, int); #define poperror() up->nerrlab-- int postnote(Proc*, int, char*, int); @@ -242,7 +241,7 @@ int preempted(void); void prflush(void); void printinit(void); -ulong procalarm(ulong); +uint procalarm(uint); void procctl(Proc*); void procdump(void); int procfdprint(Chan*, int, int, char*, int); @@ -268,7 +267,6 @@ void putpage(Page*); void putseg(Segment*); void putstrn(char*, int); -void putswap(Page*); int pwait(Waitmsg*); void qaddlist(Queue*, Block*); Block* qbread(Queue*, int); @@ -304,7 +302,7 @@ int qwrite(Queue*, void*, int); int rand(void); void randominit(void); -ulong randomread(void*, ulong); +ulong randomread(void*, usize); void rdb(void); int readnum(ulong, char*, ulong, ulong, int); long readstr(long, char*, long, char*); @@ -322,6 +320,7 @@ void sched(void); void scheddump(void); void schedinit(void); +char* schedstats(char*, char*); long seconds(void); Segment* seg(Proc*, uintptr, int); void segclock(uintptr); @@ -341,7 +340,6 @@ void splx(Mpl); char* srvname(Chan*); void startwaitstats(int); -int swapcount(ulong); void swapinit(void); void synccons(void); void syscallfmt(int, va_list list); @@ -356,7 +354,7 @@ void timerintr(Ureg*, void*); void timerset(uvlong); void timersinit(void); -ulong tk2ms(ulong); +uint tk2ms(ulong); #define TK2MS(x) ((x)*(1000/HZ)) uvlong tod2fastticks(vlong); vlong todget(vlong*); @@ -389,11 +387,13 @@ void* vmemchr(void*, int, int); Proc* wakeup(Rendez*); int walk(Chan**, char**, int, int, int*); +#define waserror() (up->nerrlab++, setlabel(&up->errlab[up->nerrlab-1])) void wlock(RWlock*); void wunlock(RWlock*); void yield(void); uint µs(void); #pragma varargck argpos iprint 1 +#pragma varargck argpos log 3 #pragma varargck argpos panic 1 #pragma varargck argpos pprint 1 --- /sys/src/nix/port/syscallfmt.c Mon Jun 16 19:41:42 2014 +++ /sys/src/nix/port/syscallfmt.c Mon Jun 16 19:41:42 2014 @@ -182,7 +182,7 @@ case FWSTAT: i[0] = va_arg(list, int); a = va_arg(list, char*); - l = va_arg(list, unsigned long); + l = va_arg(list, ulong); fmtprint(&fmt, "%d %#p %lud", i[0], a, l); break; case NOTIFY: @@ -199,7 +199,7 @@ case SEGFREE: case SEGFLUSH: v = va_arg(list, void*); - l = va_arg(list, unsigned long); + l = va_arg(list, ulong); fmtprint(&fmt, "%#p %lud", v, l); break; case UNMOUNT: @@ -232,7 +232,7 @@ fmtprint(&fmt, "%d %d ", i[0], i[1]); a = va_arg(list, char*); fmtuserstring(&fmt, a, " "); - l = va_arg(list, unsigned long); + l = va_arg(list, ulong); fmtprint(&fmt, "%lud", l); break; case WSTAT: @@ -243,7 +243,7 @@ case ERRSTR: case AWAIT: a = va_arg(list, char*); - l = va_arg(list, unsigned long); + l = va_arg(list, ulong); fmtprint(&fmt, "%#p %lud", a, l); break; case MOUNT: @@ -339,7 +339,7 @@ break; case ERRSTR: a = va_arg(list, char*); - l = va_arg(list, unsigned long); + l = va_arg(list, ulong); if(ar0->i > 0){ fmtuserstring(&fmt, a, " "); fmtprint(&fmt, "%lud = %d", l, ar0->i); @@ -353,7 +353,7 @@ i = va_arg(list, int); USED(i); a = va_arg(list, char*); - l = va_arg(list, unsigned long); + l = va_arg(list, ulong); if(ar0->i > 0){ fmtuserstring(&fmt, a, " "); fmtprint(&fmt, "%lud = %d", l, ar0->i); --- /sys/src/nix/port/sysproc.c Mon Jun 16 19:41:42 2014 +++ /sys/src/nix/port/sysproc.c Mon Jun 16 19:41:42 2014 @@ -105,7 +105,7 @@ nexterror(); } for(i = 0; i < NSEG; i++) - if(up->seg[i]) + if(up->seg[i] != nil) p->seg[i] = dupseg(up->seg, i, n); qunlock(&p->seglock); poperror(); @@ -638,14 +638,13 @@ void sysalarm(Ar0* ar0, va_list list) { - unsigned long ms; + ulong ms; /* - * long alarm(unsigned long millisecs); + * long alarm(ulong millisecs); * Odd argument type... */ - ms = va_arg(list, unsigned long); - + ms = va_arg(list, ulong); ar0->l = procalarm(ms); } --- /sys/src/nix/port/tod.c Mon Jun 16 19:41:42 2014 +++ /sys/src/nix/port/tod.c Mon Jun 16 19:41:42 2014 @@ -247,7 +247,7 @@ * convert milliseconds to fast ticks */ uvlong -ms2fastticks(ulong ms) +ms2fastticks(uint ms) { if(!tod.init) todinit();