1458db832SDavid du Colombier #include "../port/portfns.h" 2458db832SDavid du Colombier 35d9de2d3SDavid du Colombier ulong cankaddr(ulong); 4458db832SDavid du Colombier int cistrcmp(char*, char*); 5458db832SDavid du Colombier int cistrncmp(char*, char*, int); 6458db832SDavid du Colombier void clockinit(void); 7458db832SDavid du Colombier void clockintr(Ureg*); 85d9de2d3SDavid du Colombier int cmpswap(long*, long, long); 9458db832SDavid du Colombier void cpuidprint(void); 10e288d156SDavid du Colombier void cycles(uvlong*); 11458db832SDavid du Colombier void dbgputc(int c); 12458db832SDavid du Colombier void dcacheenb(void); 13458db832SDavid du Colombier void dcflush(void*, ulong); 14458db832SDavid du Colombier void dczap(void*, ulong); 15458db832SDavid du Colombier void delay(int); 16458db832SDavid du Colombier void delayloopinit(void); 17458db832SDavid du Colombier void dmiss(void); 18458db832SDavid du Colombier void dumpregs(Ureg*); 19458db832SDavid du Colombier void eieio(void); 20458db832SDavid du Colombier void faultpower(Ureg*, ulong addr, int read); 21458db832SDavid du Colombier void flashprogpower(int); 22458db832SDavid du Colombier void fpgareset(void); 23458db832SDavid du Colombier void fprestore(FPsave*); 24458db832SDavid du Colombier void fpsave(FPsave*); 25458db832SDavid du Colombier void fptrap(Ureg*); 26458db832SDavid du Colombier char* getconf(char*); 27458db832SDavid du Colombier ulong getdar(void); 28458db832SDavid du Colombier ulong getdcmp(void); 29458db832SDavid du Colombier ulong getdec(void); 30458db832SDavid du Colombier ulong getdmiss(void); 31458db832SDavid du Colombier ulong getdsisr(void); 32458db832SDavid du Colombier ulong gethash1(void); 33458db832SDavid du Colombier ulong gethash2(void); 34458db832SDavid du Colombier ulong gethid0(void); 35458db832SDavid du Colombier ulong gethid1(void); 36458db832SDavid du Colombier ulong geticmp(void); 37458db832SDavid du Colombier ulong geticmp(void); 38458db832SDavid du Colombier ulong getimiss(void); 39458db832SDavid du Colombier ulong getmsr(void); 40458db832SDavid du Colombier ulong getpvr(void); 41458db832SDavid du Colombier ulong getrpa(void); 42458db832SDavid du Colombier ulong getsdr1(void); 43458db832SDavid du Colombier ulong getsr(int); 44458db832SDavid du Colombier ulong getsrr1(void); 45458db832SDavid du Colombier void gotopc(ulong); 46458db832SDavid du Colombier void hwintrinit(void); 47458db832SDavid du Colombier void icacheenb(void); 48458db832SDavid du Colombier void icflush(void*, ulong); 49458db832SDavid du Colombier void idle(void); 50458db832SDavid du Colombier #define idlehands() /* nothing to do in the runproc */ 51458db832SDavid du Colombier void imiss(void); 52458db832SDavid du Colombier int inb(int); 53458db832SDavid du Colombier void intr(Ureg*); 54458db832SDavid du Colombier void intrenable(int, void (*)(Ureg*, void*), void*, char*); 55458db832SDavid du Colombier void intrdisable(int, void (*)(Ureg*, void*), void*, char*); 56458db832SDavid du Colombier int ioalloc(int, int, int, char*); 57458db832SDavid du Colombier void iofree(int); 58458db832SDavid du Colombier int iprint(char*, ...); 59458db832SDavid du Colombier int isaconfig(char*, int, ISAConf*); 60458db832SDavid du Colombier void kfpinit(void); 61458db832SDavid du Colombier #define kmapinval() 62458db832SDavid du Colombier void links(void); 63458db832SDavid du Colombier void vectordisable(Vctl *); 64458db832SDavid du Colombier int vectorenable(Vctl *); 65458db832SDavid du Colombier void intack(void); 66458db832SDavid du Colombier void intend(int); 67458db832SDavid du Colombier int intvec(void); 68458db832SDavid du Colombier void l2disable(void); 69458db832SDavid du Colombier void mmuinit(void); 70458db832SDavid du Colombier void mmusweep(void*); 71458db832SDavid du Colombier int newmmupid(void); 72458db832SDavid du Colombier void outb(int, int); 73458db832SDavid du Colombier int pcicfgr16(Pcidev*, int); 74458db832SDavid du Colombier int pcicfgr32(Pcidev*, int); 75458db832SDavid du Colombier int pcicfgr8(Pcidev*, int); 76458db832SDavid du Colombier void pcicfgw16(Pcidev*, int, int); 77458db832SDavid du Colombier void pcicfgw32(Pcidev*, int, int); 78458db832SDavid du Colombier void pcicfgw8(Pcidev*, int, int); 79458db832SDavid du Colombier void procsave(Proc*); 80458db832SDavid du Colombier void procsetup(Proc*); 81458db832SDavid du Colombier void putdcmp(ulong); 82458db832SDavid du Colombier void putdec(ulong); 83458db832SDavid du Colombier void puthash1(ulong); 84458db832SDavid du Colombier void puthash2(ulong); 85458db832SDavid du Colombier void puthid0(ulong); 86458db832SDavid du Colombier void puthid2(ulong); 87458db832SDavid du Colombier void puticmp(ulong); 88458db832SDavid du Colombier void puticmp(ulong); 89458db832SDavid du Colombier void putmsr(ulong); 90458db832SDavid du Colombier void putrpa(ulong); 91458db832SDavid du Colombier void putsdr1(ulong); 92458db832SDavid du Colombier void putsdr1(ulong); 93458db832SDavid du Colombier void putsr(int, ulong); 94458db832SDavid du Colombier void putsrr1(ulong); 95458db832SDavid du Colombier void sethvec(int, void (*)(void)); 96458db832SDavid du Colombier void setmvec(int, void (*)(void), void (*)(void)); 97458db832SDavid du Colombier void sharedseginit(void); 98458db832SDavid du Colombier void console(void); 99458db832SDavid du Colombier void sync(void); 100458db832SDavid du Colombier int tas(void*); 101458db832SDavid du Colombier void timeradd(Timer *); 102458db832SDavid du Colombier void timerdel(Timer *); 103458db832SDavid du Colombier void timerinit(void); 104458db832SDavid du Colombier void tlbflush(ulong); 105458db832SDavid du Colombier void tlbflushall(void); 106458db832SDavid du Colombier void tlbld(ulong); 107458db832SDavid du Colombier void tlbli(ulong); 108458db832SDavid du Colombier void tlbvec(void); 109458db832SDavid du Colombier void touser(void*); 110458db832SDavid du Colombier void trapinit(void); 111458db832SDavid du Colombier void trapvec(void); 112458db832SDavid du Colombier #define userureg(ur) (((ur)->status & MSR_PR) != 0) 113*fac6300fSDavid du Colombier void validalign(uintptr, unsigned); 114458db832SDavid du Colombier #define waserror() (up->nerrlab++, setlabel(&up->errlab[up->nerrlab-1])) 115458db832SDavid du Colombier #define KADDR(a) ((void*)((ulong)(a)|KZERO)) 116458db832SDavid du Colombier #define PADDR(a) ((((ulong)(a)&0xf0000000)==0xf0000000)?(ulong)(a):((ulong)(a)&~KZERO)) 117458db832SDavid du Colombier #define coherence() eieio() 118458db832SDavid du Colombier Pcidev* pcimatch(Pcidev*, int, int); 119458db832SDavid du Colombier Pcidev* pcimatchtbdf(int); 120e288d156SDavid du Colombier void procrestore(Proc*); 121e288d156SDavid du Colombier 122e288d156SDavid du Colombier #ifdef ucuconf 123e288d156SDavid du Colombier extern ulong getpll(void); 124e288d156SDavid du Colombier extern ulong getl2cr(void); 125e288d156SDavid du Colombier extern void putl2cr(ulong); 126e288d156SDavid du Colombier #endif 127