summaryrefslogtreecommitdiff
path: root/os/cerf405/fns.h
blob: 4c6a3fa166e122f036325ebcb999be9d0a03a894 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
#include "../port/portfns.h"

void	addpower(Power*);
void	archbacklight(int);
void	archconfinit(void);
int	archconfval(char**, char**, int);
void	archdisableuart(int);
void	archdisableusb(void);
void	archdisablevideo(void);
void	archenableuart(int, int);
void	archenableusb(int, int);
void	archenablevideo(void);
void	archkbdinit(void);
void	archresetvideo(void);
void	archinit(void);
int	archoptionsw(void);
void	archreboot(void);
ulong	archuartclock(int, int);
void	archuartdma(int, int);
void	clockcheck(void);
void	clockinit(void);
void	clockintr(Ureg*);
void	clrfptrap(void);
#define	coherence()		/* nothing needed for uniprocessor */
void	compiledcr(void);
void	cpuidprint(void);
void*	dcflush(void*, ulong);
void	dcinval(void*, ulong);
void	delay(int);
void	dtlbmiss(void);
void	dumplongs(char*, ulong*, int);
void	dumpregs(Ureg*);
void	eieio(void);
void	firmware(int);
void	fpinit(void);
int	fpipower(Ureg*);
void	fpoff(void);
void	fprestore(FPU*);
void	fpsave(FPU*);
ulong	fpstatus(void);
char*	getconf(char*);
ulong	getccr0(void);
ulong	getdar(void);
ulong	getdcr(int);
ulong	getdear(void);
ulong	getdepn(void);
ulong	getdsisr(void);
ulong	getesr(void);
ulong	getimmr(void);
ulong	getmsr(void);
ulong	getpit(void);
ulong	getpvr(void);
ulong	gettbl(void);
ulong	gettbu(void);
ulong	gettsr(void);
void	gotopc(ulong);
void	icflush(void*, ulong);
void	idle(void);
void	idlehands(void);
int	inb(int);
ulong	inl(int);
int	ins(int);
void	insb(int, void*, int);
void	insl(int, void*, int);
void	inss(int, void*, int);
void	intr(Ureg*);
void	intrenable(int, void (*)(Ureg*, void*), void*, int, char*);
void	intrdisable(int, void (*)(Ureg*, void*), void*, int, char*);
int	intrstats(char*, int);
void	intrvec(void);
void	intrcvec(void);
void	ioinit(void);
void	ioreset(void);
int	isaconfig(char*, int, ISAConf*);
int	isvalid_va(void*);
void	itlbmiss(void);
void	kbdinit(void);
void	kbdreset(void);
void*	kmapphys(void*, ulong, ulong, ulong, ulong);
void	lcdpanel(int);
void	links(void);
void	mapfree(RMap*, ulong, int);
void	mapinit(RMap*, Map*, int);
void	mathinit(void);
void	mmuinit(void);
void*	mmucacheinhib(void*, ulong);
ulong	mmumapsize(ulong);
void	pcimapinit(void);
int	pciscan(int, Pcidev **);
ulong	pcibarsize(Pcidev *, int);
int	pcicfgr8(Pcidev*, int);
int	pcicfgr16(Pcidev*, int);
int	pcicfgr32(Pcidev*, int);
void	pcicfgw8(Pcidev*, int, int);
void	pcicfgw16(Pcidev*, int, int);
void	pcicfgw32(Pcidev*, int, int);
void	pciclrbme(Pcidev*);
void	pcihinv(Pcidev*);
uchar	pciipin(Pcidev *, uchar);
Pcidev* pcimatch(Pcidev*, int, int);
Pcidev* pcimatchtbdf(int);
void	pcireset(void);
void	pcisetbme(Pcidev*);
void	procsave(Proc*);
void	procsetup(Proc*);
void	putdcr(int, ulong);
void	putesr(ulong);
void	putevpr(ulong);
void	putmsr(ulong);
void	putpit(ulong);
void	puttcr(ulong);
void	puttsr(ulong);
void	puttwb(ulong);
ulong	rmapalloc(RMap*, ulong, int, int);
long	rtctime(void);
void	screeninit(void);
int	screenprint(char*, ...);			/* debugging */
void	(*screenputs)(char*, int);
int	segflush(void*, ulong);
void	toggleled(int);
void	setpanic(void);
ulong	_tas(ulong*);
ulong	tlbrehi(int);
ulong	tlbrelo(int);
int	tlbsxcc(void*);
void	tlbwehi(int, ulong);
void	tlbwelo(int, ulong);
void	trapinit(void);
void	trapvec(void);
void	trapcvec(void);
void	uartinstall(void);
void	uartspecial(int, int, Queue**, Queue**, int (*)(Queue*, int));
void	uartwait(void);	/* debugging */
void	wbflush(void);

#define	waserror()	(up->nerrlab++, setlabel(&up->errlab[up->nerrlab-1]))
ulong	getcallerpc(void*);

#define	isphys(a)	(((ulong)(a)&KSEGM)!=KSEG0 && ((ulong)(a)&KSEGM)!=KSEG1)
#define KADDR(a)	((void*)((ulong)(a)|KZERO))
#define PADDR(a)	(isphys(a)?(ulong)(a):((ulong)(a)&~KSEGM))

/* IBM bit field order */
#define	IBIT(b)	(((ulong)(1<<31))>>(b))
#define	SIBIT(n)	((ushort)1<<(15-(n)))
#define	CIBIT(n)	((uchar)1<<(7-(n)))