]> git.lizzy.rs Git - plan9front.git/blob - sys/src/9/pc/fns.h
devvmx, vmx: lilu dallas multivm
[plan9front.git] / sys / src / 9 / pc / fns.h
1 #include "../port/portfns.h"
2
3 void    aamloop(int);
4 Dirtab* addarchfile(char*, int, long(*)(Chan*,void*,long,vlong), long(*)(Chan*,void*,long,vlong));
5 void    archinit(void);
6 void    archreset(void);
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*);
22 void    delay(int);
23 void*   dmabva(int);
24 int     dmacount(int);
25 int     dmadone(int);
26 void    dmaend(int);
27 int     dmainit(int, int);
28 #define DMAWRITE 0
29 #define DMAREAD 1
30 #define DMALOOP 2
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    fpclear(void);
38 void    fpinit(void);
39 void    fpoff(void);
40 void    (*fprestore)(FPsave*);
41 void    (*fpsave)(FPsave*);
42 void    fpsserestore(FPsave*);
43 void    fpsserestore0(FPsave*);
44 void    fpssesave(FPsave*);
45 void    fpssesave0(FPsave*);
46 void    fpx87restore(FPsave*);
47 void    fpx87restore0(FPsave*);
48 void    fpx87save(FPsave*);
49 void    fpx87save0(FPsave*);
50 ulong   getcr0(void);
51 ulong   getcr2(void);
52 ulong   getcr3(void);
53 ulong   getcr4(void);
54 u32int  getdr6(void);
55 char*   getconf(char*);
56 void    guesscpuhz(int);
57 void    halt(void);
58 void    mwait(void*);
59 int     i8042auxcmd(int);
60 void    i8042auxenable(void (*)(int, int));
61 void    i8042reset(void);
62 void    i8250console(void);
63 void*   i8250alloc(int, int, int);
64 void    i8253enable(void);
65 void    i8253init(void);
66 void    i8253reset(void);
67 uvlong  i8253read(uvlong*);
68 void    i8253timerset(uvlong);
69 int     i8259disable(int);
70 int     i8259enable(Vctl*);
71 void    i8259init(void);
72 int     i8259isr(int);
73 void    i8259on(void);
74 void    i8259off(void);
75 int     i8259vecno(int);
76 void    idle(void);
77 void    idlehands(void);
78 int     inb(int);
79 void    insb(int, void*, int);
80 ushort  ins(int);
81 void    inss(int, void*, int);
82 ulong   inl(int);
83 void    insl(int, void*, int);
84 void    intrdisable(int, void (*)(Ureg *, void *), void*, int, char*);
85 void    intrenable(int, void (*)(Ureg*, void*), void*, int, char*);
86 void    introff(void);
87 void    intron(void);
88 void    invlpg(ulong);
89 void    iofree(int);
90 void    ioinit(void);
91 int     iounused(int, int);
92 int     ioalloc(int, int, int, char*);
93 int     ioreserve(int, int, int, char*);
94 int     iprint(char*, ...);
95 int     isaconfig(char*, int, ISAConf*);
96 void*   kaddr(ulong);
97 #define kmapinval()
98 void    ldmxcsr(ulong);
99 void    lgdt(ushort[3]);
100 void    lldt(ulong);
101 void    lidt(ushort[3]);
102 void    links(void);
103 void    ltr(ulong);
104 void    mach0init(void);
105 void    mathinit(void);
106 void    mb386(void);
107 void    mb586(void);
108 void    meminit(void);
109 void    memorysummary(void);
110 void    mfence(void);
111 #define mmuflushtlb(pdb) putcr3(pdb)
112 void    mmuinit(void);
113 ulong*  mmuwalk(ulong*, ulong, int, int);
114 char*   mtrr(uvlong, uvlong, char *);
115 void    mtrrclock(void);
116 int     mtrrprint(char *, long);
117 void    mtrrsync(void);
118 void    netconsole(void);
119 uchar   nvramread(int);
120 void    nvramwrite(int, uchar);
121 void    outb(int, int);
122 void    outsb(int, void*, int);
123 void    outs(int, ushort);
124 void    outss(int, void*, int);
125 void    outl(int, ulong);
126 void    outsl(int, void*, int);
127 ulong   paddr(void*);
128 void    patwc(void*, int);
129 ulong   pcibarsize(Pcidev*, int);
130 void    pcibussize(Pcidev*, ulong*, ulong*);
131 int     pcicfgr8(Pcidev*, int);
132 int     pcicfgr16(Pcidev*, int);
133 int     pcicfgr32(Pcidev*, int);
134 void    pcicfgw8(Pcidev*, int, int);
135 void    pcicfgw16(Pcidev*, int, int);
136 void    pcicfgw32(Pcidev*, int, int);
137 void    pciclrbme(Pcidev*);
138 void    pciclrioe(Pcidev*);
139 void    pciclrmwi(Pcidev*);
140 int     pcigetpms(Pcidev*);
141 void    pcihinv(Pcidev*);
142 uchar   pciipin(Pcidev*, uchar);
143 Pcidev* pcimatch(Pcidev*, int, int);
144 Pcidev* pcimatchtbdf(int);
145 int     pcicap(Pcidev*, int);
146 int     pcihtcap(Pcidev*, int);
147 void    pcireset(void);
148 int     pciscan(int, Pcidev**);
149 void    pcisetbme(Pcidev*);
150 void    pcisetioe(Pcidev*);
151 void    pcisetmwi(Pcidev*);
152 int     pcisetpms(Pcidev*, int);
153 void    pcmcisread(PCMslot*);
154 int     pcmcistuple(int, int, int, void*, int);
155 PCMmap* pcmmap(int, ulong, int, int);
156 int     pcmspecial(char*, ISAConf*);
157 int     (*_pcmspecial)(char *, ISAConf *);
158 void    pcmspecialclose(int);
159 void    (*_pcmspecialclose)(int);
160 void    pcmunmap(int, PCMmap*);
161 int     pdbmap(ulong*, ulong, ulong, int);
162 void    procrestore(Proc*);
163 void    procsave(Proc*);
164 void    procsetup(Proc*);
165 void    procfork(Proc*);
166 void    putcr0(ulong);
167 void    putcr2(ulong);
168 void    putcr3(ulong);
169 void    putcr4(ulong);
170 void    putdr(u32int*);
171 void    putdr01236(uintptr*);
172 void    putdr6(u32int);
173 void    putdr7(u32int);
174 void*   rampage(void);
175 int     rdmsr(int, vlong*);
176 void    realmode(Ureg*);
177 void    screeninit(void);
178 void    (*screenputs)(char*, int);
179 void    setconfenv(void);
180 void*   sigsearch(char*);
181 void    syncclock(void);
182 void*   tmpmap(Page*);
183 void    tmpunmap(void*);
184 void    touser(void*);
185 void    trapenable(int, void (*)(Ureg*, void*), void*, char*);
186 void    trapinit(void);
187 void    trapinit0(void);
188 int     tas(void*);
189 uvlong  tscticks(uvlong*);
190 ulong   umbmalloc(ulong, int, int);
191 void    umbfree(ulong, int);
192 ulong   umbrwmalloc(ulong, int, int);
193 void    umbrwfree(ulong, int);
194 ulong   upaalloc(int, int);
195 void    upafree(ulong, int);
196 void    upareserve(ulong, int);
197 void    vectortable(void);
198 void*   vmap(ulong, int);
199 int     vmapsync(ulong);
200 void    vmxprocrestore(Proc *);
201 void    vunmap(void*, int);
202 void    wbinvd(void);
203 void    writeconf(void);
204 int     wrmsr(int, vlong);
205 int     xchgw(ushort*, int);
206 void    rdrandbuf(void*, ulong);
207
208 #define userureg(ur)    (((ur)->cs & 3) == 3)
209 #define waserror()      (up->nerrlab++, setlabel(&up->errlab[up->nerrlab-1]))
210 #define KADDR(a)        kaddr(a)
211 #define PADDR(a)        paddr((void*)(a))