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 void clockintr(Ureg*, void*);
13 int (*cmpswap)(long*, long, long);
14 int cmpswap486(long*, long, long);
15 void (*coherence)(void);
16 void cpuid(int, ulong regs[]);
17 int cpuidentify(void);
18 void cpuidprint(void);
19 void (*cycles)(uvlong*);
24 int dmainit(int, int);
25 long dmasetup(int, void*, long, int);
26 #define evenaddr(x) /* x86 doesn't care */
31 void fprestore(FPsave*);
42 int i8042auxcmds(uchar*, int);
43 void i8042auxenable(void (*)(int, int));
44 void i8042reset(void);
45 void i8250console(void);
46 void* i8250alloc(int, int, int);
47 void i8250mouse(char*, int (*)(Queue*, int), int);
48 void i8250setmouseputc(char*, int (*)(Queue*, int));
49 void i8253enable(void);
52 uvlong i8253read(uvlong*);
53 void i8253timerset(uvlong);
54 int i8259disable(int);
55 int i8259enable(Vctl*);
64 void insb(int, void*, int);
66 void inss(int, void*, int);
68 void insl(int, void*, int);
69 int intrdisable(int, void (*)(Ureg *, void *), void*, int, char*);
70 void intrenable(int, void (*)(Ureg*, void*), void*, int, char*);
76 int iounused(int, int);
77 int ioalloc(int, int, int, char*);
78 int ioreserve(int, int, int, char*);
79 int iprint(char*, ...);
80 int isaconfig(char*, int, ISAConf*);
94 void memorysummary(void);
96 #define mmuflushtlb(pdb) putcr3(pdb)
98 ulong* mmuwalk(ulong*, ulong, int, int);
99 int mtrr(uvlong, uvlong, char *);
100 void mtrrclock(void);
101 int mtrrprint(char *, long);
102 uchar nvramread(int);
103 void nvramwrite(int, uchar);
105 void outsb(int, void*, int);
106 void outs(int, ushort);
107 void outss(int, void*, int);
108 void outl(int, ulong);
109 void outsl(int, void*, int);
111 ulong pcibarsize(Pcidev*, int);
112 void pcibussize(Pcidev*, ulong*, ulong*);
113 int pcicfgr8(Pcidev*, int);
114 int pcicfgr16(Pcidev*, int);
115 int pcicfgr32(Pcidev*, int);
116 void pcicfgw8(Pcidev*, int, int);
117 void pcicfgw16(Pcidev*, int, int);
118 void pcicfgw32(Pcidev*, int, int);
119 void pciclrbme(Pcidev*);
120 void pciclrioe(Pcidev*);
121 void pciclrmwi(Pcidev*);
122 int pcigetpms(Pcidev*);
123 void pcihinv(Pcidev*);
124 uchar pciipin(Pcidev*, uchar);
125 Pcidev* pcimatch(Pcidev*, int, int);
126 Pcidev* pcimatchtbdf(int);
128 int pciscan(int, Pcidev**);
129 void pcisetbme(Pcidev*);
130 void pcisetioe(Pcidev*);
131 void pcisetmwi(Pcidev*);
132 int pcisetpms(Pcidev*, int);
133 void pcmcisread(PCMslot*);
134 int pcmcistuple(int, int, int, void*, int);
135 PCMmap* pcmmap(int, ulong, int, int);
136 int pcmspecial(char*, ISAConf*);
137 int (*_pcmspecial)(char *, ISAConf *);
138 void pcmspecialclose(int);
139 void (*_pcmspecialclose)(int);
140 void pcmunmap(int, PCMmap*);
141 int pdbmap(ulong*, ulong, ulong, int);
142 void procrestore(Proc*);
143 void procsave(Proc*);
144 void procsetup(Proc*);
149 void rdmsr(int, vlong*);
150 void realmode(Ureg*);
151 void screeninit(void);
152 void (*screenputs)(char*, int);
153 void syncclock(void);
154 void syscallfmt(int syscallno, ulong pc, va_list list);
155 void sysretfmt(int syscallno, va_list list, long ret, uvlong start, uvlong stop);
157 void tmpunmap(void*);
159 void trapenable(int, void (*)(Ureg*, void*), void*, char*);
161 void trapinit0(void);
163 uvlong tscticks(uvlong*);
164 ulong umbmalloc(ulong, int, int);
165 void umbfree(ulong, int);
166 ulong umbrwmalloc(ulong, int, int);
167 void umbrwfree(ulong, int);
168 ulong upaalloc(int, int);
169 void upafree(ulong, int);
170 void upareserve(ulong, int);
171 #define userureg(ur) (((ur)->cs & 0xFFFF) == UESEL)
172 void vectortable(void);
173 void* vmap(ulong, int);
175 void vunmap(void*, int);
177 void wrmsr(int, vlong);
178 int xchgw(ushort*, int);
180 #define waserror() (up->nerrlab++, setlabel(&up->errlab[up->nerrlab-1]))
181 #define KADDR(a) kaddr(a)
182 #define PADDR(a) paddr((void*)(a))
184 #define dcflush(a, b)