1*74a4d8c2SCharles.Forsyth Alarm* alarm(int, void (*)(Alarm*), void*); 2*74a4d8c2SCharles.Forsyth void alarminit(void); 3*74a4d8c2SCharles.Forsyth void archbacklight(int); 4*74a4d8c2SCharles.Forsyth char* archconfig(void); 5*74a4d8c2SCharles.Forsyth void archdisableuart(int); 6*74a4d8c2SCharles.Forsyth void archenableuart(int, int); 7*74a4d8c2SCharles.Forsyth void archenableusb(int); 8*74a4d8c2SCharles.Forsyth void archetherdisable(int); 9*74a4d8c2SCharles.Forsyth int archetherenable(int, int*, int*); 10*74a4d8c2SCharles.Forsyth int archflashreset(char*, void**, long*); 11*74a4d8c2SCharles.Forsyth void archinit(void); 12*74a4d8c2SCharles.Forsyth int archoptionsw(void); 13*74a4d8c2SCharles.Forsyth int bootp(int, char*); 14*74a4d8c2SCharles.Forsyth void cancel(Alarm*); 15*74a4d8c2SCharles.Forsyth void checkalarms(void); 16*74a4d8c2SCharles.Forsyth void clockinit(void); 17*74a4d8c2SCharles.Forsyth void clockintr(Ureg*, void*); 18*74a4d8c2SCharles.Forsyth void consinit(void); 19*74a4d8c2SCharles.Forsyth void cpminit(void); 20*74a4d8c2SCharles.Forsyth void cpuidprint(void); 21*74a4d8c2SCharles.Forsyth #define dcflush(a,b) 22*74a4d8c2SCharles.Forsyth void delay(int); 23*74a4d8c2SCharles.Forsyth void eieio(void); 24*74a4d8c2SCharles.Forsyth uchar* etheraddr(int); 25*74a4d8c2SCharles.Forsyth int etherinit(void); 26*74a4d8c2SCharles.Forsyth int etherrxpkt(int, Etherpkt*, int); 27*74a4d8c2SCharles.Forsyth int ethertxpkt(int, Etherpkt*, int, int); 28*74a4d8c2SCharles.Forsyth void exception(void); 29*74a4d8c2SCharles.Forsyth int flashboot(int); 30*74a4d8c2SCharles.Forsyth int flashbootable(int); 31*74a4d8c2SCharles.Forsyth char* flashconfig(int); 32*74a4d8c2SCharles.Forsyth int flashinit(void); 33*74a4d8c2SCharles.Forsyth void free(void*); 34*74a4d8c2SCharles.Forsyth void freeb(Block*); 35*74a4d8c2SCharles.Forsyth int getcfields(char*, char**, int, char*); 36*74a4d8c2SCharles.Forsyth char* getconf(char*); 37*74a4d8c2SCharles.Forsyth ulong getdec(void); 38*74a4d8c2SCharles.Forsyth ulong gethid0(void); 39*74a4d8c2SCharles.Forsyth ulong getimmr(void); 40*74a4d8c2SCharles.Forsyth ulong getmsr(void); 41*74a4d8c2SCharles.Forsyth ulong getpvr(void); 42*74a4d8c2SCharles.Forsyth int getstr(char*, char*, int, char*); 43*74a4d8c2SCharles.Forsyth ulong gettbl(void); 44*74a4d8c2SCharles.Forsyth ulong gettbu(void); 45*74a4d8c2SCharles.Forsyth int hardinit(void); 46*74a4d8c2SCharles.Forsyth long hardread(int, void*, long); 47*74a4d8c2SCharles.Forsyth long hardseek(int, long); 48*74a4d8c2SCharles.Forsyth long hardwrite(int, void*, long); 49*74a4d8c2SCharles.Forsyth long i2crecv(int, void*, long); 50*74a4d8c2SCharles.Forsyth long i2csend(int, void*, long); 51*74a4d8c2SCharles.Forsyth void i2csetup(void); 52*74a4d8c2SCharles.Forsyth void* ialloc(ulong, int); 53*74a4d8c2SCharles.Forsyth Block* iallocb(int); 54*74a4d8c2SCharles.Forsyth void idle(void); 55*74a4d8c2SCharles.Forsyth int isaconfig(char*, int, ISAConf*); 56*74a4d8c2SCharles.Forsyth int issqueezed(uchar*); 57*74a4d8c2SCharles.Forsyth void kbdchar(Queue*, int); 58*74a4d8c2SCharles.Forsyth void kbdinit(void); 59*74a4d8c2SCharles.Forsyth void kbdreset(void); 60*74a4d8c2SCharles.Forsyth void machinit(void); 61*74a4d8c2SCharles.Forsyth void* malloc(ulong); 62*74a4d8c2SCharles.Forsyth ulong mapalloc(RMap*, ulong, int, int); 63*74a4d8c2SCharles.Forsyth void mapfree(RMap*, ulong, int); 64*74a4d8c2SCharles.Forsyth void mapinit(RMap*, Map*, int); 65*74a4d8c2SCharles.Forsyth void meminit(void); 66*74a4d8c2SCharles.Forsyth void microdelay(int); 67*74a4d8c2SCharles.Forsyth void mmuinit(void); 68*74a4d8c2SCharles.Forsyth int optionsw(void); 69*74a4d8c2SCharles.Forsyth void panic(char*, ...); 70*74a4d8c2SCharles.Forsyth int parseether(uchar*, char*); 71*74a4d8c2SCharles.Forsyth int plan9boot(int, long (*)(int, long), long (*)(int, void*, long)); 72*74a4d8c2SCharles.Forsyth void putdec(ulong); 73*74a4d8c2SCharles.Forsyth void puthid0(ulong); 74*74a4d8c2SCharles.Forsyth void putmsr(ulong); 75*74a4d8c2SCharles.Forsyth int qbgetc(Queue*); 76*74a4d8c2SCharles.Forsyth void qbputc(Queue*, int); 77*74a4d8c2SCharles.Forsyth void qbwrite(Queue*, Block*); 78*74a4d8c2SCharles.Forsyth Block* qget(Queue*); 79*74a4d8c2SCharles.Forsyth long qlen(Queue*); 80*74a4d8c2SCharles.Forsyth Queue* qopen(int, int, void (*)(void*), void*); 81*74a4d8c2SCharles.Forsyth #define qpass qbwrite 82*74a4d8c2SCharles.Forsyth void scc2stop(void); 83*74a4d8c2SCharles.Forsyth void sccnmsi(int, int, int); 84*74a4d8c2SCharles.Forsyth void sched(void); 85*74a4d8c2SCharles.Forsyth void screeninit(void); 86*74a4d8c2SCharles.Forsyth void screenputs(char*, int); 87*74a4d8c2SCharles.Forsyth void sdraminit(ulong); 88*74a4d8c2SCharles.Forsyth Partition* sethardpart(int, char*); 89*74a4d8c2SCharles.Forsyth Partition* setscsipart(int, char*); 90*74a4d8c2SCharles.Forsyth void setvec(int, void (*)(Ureg*, void*), void*); 91*74a4d8c2SCharles.Forsyth int splhi(void); 92*74a4d8c2SCharles.Forsyth int spllo(void); 93*74a4d8c2SCharles.Forsyth void splx(int); 94*74a4d8c2SCharles.Forsyth void trapinit(void); 95*74a4d8c2SCharles.Forsyth void uartputs(char*, int); 96*74a4d8c2SCharles.Forsyth void uartsetboot(void (*f)(uchar*, int)); 97*74a4d8c2SCharles.Forsyth void uartspecial(int, int, Queue**, Queue**, void(*)(Queue*,int)); 98*74a4d8c2SCharles.Forsyth void uartwait(void); 99*74a4d8c2SCharles.Forsyth long unsqueezef(Block*, ulong*); 100*74a4d8c2SCharles.Forsyth 101*74a4d8c2SCharles.Forsyth #define GSHORT(p) (((p)[1]<<8)|(p)[0]) 102*74a4d8c2SCharles.Forsyth #define GLONG(p) ((GSHORT(p+2)<<16)|GSHORT(p)) 103*74a4d8c2SCharles.Forsyth #define GLSHORT(p) (((p)[0]<<8)|(p)[1]) 104*74a4d8c2SCharles.Forsyth #define GLLONG(p) ((GLSHORT(p)<<16)|GLSHORT(p+2)) 105*74a4d8c2SCharles.Forsyth 106*74a4d8c2SCharles.Forsyth #define KADDR(a) ((void*)((ulong)(a)|KZERO)) 107*74a4d8c2SCharles.Forsyth #define PADDR(a) ((((ulong)(a)&KSEGM)!=KSEG0)?(ulong)(a):((ulong)(a)&~KZERO)) 108*74a4d8c2SCharles.Forsyth 109*74a4d8c2SCharles.Forsyth /* IBM bit field order */ 110*74a4d8c2SCharles.Forsyth #define IBIT(b) ((ulong)1<<(31-(b))) 111*74a4d8c2SCharles.Forsyth #define SIBIT(n) ((ushort)1<<(15-(n))) 112*74a4d8c2SCharles.Forsyth 113*74a4d8c2SCharles.Forsyth #define IOREGS(x, T) ((T*)((char*)m->iomem+(x))) 114*74a4d8c2SCharles.Forsyth 115*74a4d8c2SCharles.Forsyth int uartinit(void); 116*74a4d8c2SCharles.Forsyth Partition* setuartpart(int, char*); 117*74a4d8c2SCharles.Forsyth long uartread(int, void*, long); 118*74a4d8c2SCharles.Forsyth long uartseek(int, long); 119