xref: /plan9/sys/src/9/pc/fns.h (revision 7d7728c9ff780bb29e70ac5c0f1bb4c0d6187a9b)
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 int	bios32call(BIOS32ci*, u16int[3]);
7 int	bios32ci(BIOS32si*, BIOS32ci*);
8 void	bios32close(BIOS32si*);
9 BIOS32si* bios32open(char*);
10 void	bootargs(void*);
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*);
20 void	delay(int);
21 int	dmacount(int);
22 int	dmadone(int);
23 void	dmaend(int);
24 int	dmainit(int, int);
25 long	dmasetup(int, void*, long, int);
26 #define	evenaddr(x)				/* x86 doesn't care */
27 void	fpclear(void);
28 void	fpenv(FPsave*);
29 void	fpinit(void);
30 void	fpoff(void);
31 void	fprestore(FPsave*);
32 void	fpsave(FPsave*);
33 ulong	fpstatus(void);
34 ulong	getcr0(void);
35 ulong	getcr2(void);
36 ulong	getcr3(void);
37 ulong	getcr4(void);
38 char*	getconf(char*);
39 void	guesscpuhz(int);
40 void	halt(void);
41 int	i8042auxcmd(int);
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);
50 void	i8253init(void);
51 void	i8253link(void);
52 uvlong	i8253read(uvlong*);
53 void	i8253timerset(uvlong);
54 int	i8259disable(int);
55 int	i8259enable(Vctl*);
56 void	i8259init(void);
57 int	i8259isr(int);
58 void	i8259on(void);
59 void	i8259off(void);
60 int	i8259vecno(int);
61 void	idle(void);
62 void	idlehands(void);
63 int	inb(int);
64 void	insb(int, void*, int);
65 ushort	ins(int);
66 void	inss(int, void*, int);
67 ulong	inl(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*);
71 void	introff(void);
72 void	intron(void);
73 void	invlpg(ulong);
74 void	iofree(int);
75 void	ioinit(void);
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*);
81 void*	kaddr(ulong);
82 void	kbdenable(void);
83 void	kbdinit(void);
84 #define	kmapinval()
85 void	lgdt(ushort[3]);
86 void	lidt(ushort[3]);
87 void	links(void);
88 void	ltr(ulong);
89 void	mach0init(void);
90 void	mathinit(void);
91 void	mb386(void);
92 void	mb586(void);
93 void	meminit(void);
94 void	memorysummary(void);
95 void	mfence(void);
96 #define mmuflushtlb(pdb) putcr3(pdb)
97 void	mmuinit(void);
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);
104 void	outb(int, int);
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);
110 ulong	paddr(void*);
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);
127 void	pcireset(void);
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*);
145 void	putcr0(ulong);
146 void	putcr3(ulong);
147 void	putcr4(ulong);
148 void*	rampage(void);
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);
156 void*	tmpmap(Page*);
157 void	tmpunmap(void*);
158 void	touser(void*);
159 void	trapenable(int, void (*)(Ureg*, void*), void*, char*);
160 void	trapinit(void);
161 void	trapinit0(void);
162 int	tas(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);
174 int	vmapsync(ulong);
175 void	vunmap(void*, int);
176 void	wbinvd(void);
177 void	wrmsr(int, vlong);
178 int	xchgw(ushort*, int);
179 
180 #define	waserror()	(up->nerrlab++, setlabel(&up->errlab[up->nerrlab-1]))
181 #define	KADDR(a)	kaddr(a)
182 #define PADDR(a)	paddr((void*)(a))
183 
184 #define	dcflush(a, b)
185