#include "../port/portfns.h"
void addclock0link(void (*)(void));
void arginit(void);
int busprobe(ulong);
int cistrcmp(char*, char*);
void cleancache(void);
void clearmmucache(void);
void clock(Ureg*);
void clockinit(void);
#define coherence()
void dcflush(void*, ulong);
void dcinvalidate(void*, ulong);
void dmaend(int);
long dmasetup(int, void*, long, int);
void evenaddr(ulong);
void faultmips(Ureg*, int, int);
ulong fcr31(void);
void firmware(int);
#define flushpage(s) icflush((void*)(s), BY2PG)
void fptrap(Ureg*);
ulong getstatus(void);
void gettlb(int, ulong*);
int gettlbp(ulong, ulong*);
ulong gettlbvirt(int);
void icflush(void *, ulong);
#define idlehands()
void intr(Ureg*);
void ioinit(int);
int iprint(char*, ...);
int isaconfig(char*, int, ISAConf*);
int kbdinit(void);
void kbdintr(void);
void kfault(Ureg*);
KMap* kmap(Page*);
void kmapinit(void);
void kmapinval(void);
void kunmap(KMap*);
void links(void);
void mmunewpage(Page*);
void mouseintr(void);
int newtlbpid(Proc*);
void ns16552install(void);
#define procrestore(p)
#define procsave(p)
#define procsetup(p) ((p)->fpstate = FPinit)
void purgetlb(int);
Softtlb* putstlb(ulong, ulong);
int puttlb(ulong, ulong, ulong);
void puttlbx(int, ulong, ulong, ulong, int);
void rdbginit(void);
ulong rdcompare(void);
ulong rdcount(void);
ulong* reg(Ureg*, int);
void restfpregs(FPsave*, ulong);
void screeninit(void);
void screenputs(char*, int);
void seteisadma(int, void(*)(void));
long syscall(Ureg*);
int tas(ulong*);
void tlbinit(void);
ulong tlbvirt(void);
void touser(void*);
#define userureg(ur) ((ur)->status & KUSER)
void vecinit(void);
void vector0(void);
void vector100(void);
void vector180(void);
void vmereset(void);
void uartclock(void);
void wbflush(void);
void wrcompare(ulong);
void serialinit(void);
void ns16552special(int, int, Queue**, Queue**, int (*)(Queue*, int));
void ns16552setup(ulong, ulong, char*, int);
void ns16552intr(int);
void etherintr(void);
void iomapinit(void);
void enetaddr(uchar*);
#define waserror() setlabel(&up->errlab[up->nerrlab++])
#define kmapperm(x) kmap(x)
#define KADDR(a) ((void*)((ulong)(a)|KSEG0))
#define KADDR1(a) ((void*)((ulong)(a)|KSEG1))
#define PADDR(a) ((ulong)(a)&~KSEGM)
void audiosbintr(void);
void audiodmaintr(void);
void mpegintr(void);