1 #include "../port/portfns.h"
4 Dirtab* addarchfile(char*, int, long(*)(Chan*,void*,long,vlong), long(*)(Chan*,void*,long,vlong));
6 int bios32call(BIOS32ci*, u16int[3]);
7 int bios32ci(BIOS32si*, BIOS32ci*);
8 void bios32close(BIOS32si*);
9 BIOS32si* bios32open(char*);
11 uintptr cankaddr(uintptr);
12 int checksum(void *, int);
13 void clockintr(Ureg*, void*);
14 int (*cmpswap)(long*, long, long);
15 int cmpswap486(long*, long, long);
16 void (*coherence)(void);
17 void cpuid(int, ulong regs[]);
18 int cpuidentify(void);
19 void cpuidprint(void);
20 void (*cycles)(uvlong*);
26 int dmainit(int, int);
30 long dmasetup(int, void*, long, int);
31 #define evenaddr(x) /* x86 doesn't care */
32 void (*fprestore)(FPsave*);
33 void (*fpsave)(FPsave*);
34 void fpsserestore(FPsave*);
35 void fpssesave(FPsave*);
36 void fpx87restore(FPsave*);
37 void fpx87save(FPsave*);
47 int i8042auxcmds(uchar*, int);
48 void i8042auxenable(void (*)(int, int));
49 void i8042reset(void);
50 void i8250console(void);
51 void* i8250alloc(int, int, int);
52 void i8253enable(void);
54 void i8253reset(void);
55 uvlong i8253read(uvlong*);
56 void i8253timerset(uvlong);
57 int i8259disable(int);
58 int i8259enable(Vctl*);
67 void insb(int, void*, int);
69 void inss(int, void*, int);
71 void insl(int, void*, int);
72 int intrdisable(int, void (*)(Ureg *, void *), void*, int, char*);
73 void intrenable(int, void (*)(Ureg*, void*), void*, int, char*);
79 int iounused(int, int);
80 int ioalloc(int, int, int, char*);
81 int ioreserve(int, int, int, char*);
82 int iprint(char*, ...);
83 int isaconfig(char*, int, ISAConf*);
99 void memorysummary(void);
101 #define mmuflushtlb() putcr3(getcr3())
103 uintptr *mmuwalk(uintptr*, uintptr, int, int);
104 int mtrr(uvlong, uvlong, char *);
105 void mtrrclock(void);
106 int mtrrprint(char *, long);
108 uchar nvramread(int);
109 void nvramwrite(int, uchar);
111 void outsb(int, void*, int);
112 void outs(int, ushort);
113 void outss(int, void*, int);
114 void outl(int, ulong);
115 void outsl(int, void*, int);
116 uintptr paddr(void*);
117 ulong pcibarsize(Pcidev*, int);
118 void pcibussize(Pcidev*, ulong*, ulong*);
119 int pcicfgr8(Pcidev*, int);
120 int pcicfgr16(Pcidev*, int);
121 int pcicfgr32(Pcidev*, int);
122 void pcicfgw8(Pcidev*, int, int);
123 void pcicfgw16(Pcidev*, int, int);
124 void pcicfgw32(Pcidev*, int, int);
125 void pciclrbme(Pcidev*);
126 void pciclrioe(Pcidev*);
127 void pciclrmwi(Pcidev*);
128 int pcigetpms(Pcidev*);
129 void pcihinv(Pcidev*);
130 uchar pciipin(Pcidev*, uchar);
131 Pcidev* pcimatch(Pcidev*, int, int);
132 Pcidev* pcimatchtbdf(int);
133 int pcicap(Pcidev*, int);
134 int pcihtcap(Pcidev*, int);
136 int pciscan(int, Pcidev**);
137 void pcisetbme(Pcidev*);
138 void pcisetioe(Pcidev*);
139 void pcisetmwi(Pcidev*);
140 int pcisetpms(Pcidev*, int);
141 void pcmcisread(PCMslot*);
142 int pcmcistuple(int, int, int, void*, int);
143 PCMmap* pcmmap(int, ulong, int, int);
144 int pcmspecial(char*, ISAConf*);
145 int (*_pcmspecial)(char *, ISAConf *);
146 void pcmspecialclose(int);
147 void (*_pcmspecialclose)(int);
148 void pcmunmap(int, PCMmap*);
149 void pmap(uintptr *, uintptr, uintptr, vlong);
150 void procrestore(Proc*);
151 void procsave(Proc*);
152 void procsetup(Proc*);
153 void procfork(Proc*);
158 int rdmsr(int, vlong*);
159 void realmode(Ureg*);
160 void screeninit(void);
161 void (*screenputs)(char*, int);
162 void* sigsearch(char*);
163 void syncclock(void);
164 void syscallentry(void);
166 void trapenable(int, void (*)(Ureg*, void*), void*, char*);
168 void trapinit0(void);
170 uvlong tscticks(uvlong*);
171 uintptr umbmalloc(uintptr, int, int);
172 void umbfree(uintptr, int);
173 uintptr umbrwmalloc(uintptr, int, int);
174 void umbrwfree(uintptr, int);
175 uintptr upaalloc(int, int);
176 void upafree(uintptr, int);
177 void upareserve(uintptr, int);
178 void vectortable(void);
179 void* vmap(uintptr, int);
180 int vmapsync(uintptr);
181 void vunmap(void*, int);
183 int wrmsr(int, vlong);
184 int xchgw(ushort*, int);
185 void rdrandbuf(void*, ulong);
187 #define userureg(ur) (((ur)->cs & 3) == 3)
188 #define waserror() (up->nerrlab++, setlabel(&up->errlab[up->nerrlab-1]))
189 #define KADDR(a) kaddr(a)
190 #define PADDR(a) paddr((void*)(a))