1*74a4d8c2SCharles.Forsyth void aamloop(int); 2*74a4d8c2SCharles.Forsyth Alarm* alarm(int, void (*)(Alarm*), void*); 3*74a4d8c2SCharles.Forsyth void alarminit(void); 4*74a4d8c2SCharles.Forsyth int bootp(int, char*); 5*74a4d8c2SCharles.Forsyth void cancel(Alarm*); 6*74a4d8c2SCharles.Forsyth void checkalarms(void); 7*74a4d8c2SCharles.Forsyth void clockinit(void); 8*74a4d8c2SCharles.Forsyth void consinit(void); 9*74a4d8c2SCharles.Forsyth void delay(int); 10*74a4d8c2SCharles.Forsyth uchar* etheraddr(int); 11*74a4d8c2SCharles.Forsyth int etherinit(void); 12*74a4d8c2SCharles.Forsyth int etherrxpkt(int, Etherpkt*, int); 13*74a4d8c2SCharles.Forsyth int ethertxpkt(int, Etherpkt*, int, int); 14*74a4d8c2SCharles.Forsyth int flashboot(int); 15*74a4d8c2SCharles.Forsyth int flashbootable(int); 16*74a4d8c2SCharles.Forsyth char* flashconfig(int); 17*74a4d8c2SCharles.Forsyth int flashinit(void); 18*74a4d8c2SCharles.Forsyth char* getconf(char*); 19*74a4d8c2SCharles.Forsyth int getcfields(char*, char**, int, char*); 20*74a4d8c2SCharles.Forsyth int getstr(char*, char*, int, char*); 21*74a4d8c2SCharles.Forsyth int hardinit(void); 22*74a4d8c2SCharles.Forsyth long hardread(int, void*, long); 23*74a4d8c2SCharles.Forsyth long hardseek(int, long); 24*74a4d8c2SCharles.Forsyth long hardwrite(int, void*, long); 25*74a4d8c2SCharles.Forsyth void* ialloc(ulong, int); 26*74a4d8c2SCharles.Forsyth void idle(void); 27*74a4d8c2SCharles.Forsyth int isaconfig(char*, int, ISAConf*); 28*74a4d8c2SCharles.Forsyth int isgzipped(uchar*); 29*74a4d8c2SCharles.Forsyth int issqueezed(uchar*); 30*74a4d8c2SCharles.Forsyth void kbdinit(void); 31*74a4d8c2SCharles.Forsyth void kbdchar(Queue*, int); 32*74a4d8c2SCharles.Forsyth void machinit(void); 33*74a4d8c2SCharles.Forsyth void meminit(void); 34*74a4d8c2SCharles.Forsyth void microdelay(int); 35*74a4d8c2SCharles.Forsyth void mmuinit(void); 36*74a4d8c2SCharles.Forsyth uchar nvramread(int); 37*74a4d8c2SCharles.Forsyth void outb(int, int); 38*74a4d8c2SCharles.Forsyth void outs(int, ushort); 39*74a4d8c2SCharles.Forsyth void outl(int, ulong); 40*74a4d8c2SCharles.Forsyth void outsb(int, void*, int); 41*74a4d8c2SCharles.Forsyth void outss(int, void*, int); 42*74a4d8c2SCharles.Forsyth void outsl(int, void*, int); 43*74a4d8c2SCharles.Forsyth void panic(char*, ...); 44*74a4d8c2SCharles.Forsyth int optionsw(void); 45*74a4d8c2SCharles.Forsyth int plan9boot(int, long (*)(int, long), long (*)(int, void*, long)); 46*74a4d8c2SCharles.Forsyth Partition* setflashpart(int, char*); 47*74a4d8c2SCharles.Forsyth Partition* sethardpart(int, char*); 48*74a4d8c2SCharles.Forsyth Partition* setscsipart(int, char*); 49*74a4d8c2SCharles.Forsyth void setvec(int, void (*)(Ureg*, void*), void*); 50*74a4d8c2SCharles.Forsyth void screeninit(void); 51*74a4d8c2SCharles.Forsyth void screenputs(char*, int); 52*74a4d8c2SCharles.Forsyth void setr13(int, void*); 53*74a4d8c2SCharles.Forsyth int splhi(void); 54*74a4d8c2SCharles.Forsyth int spllo(void); 55*74a4d8c2SCharles.Forsyth void splx(int); 56*74a4d8c2SCharles.Forsyth void trapinit(void); 57*74a4d8c2SCharles.Forsyth void uartspecial(int, int, Queue**, Queue**, void(*)(Queue*,int)); 58*74a4d8c2SCharles.Forsyth void uartputs(char*, int); 59*74a4d8c2SCharles.Forsyth void uartwait(void); 60*74a4d8c2SCharles.Forsyth long unsqueezef(Block*, ulong*); 61*74a4d8c2SCharles.Forsyth 62*74a4d8c2SCharles.Forsyth #define GSHORT(p) (((p)[1]<<8)|(p)[0]) 63*74a4d8c2SCharles.Forsyth #define GLONG(p) ((GSHORT(p+2)<<16)|GSHORT(p)) 64*74a4d8c2SCharles.Forsyth #define GLSHORT(p) (((p)[0]<<8)|(p)[1]) 65*74a4d8c2SCharles.Forsyth #define GLLONG(p) ((GLSHORT(p)<<16)|GLSHORT(p+2)) 66*74a4d8c2SCharles.Forsyth 67*74a4d8c2SCharles.Forsyth #define KADDR(a) ((void*)((ulong)(a)|KZERO)) 68*74a4d8c2SCharles.Forsyth #define PADDR(a) ((ulong)(a)&~KZERO) 69*74a4d8c2SCharles.Forsyth 70*74a4d8c2SCharles.Forsyth 71*74a4d8c2SCharles.Forsyth void mapinit(RMap*, Map*, int); 72*74a4d8c2SCharles.Forsyth void mapfree(RMap*, ulong, int); 73*74a4d8c2SCharles.Forsyth ulong mapalloc(RMap*, ulong, int, int); 74*74a4d8c2SCharles.Forsyth 75*74a4d8c2SCharles.Forsyth /* IBM bit field order */ 76*74a4d8c2SCharles.Forsyth #define IBFEXT(v,a,b) (((ulong)(v)>>(32-(b)-1)) & ~(~0L<<(((b)-(a)+1)))) 77*74a4d8c2SCharles.Forsyth #define IBIT(b) ((ulong)1<<(31-(b))) 78*74a4d8c2SCharles.Forsyth 79*74a4d8c2SCharles.Forsyth #define SIBIT(n) ((ushort)1<<(15-(n))) 80*74a4d8c2SCharles.Forsyth 81*74a4d8c2SCharles.Forsyth void* malloc(ulong); 82*74a4d8c2SCharles.Forsyth void free(void*); 83*74a4d8c2SCharles.Forsyth 84*74a4d8c2SCharles.Forsyth extern Block* iallocb(int); 85*74a4d8c2SCharles.Forsyth extern void freeb(Block*); 86*74a4d8c2SCharles.Forsyth extern Queue* qopen(int, int, void (*)(void*), void*); 87*74a4d8c2SCharles.Forsyth extern Block* qget(Queue*); 88*74a4d8c2SCharles.Forsyth extern void qbwrite(Queue*, Block*); 89*74a4d8c2SCharles.Forsyth extern long qlen(Queue*); 90*74a4d8c2SCharles.Forsyth #define qpass qbwrite 91*74a4d8c2SCharles.Forsyth extern void qbputc(Queue*, int); 92*74a4d8c2SCharles.Forsyth extern int qbgetc(Queue*); 93*74a4d8c2SCharles.Forsyth 94*74a4d8c2SCharles.Forsyth int sio_inb(int); 95*74a4d8c2SCharles.Forsyth void sio_outb(int, int); 96*74a4d8c2SCharles.Forsyth void led(int); 97*74a4d8c2SCharles.Forsyth 98*74a4d8c2SCharles.Forsyth extern void _virqcall(void); 99*74a4d8c2SCharles.Forsyth extern void _vfiqcall(void); 100*74a4d8c2SCharles.Forsyth extern void _vundcall(void); 101*74a4d8c2SCharles.Forsyth extern void _vsvccall(void); 102*74a4d8c2SCharles.Forsyth extern void _vpabcall(void); 103*74a4d8c2SCharles.Forsyth extern void _vdabcall(void); 104*74a4d8c2SCharles.Forsyth 105*74a4d8c2SCharles.Forsyth void flushIcache(void); 106*74a4d8c2SCharles.Forsyth void writeBackDC(void); 107*74a4d8c2SCharles.Forsyth void flushDcache(void); 108*74a4d8c2SCharles.Forsyth void flushIcache(void); 109*74a4d8c2SCharles.Forsyth void drainWBuffer(void); 110*74a4d8c2SCharles.Forsyth 111*74a4d8c2SCharles.Forsyth void pumainit(void); 112