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 ulong cankaddr(ulong);
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 */
36 void (*fprestore)(FPsave*);
37 void (*fpsave)(FPsave*);
38 void fpsserestore(FPsave*);
39 void fpsserestore0(FPsave*);
40 void fpssesave(FPsave*);
41 void fpssesave0(FPsave*);
43 void fpx87restore(FPsave*);
44 void fpx87restore0(FPsave*);
45 void fpx87save(FPsave*);
46 void fpx87save0(FPsave*);
56 int i8042auxcmds(uchar*, int);
57 void i8042auxenable(void (*)(int, int));
58 void i8042reset(void);
59 void i8250console(void);
60 void* i8250alloc(int, int, int);
61 void i8253enable(void);
63 void i8253reset(void);
64 uvlong i8253read(uvlong*);
65 void i8253timerset(uvlong);
66 int i8259disable(int);
67 int i8259enable(Vctl*);
76 void insb(int, void*, int);
78 void inss(int, void*, int);
80 void insl(int, void*, int);
81 int intrdisable(int, void (*)(Ureg *, void *), void*, int, char*);
82 void intrenable(int, void (*)(Ureg*, void*), void*, int, char*);
88 int iounused(int, int);
89 int ioalloc(int, int, int, char*);
90 int ioreserve(int, int, int, char*);
91 int iprint(char*, ...);
92 int isaconfig(char*, int, ISAConf*);
102 void mach0init(void);
107 void memorysummary(void);
109 #define mmuflushtlb(pdb) putcr3(pdb)
111 ulong* mmuwalk(ulong*, ulong, int, int);
112 int mtrr(uvlong, uvlong, char *);
113 void mtrrclock(void);
114 int mtrrprint(char *, long);
115 uchar nvramread(int);
116 void nvramwrite(int, uchar);
118 void outsb(int, void*, int);
119 void outs(int, ushort);
120 void outss(int, void*, int);
121 void outl(int, ulong);
122 void outsl(int, void*, int);
124 ulong pcibarsize(Pcidev*, int);
125 void pcibussize(Pcidev*, ulong*, ulong*);
126 int pcicfgr8(Pcidev*, int);
127 int pcicfgr16(Pcidev*, int);
128 int pcicfgr32(Pcidev*, int);
129 void pcicfgw8(Pcidev*, int, int);
130 void pcicfgw16(Pcidev*, int, int);
131 void pcicfgw32(Pcidev*, int, int);
132 void pciclrbme(Pcidev*);
133 void pciclrioe(Pcidev*);
134 void pciclrmwi(Pcidev*);
135 int pcigetpms(Pcidev*);
136 void pcihinv(Pcidev*);
137 uchar pciipin(Pcidev*, uchar);
138 Pcidev* pcimatch(Pcidev*, int, int);
139 Pcidev* pcimatchtbdf(int);
140 int pcicap(Pcidev*, int);
141 int pcihtcap(Pcidev*, int);
143 int pciscan(int, Pcidev**);
144 void pcisetbme(Pcidev*);
145 void pcisetioe(Pcidev*);
146 void pcisetmwi(Pcidev*);
147 int pcisetpms(Pcidev*, int);
148 void pcmcisread(PCMslot*);
149 int pcmcistuple(int, int, int, void*, int);
150 PCMmap* pcmmap(int, ulong, int, int);
151 int pcmspecial(char*, ISAConf*);
152 int (*_pcmspecial)(char *, ISAConf *);
153 void pcmspecialclose(int);
154 void (*_pcmspecialclose)(int);
155 void pcmunmap(int, PCMmap*);
156 int pdbmap(ulong*, ulong, ulong, int);
157 void procrestore(Proc*);
158 void procsave(Proc*);
159 void procsetup(Proc*);
160 void procfork(Proc*);
165 int rdmsr(int, vlong*);
166 void realmode(Ureg*);
167 void screeninit(void);
168 void (*screenputs)(char*, int);
169 void* sigsearch(char*);
170 void syncclock(void);
172 void tmpunmap(void*);
174 void trapenable(int, void (*)(Ureg*, void*), void*, char*);
176 void trapinit0(void);
178 uvlong tscticks(uvlong*);
179 ulong umbmalloc(ulong, int, int);
180 void umbfree(ulong, int);
181 ulong umbrwmalloc(ulong, int, int);
182 void umbrwfree(ulong, int);
183 ulong upaalloc(int, int);
184 void upafree(ulong, int);
185 void upareserve(ulong, int);
186 void vectortable(void);
187 void* vmap(ulong, int);
189 void vunmap(void*, int);
191 int wrmsr(int, vlong);
192 int xchgw(ushort*, int);
193 void rdrandbuf(void*, ulong);
195 #define userureg(ur) (((ur)->cs & 3) == 3)
196 #define waserror() (up->nerrlab++, setlabel(&up->errlab[up->nerrlab-1]))
197 #define KADDR(a) kaddr(a)
198 #define PADDR(a) paddr((void*)(a))