1 #include "../port/portfns.h"
4 Dirtab* addarchfile(char*, int, long(*)(Chan*,void*,long,vlong), long(*)(Chan*,void*,long,vlong));
7 int bios32call(BIOS32ci*, u16int[3]);
8 int bios32ci(BIOS32si*, BIOS32ci*);
9 void bios32close(BIOS32si*);
10 BIOS32si* bios32open(char*);
11 void bootargsinit(void);
12 ulong cankaddr(ulong);
13 int checksum(void *, int);
14 void clockintr(Ureg*, void*);
15 int (*cmpswap)(long*, long, long);
16 int cmpswap486(long*, long, long);
17 void (*coherence)(void);
18 void cpuid(int, ulong regs[]);
19 int cpuidentify(void);
20 void cpuidprint(void);
21 void (*cycles)(uvlong*);
24 #define dmaflush(clean, addr, len)
28 int dmainit(int, int);
32 long dmasetup(int, void*, long, int);
33 void dumpmcregs(void);
34 int ecinit(int cmdport, int dataport);
35 int ecread(uchar addr);
36 int ecwrite(uchar addr, uchar val);
37 #define evenaddr(x) /* x86 doesn't care */
41 void (*fprestore)(FPsave*);
42 void (*fpsave)(FPsave*);
43 void fpsserestore(FPsave*);
44 void fpssesave(FPsave*);
45 void fpx87restore(FPsave*);
46 void fpx87restore0(FPsave*);
47 void fpx87save(FPsave*);
48 void fpx87save0(FPsave*);
59 void i8042auxenable(void (*)(int, int));
60 void i8042reset(void);
61 void i8250console(void);
62 void* i8250alloc(int, int, int);
63 void i8253enable(void);
65 void i8253reset(void);
66 uvlong i8253read(uvlong*);
67 void i8253timerset(uvlong);
68 int i8259disable(int);
69 int i8259enable(Vctl*);
78 void insb(int, void*, int);
80 void inss(int, void*, int);
82 void insl(int, void*, int);
83 void intrdisable(int, void (*)(Ureg *, void *), void*, int, char*);
84 void intrenable(int, void (*)(Ureg*, void*), void*, int, char*);
90 int iounused(int, int);
91 int ioalloc(int, int, int, char*);
92 int ioreserve(int, int, int, char*);
93 int iprint(char*, ...);
94 int isaconfig(char*, int, ISAConf*);
100 void lidt(ushort[3]);
103 void mach0init(void);
109 void memreserve(uintptr, uintptr);
111 #define mmuflushtlb(pdb) putcr3(pdb)
113 ulong* mmuwalk(ulong*, ulong, int, int);
114 char* mtrr(uvlong, uvlong, char *);
115 void mtrrclock(void);
116 int mtrrprint(char *, long);
118 uchar nvramread(int);
119 void nvramwrite(int, uchar);
121 void outsb(int, void*, int);
122 void outs(int, ushort);
123 void outss(int, void*, int);
124 void outl(int, ulong);
125 void outsl(int, void*, int);
127 void patwc(void*, int);
128 ulong pcibarsize(Pcidev*, int);
129 void pcibussize(Pcidev*, ulong*, ulong*);
130 int pcicfgr8(Pcidev*, int);
131 int pcicfgr16(Pcidev*, int);
132 int pcicfgr32(Pcidev*, int);
133 void pcicfgw8(Pcidev*, int, int);
134 void pcicfgw16(Pcidev*, int, int);
135 void pcicfgw32(Pcidev*, int, int);
136 void pciclrbme(Pcidev*);
137 void pciclrioe(Pcidev*);
138 void pciclrmwi(Pcidev*);
139 int pcigetpms(Pcidev*);
140 void pcihinv(Pcidev*);
141 uchar pciipin(Pcidev*, uchar);
142 Pcidev* pcimatch(Pcidev*, int, int);
143 Pcidev* pcimatchtbdf(int);
144 int pcicap(Pcidev*, int);
145 int pcihtcap(Pcidev*, int);
147 int pciscan(int, Pcidev**);
148 void pcisetbme(Pcidev*);
149 void pcisetioe(Pcidev*);
150 void pcisetmwi(Pcidev*);
151 int pcisetpms(Pcidev*, int);
152 void pcienable(Pcidev*);
153 void pcidisable(Pcidev*);
154 void pcmcisread(PCMslot*);
155 int pcmcistuple(int, int, int, void*, int);
156 PCMmap* pcmmap(int, ulong, int, int);
157 int pcmspecial(char*, ISAConf*);
158 int (*_pcmspecial)(char *, ISAConf *);
159 void pcmspecialclose(int);
160 void (*_pcmspecialclose)(int);
161 void pcmunmap(int, PCMmap*);
162 void pmap(ulong, ulong, int);
163 void punmap(ulong, int);
164 void procrestore(Proc*);
165 void procsave(Proc*);
166 void procsetup(Proc*);
167 void procfork(Proc*);
173 void putdr01236(uintptr*);
177 int rdmsr(int, vlong*);
178 void realmode(Ureg*);
179 void* rsdsearch(void);
180 void screeninit(void);
181 void (*screenputs)(char*, int);
182 void setconfenv(void);
183 void* sigsearch(char*, int);
184 void syncclock(void);
186 void tmpunmap(void*);
188 void trapenable(int, void (*)(Ureg*, void*), void*, char*);
190 void trapinit0(void);
192 uvlong tscticks(uvlong*);
193 ulong umballoc(ulong, ulong, ulong);
194 void umbfree(ulong, ulong);
195 ulong upaalloc(ulong, ulong, ulong);
196 void upafree(ulong, ulong);
197 void vectortable(void);
198 void* vmap(ulong, int);
200 void vmxprocrestore(Proc *);
201 void vmxshutdown(void);
202 void vunmap(void*, int);
204 void writeconf(void);
205 int wrmsr(int, vlong);
206 int xchgw(ushort*, int);
207 void rdrandbuf(void*, ulong);
209 #define userureg(ur) (((ur)->cs & 3) == 3)
210 #define waserror() (up->nerrlab++, setlabel(&up->errlab[up->nerrlab-1]))
211 #define KADDR(a) kaddr(a)
212 #define PADDR(a) paddr((void*)(a))