#include "../port/portfns.h" void led(int); void ci20puts(char*, int); void i8250console(void); ulong cankaddr(ulong); void clock(Ureg*, void*); void clockinit(void); int cmpswap(long*, long, long); void coherence(void); void cycles(uvlong *); void dcflush(void*, ulong); void evenaddr(uintptr); void faultmips(Ureg*, int, int); ulong fcr31(void); void fptrap(Ureg*); char* getconf(char*); ulong getpagemask(void); ulong getrandom(void); ulong getstatus(int); ulong getepc(void); ulong getconfig(int); ulong geterrorepc(void); int gettlbp(ulong, ulong*); ulong gettlbvirt(int); void icflush(void *, ulong); void idlehands(void); void introff(int); void intron(int); void kfault(Ureg*); KMap* kmap(Page*); void kmapinit(void); void kmapinval(void); void kunmap(KMap*); void links(void); ulong prid(void); void procfork(Proc *); void procrestore(Proc *); void procsave(Proc *); void procsetup(Proc *); void purgetlb(int); void puttlbx(int, ulong, ulong, ulong, int); ulong* reg(Ureg*, int); void restfpregs(FPsave*, ulong); void intrenable(int, void(*)(Ureg *, void *), void *); void screeninit(void); void setconfig(int, ulong); void setstatus(int, ulong); void setpagemask(ulong); void setwired(ulong); ulong stlbhash(ulong); void syscall(Ureg*); int tas(ulong*); void tlbinit(void); ulong tlbvirt(void); void touser(void*); #define userureg(ur) ((ur)->status & KUSER) void validalign(uintptr, unsigned); #define PTR2UINT(p) ((uintptr)(p)) #define UINT2PTR(i) ((void*)(i)) #define waserror() (up->nerrlab++, setlabel(&up->errlab[up->nerrlab-1])) #define KADDR(a) ((void*)((ulong)(a)|KSEG0)) #define PADDR(a) ((ulong)(a)&~KSEGM) #define KSEG1ADDR(a) ((void*)((ulong)(a)|KSEG1))