2 void loadkernel(char *);
4 void rpoke(char *, uvlong, int);
5 #define rset(a,b) rpoke(a,b,0)
6 void rsetsz(char *, uvlong, int);
7 uvlong rgetsz(char *, int);
8 void processexit(char *);
10 void rtcadvance(void);
11 void settimer(vlong targ);
12 void vmerror(char *, ...);
13 #define vmdebug vmerror
15 void registermmio(uvlong, uvlong, uvlong (*)(int, uvlong, uvlong));
16 void irqline(int, int);
18 void postexc(char *, vlong);
20 void uartinit(int, char *);
21 void sendnotif(void (*)(void *), void *);
22 PCIDev *mkpcidev(u32int, u32int, u32int, int);
23 PCIBar *mkpcibar(PCIDev *, u8int, u32int, u32int, void *, void *);
24 PCICap *mkpcicap(PCIDev *, u8int, u32int (*)(PCICap *, u8int), void(*)(PCICap *, u8int, u32int, u32int));
25 u32int allocbdf(void);
26 Region *regptr(u64int);
27 void *gptr(u64int, u64int);
30 uintptr gavail(void *);
31 void pciirq(PCIDev *, int);
32 u32int iowhine(int, u16int, u32int, int, void *);
38 void i8042kick(void *);
39 #define GET8(p,n) (*((u8int*)(p)+(n)))
40 #define GET16(p,n) (*(u16int*)((u8int*)(p)+(n)))
41 #define GET32(p,n) (*(u32int*)((u8int*)(p)+(n)))
42 #define GET64(p,n) (*(u64int*)((u8int*)(p)+(n)))
43 #define PUT8(p,n,v) (*((u8int*)(p)+(n)) = (v))
44 #define PUT16(p,n,v) (*(u16int*)((u8int*)(p)+(n)) = (v))
45 #define PUT32(p,n,v) (*(u32int*)((u8int*)(p)+(n)) = (v))
46 #define PUT64(p,n,v) (*(u64int*)((u8int*)(p)+(n)) = (v))
47 u32int roundpow2(u32int);
48 u32int vgagetpal(u8int);
49 void vgasetpal(u8int, u32int);
50 uintptr vmemread(void *, uintptr, uintptr);
51 uintptr vmemwrite(void *, uintptr, uintptr);
52 int x86access(int, uintptr, int, uvlong*, int, int, TLB *);
53 u32int io(int, u16int, u32int, int);