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*);
12 uintptr cankaddr(uintptr);
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*);
27 int dmainit(int, int);
31 long dmasetup(int, void*, long, int);
32 void dumpmcregs(void);
33 int ecinit(int cmdport, int dataport);
34 int ecread(uchar addr);
35 int ecwrite(uchar addr, uchar val);
36 #define evenaddr(x) /* x86 doesn't care */
37 void (*fprestore)(FPsave*);
38 void (*fpsave)(FPsave*);
39 void fpsserestore(FPsave*);
40 void fpssesave(FPsave*);
41 void fpx87restore(FPsave*);
42 void fpx87save(FPsave*);
52 int i8042auxcmds(uchar*, int);
53 void i8042auxenable(void (*)(int, int));
54 void i8042reset(void);
55 void i8250console(void);
56 void* i8250alloc(int, int, int);
57 void i8253enable(void);
59 void i8253reset(void);
60 uvlong i8253read(uvlong*);
61 void i8253timerset(uvlong);
62 int i8259disable(int);
63 int i8259enable(Vctl*);
72 void insb(int, void*, int);
74 void inss(int, void*, int);
76 void insl(int, void*, int);
77 void intrdisable(int, void (*)(Ureg *, void *), void*, int, char*);
78 void intrenable(int, void (*)(Ureg*, void*), void*, int, char*);
84 int iounused(int, int);
85 int ioalloc(int, int, int, char*);
86 int ioreserve(int, int, int, char*);
87 int iprint(char*, ...);
88 int isaconfig(char*, int, ISAConf*);
102 void memorysummary(void);
104 #define mmuflushtlb() putcr3(getcr3())
106 uintptr *mmuwalk(uintptr*, uintptr, int, int);
107 char* mtrr(uvlong, uvlong, char *);
108 void mtrrclock(void);
109 int mtrrprint(char *, long);
112 uchar nvramread(int);
113 void nvramwrite(int, uchar);
115 void outsb(int, void*, int);
116 void outs(int, ushort);
117 void outss(int, void*, int);
118 void outl(int, ulong);
119 void outsl(int, void*, int);
120 uintptr paddr(void*);
121 ulong pcibarsize(Pcidev*, int);
122 void pcibussize(Pcidev*, ulong*, ulong*);
123 int pcicfgr8(Pcidev*, int);
124 int pcicfgr16(Pcidev*, int);
125 int pcicfgr32(Pcidev*, int);
126 void pcicfgw8(Pcidev*, int, int);
127 void pcicfgw16(Pcidev*, int, int);
128 void pcicfgw32(Pcidev*, int, int);
129 void pciclrbme(Pcidev*);
130 void pciclrioe(Pcidev*);
131 void pciclrmwi(Pcidev*);
132 int pcigetpms(Pcidev*);
133 void pcihinv(Pcidev*);
134 uchar pciipin(Pcidev*, uchar);
135 Pcidev* pcimatch(Pcidev*, int, int);
136 Pcidev* pcimatchtbdf(int);
137 int pcicap(Pcidev*, int);
138 int pcihtcap(Pcidev*, int);
140 int pciscan(int, Pcidev**);
141 void pcisetbme(Pcidev*);
142 void pcisetioe(Pcidev*);
143 void pcisetmwi(Pcidev*);
144 int pcisetpms(Pcidev*, int);
145 void pcmcisread(PCMslot*);
146 int pcmcistuple(int, int, int, void*, int);
147 PCMmap* pcmmap(int, ulong, int, int);
148 int pcmspecial(char*, ISAConf*);
149 int (*_pcmspecial)(char *, ISAConf *);
150 void pcmspecialclose(int);
151 void (*_pcmspecialclose)(int);
152 void pcmunmap(int, PCMmap*);
153 void pmap(uintptr *, uintptr, uintptr, vlong);
154 void procrestore(Proc*);
155 void procsave(Proc*);
156 void procsetup(Proc*);
157 void procfork(Proc*);
162 int rdmsr(int, vlong*);
163 void realmode(Ureg*);
164 void screeninit(void);
165 void (*screenputs)(char*, int);
166 void* sigsearch(char*);
167 void syncclock(void);
168 void syscallentry(void);
170 void trapenable(int, void (*)(Ureg*, void*), void*, char*);
172 void trapinit0(void);
174 uvlong tscticks(uvlong*);
175 uintptr umbmalloc(uintptr, int, int);
176 void umbfree(uintptr, int);
177 uintptr umbrwmalloc(uintptr, int, int);
178 void umbrwfree(uintptr, int);
179 uintptr upaalloc(int, int);
180 void upafree(uintptr, int);
181 void upareserve(uintptr, int);
182 void vectortable(void);
183 void* vmap(uintptr, int);
184 int vmapsync(uintptr);
185 void vunmap(void*, int);
187 int wrmsr(int, vlong);
188 int xchgw(ushort*, int);
189 void rdrandbuf(void*, ulong);
191 #define userureg(ur) (((ur)->cs & 3) == 3)
192 #define waserror() (up->nerrlab++, setlabel(&up->errlab[up->nerrlab-1]))
193 #define KADDR(a) kaddr(a)
194 #define PADDR(a) paddr((void*)(a))