1*74a4d8c2SCharles.Forsyth #include "../port/portfns.h" 2*74a4d8c2SCharles.Forsyth 3*74a4d8c2SCharles.Forsyth void addpower(Power*); 4*74a4d8c2SCharles.Forsyth void archbacklight(int); 5*74a4d8c2SCharles.Forsyth void archconfinit(void); 6*74a4d8c2SCharles.Forsyth void archdisableuart(int); 7*74a4d8c2SCharles.Forsyth void archdisableusb(void); 8*74a4d8c2SCharles.Forsyth void archdisablevideo(void); 9*74a4d8c2SCharles.Forsyth void archenableuart(int, int); 10*74a4d8c2SCharles.Forsyth void archenableusb(int, int); 11*74a4d8c2SCharles.Forsyth void archenablevideo(void); 12*74a4d8c2SCharles.Forsyth void archkbdinit(void); 13*74a4d8c2SCharles.Forsyth void archresetvideo(void); 14*74a4d8c2SCharles.Forsyth int archetherenable(int, int*, int*, int, int); 15*74a4d8c2SCharles.Forsyth void archinit(void); 16*74a4d8c2SCharles.Forsyth int archoptionsw(void); 17*74a4d8c2SCharles.Forsyth void archreboot(void); 18*74a4d8c2SCharles.Forsyth void archsetirxcvr(int); 19*74a4d8c2SCharles.Forsyth uchar* archvideobuffer(long); 20*74a4d8c2SCharles.Forsyth ulong baudgen(int, int); 21*74a4d8c2SCharles.Forsyth int brgalloc(void); 22*74a4d8c2SCharles.Forsyth void brgfree(int); 23*74a4d8c2SCharles.Forsyth int cistrcmp(char*, char*); 24*74a4d8c2SCharles.Forsyth int cistrncmp(char*, char*, int); 25*74a4d8c2SCharles.Forsyth void clockcheck(void); 26*74a4d8c2SCharles.Forsyth void clockinit(void); 27*74a4d8c2SCharles.Forsyth void clockintr(Ureg*); 28*74a4d8c2SCharles.Forsyth void clrfptrap(void); 29*74a4d8c2SCharles.Forsyth #define coherence() /* nothing needed for uniprocessor */ 30*74a4d8c2SCharles.Forsyth void cpminit(void); 31*74a4d8c2SCharles.Forsyth void cpuidprint(void); 32*74a4d8c2SCharles.Forsyth void dcflush(void*, ulong); 33*74a4d8c2SCharles.Forsyth void dcinval(void*, ulong); 34*74a4d8c2SCharles.Forsyth void delay(int); 35*74a4d8c2SCharles.Forsyth void dtlbmiss(void); 36*74a4d8c2SCharles.Forsyth void dumplongs(char*, ulong*, int); 37*74a4d8c2SCharles.Forsyth void dumpregs(Ureg*); 38*74a4d8c2SCharles.Forsyth void eieio(void); 39*74a4d8c2SCharles.Forsyth void faultpower(Ureg*); 40*74a4d8c2SCharles.Forsyth void firmware(int); 41*74a4d8c2SCharles.Forsyth void fpinit(void); 42*74a4d8c2SCharles.Forsyth int fpipower(Ureg*); 43*74a4d8c2SCharles.Forsyth void fpoff(void); 44*74a4d8c2SCharles.Forsyth void fprestore(FPU*); 45*74a4d8c2SCharles.Forsyth void fpsave(FPU*); 46*74a4d8c2SCharles.Forsyth ulong fpstatus(void); 47*74a4d8c2SCharles.Forsyth char* getconf(char*); 48*74a4d8c2SCharles.Forsyth ulong getdar(void); 49*74a4d8c2SCharles.Forsyth ulong getdec(void); 50*74a4d8c2SCharles.Forsyth ulong getdepn(void); 51*74a4d8c2SCharles.Forsyth ulong getdsisr(void); 52*74a4d8c2SCharles.Forsyth ulong getimmr(void); 53*74a4d8c2SCharles.Forsyth ulong getmsr(void); 54*74a4d8c2SCharles.Forsyth ulong getpvr(void); 55*74a4d8c2SCharles.Forsyth ulong gettbl(void); 56*74a4d8c2SCharles.Forsyth ulong gettbu(void); 57*74a4d8c2SCharles.Forsyth void gotopc(ulong); 58*74a4d8c2SCharles.Forsyth void icflush(void*, ulong); 59*74a4d8c2SCharles.Forsyth void idle(void); 60*74a4d8c2SCharles.Forsyth #define idlehands() /* nothing to do in the runproc */ 61*74a4d8c2SCharles.Forsyth void intr(Ureg*); 62*74a4d8c2SCharles.Forsyth void intrenable(int, void (*)(Ureg*, void*), void*, int, char*); 63*74a4d8c2SCharles.Forsyth void intrdisable(int, void (*)(Ureg*, void*), void*, int, char*); 64*74a4d8c2SCharles.Forsyth int intrstats(char*, int); 65*74a4d8c2SCharles.Forsyth void intrvec(void); 66*74a4d8c2SCharles.Forsyth int isaconfig(char*, int, ISAConf*); 67*74a4d8c2SCharles.Forsyth int isvalid_va(void*); 68*74a4d8c2SCharles.Forsyth void itlbmiss(void); 69*74a4d8c2SCharles.Forsyth void kbdinit(void); 70*74a4d8c2SCharles.Forsyth void kbdreset(void); 71*74a4d8c2SCharles.Forsyth void lcdpanel(int); 72*74a4d8c2SCharles.Forsyth void links(void); 73*74a4d8c2SCharles.Forsyth void mapfree(RMap*, ulong, int); 74*74a4d8c2SCharles.Forsyth void mapinit(RMap*, Map*, int); 75*74a4d8c2SCharles.Forsyth void mathinit(void); 76*74a4d8c2SCharles.Forsyth void mmuinit(void); 77*74a4d8c2SCharles.Forsyth ulong* mmuwalk(ulong*, ulong, int); 78*74a4d8c2SCharles.Forsyth void pcmenable(void); 79*74a4d8c2SCharles.Forsyth void pcmintrenable(int, void (*)(Ureg*, void*), void*); 80*74a4d8c2SCharles.Forsyth int pcmpin(int slot, int type); 81*74a4d8c2SCharles.Forsyth void pcmpower(int, int); 82*74a4d8c2SCharles.Forsyth int pcmpowered(int); 83*74a4d8c2SCharles.Forsyth void pcmsetvcc(int, int); 84*74a4d8c2SCharles.Forsyth void pcmsetvpp(int, int); 85*74a4d8c2SCharles.Forsyth int pcmslotsavail(int); 86*74a4d8c2SCharles.Forsyth void procsave(Proc*); 87*74a4d8c2SCharles.Forsyth void procsetup(Proc*); 88*74a4d8c2SCharles.Forsyth void putdec(ulong); 89*74a4d8c2SCharles.Forsyth void putmsr(ulong); 90*74a4d8c2SCharles.Forsyth void puttwb(ulong); 91*74a4d8c2SCharles.Forsyth ulong rmapalloc(RMap*, ulong, int, int); 92*74a4d8c2SCharles.Forsyth void screeninit(void); 93*74a4d8c2SCharles.Forsyth int screenprint(char*, ...); /* debugging */ 94*74a4d8c2SCharles.Forsyth void screenputs(char*, int); 95*74a4d8c2SCharles.Forsyth int segflush(void*, ulong); 96*74a4d8c2SCharles.Forsyth void setpanic(void); 97*74a4d8c2SCharles.Forsyth long spioutin(void*, long, void*); 98*74a4d8c2SCharles.Forsyth void spireset(void); 99*74a4d8c2SCharles.Forsyth ulong _tas(ulong*); 100*74a4d8c2SCharles.Forsyth void trapinit(void); 101*74a4d8c2SCharles.Forsyth void trapvec(void); 102*74a4d8c2SCharles.Forsyth void uartinstall(void); 103*74a4d8c2SCharles.Forsyth void uartspecial(int, int, Queue**, Queue**, int (*)(Queue*, int)); 104*74a4d8c2SCharles.Forsyth void uartwait(void); /* debugging */ 105*74a4d8c2SCharles.Forsyth void videoreset(void); 106*74a4d8c2SCharles.Forsyth void videotest(void); 107*74a4d8c2SCharles.Forsyth void wbflush(void); 108*74a4d8c2SCharles.Forsyth 109*74a4d8c2SCharles.Forsyth #define waserror() (up->nerrlab++, setlabel(&up->errlab[up->nerrlab-1])) 110*74a4d8c2SCharles.Forsyth ulong getcallerpc(void*); 111*74a4d8c2SCharles.Forsyth 112*74a4d8c2SCharles.Forsyth #define KADDR(a) ((void*)((ulong)(a)|KZERO)) 113*74a4d8c2SCharles.Forsyth #define PADDR(a) ((((ulong)(a)&KSEGM)!=KSEG0)?(ulong)(a):((ulong)(a)&~KZERO)) 114*74a4d8c2SCharles.Forsyth 115*74a4d8c2SCharles.Forsyth /* IBM bit field order */ 116*74a4d8c2SCharles.Forsyth #define IBIT(b) ((ulong)1<<(31-(b))) 117*74a4d8c2SCharles.Forsyth #define SIBIT(n) ((ushort)1<<(15-(n))) 118