xref: /plan9/sys/src/9/rb/fns.h (revision fac6300f1f1b25611e114fc0bdda9cf428c13da4)
1 #include "../port/portfns.h"
2 
3 void	arginit(void);
4 int	busprobe(ulong);
5 ulong	cankaddr(ulong);
6 void	cleancache(void);
7 void	clearmmucache(void);
8 void	clock(Ureg*);
9 void	clockinit(void);
10 void	clockshutdown(void);
11 int	cmpswap(long*, long, long);
12 void	coherence(void);
13 void	cycles(uvlong *);
14 void	dcflush(void*, ulong);
15 void	faultmips(Ureg*, int, int);
16 ulong	fcr31(void);
17 void	firmware(int);
18 void	fpclear(void);
19 void	fpsave(FPsave *);
20 void	fptrap(Ureg*);
21 int	fpuemu(Ureg *);
22 void	fpwatch(Ureg *);
23 ulong	getcause(void);
24 char*	getconf(char*);
25 ulong	getconfig(void);
26 ulong	getconfig1(void);
27 ulong	getconfig2(void);
28 ulong	getconfig3(void);
29 ulong	getconfig7(void);
30 ulong	gethwreg3(void);
31 ulong	getpagemask(void);
32 ulong	getstatus(void);
33 int	gettlbp(ulong, ulong*);
34 ulong	gettlbvirt(int);
35 void	gotopc(ulong);
36 void	hinv(void);
37 int	i8250console(void);
38 void	icflush(void *, ulong);
39 void	idle(void);
40 void	idlehands(void);
41 int	inb(int);
42 void	insb(int, void*, int);
43 ushort	ins(int);
44 void	inss(int, void*, int);
45 ulong	inl(int);
46 void	insl(int, void*, int);
47 void	ioinit(void);
48 void	introff(int);
49 void	intron(int);
50 void	intrshutdown(void);
51 void	kfault(Ureg*);
52 KMap*	kmap(Page*);
53 void	kmapinit(void);
54 void	kmapinval(void);
55 void	kunmap(KMap*);
56 void	launchinit(void);
57 void	launch(int);
58 void	links(void);
59 ulong	machstatus(void);
60 void	newstart(void);
61 int	newtlbpid(Proc*);
62 void	online(void);
63 void	outb(int, int);
64 void	outsb(int, void*, int);
65 void	outs(int, ushort);
66 void	outss(int, void*, int);
67 void	outl(int, ulong);
68 void	outsl(int, void*, int);
69 ulong	pcibarsize(Pcidev*, int);
70 void	pcibussize(Pcidev*, ulong*, ulong*);
71 int	pcicfgr8(Pcidev*, int);
72 int	pcicfgr16(Pcidev*, int);
73 int	pcicfgr32(Pcidev*, int);
74 void	pcicfgw8(Pcidev*, int, int);
75 void	pcicfgw16(Pcidev*, int, int);
76 void	pcicfgw32(Pcidev*, int, int);
77 void	pciclrbme(Pcidev*);
78 void	pciclrioe(Pcidev*);
79 void	pciclrmwi(Pcidev*);
80 int	pcigetpms(Pcidev*);
81 void	pcihinv(Pcidev*);
82 uchar	pciipin(Pcidev*, uchar);
83 Pcidev* pcimatch(Pcidev*, int, int);
84 Pcidev* pcimatchtbdf(int);
85 void	pcireset(void);
86 int	pciscan(int, Pcidev**);
87 void	pcisetbme(Pcidev*);
88 void	pcisetioe(Pcidev*);
89 void	pcisetmwi(Pcidev*);
90 int	pcisetpms(Pcidev*, int);
91 ulong	prid(void);
92 void	procrestore(Proc *);
93 void	procsave(Proc *);
94 #define	procsetup(p)	((p)->fpstate = FPinit)
95 void	purgetlb(int);
96 Softtlb*	putstlb(ulong, ulong);
97 int	puttlb(ulong, ulong, ulong);
98 void	puttlbx(int, ulong, ulong, ulong, int);
99 ulong	rdcompare(void);
100 ulong	rdcount(void);
101 ulong*	reg(Ureg*, int);
102 void	restfpregs(FPsave*, ulong);
103 void	intrenable(int, void(*)(void *), void *);
104 void	setleveldest(int, int, uvlong*);
105 void	setpagemask(ulong);
106 void	setsp(ulong);
107 void	setstatus(ulong);
108 void	setwatchhi0(ulong);
109 void	setwatchlo0(ulong);
110 void	setwired(ulong);
111 void	sicwdog(void);
112 void	silencewdog(void);
113 ulong	stlbhash(ulong);
114 void	stopwdog(void);
115 void	syncclock(void);
116 long	syscall(Ureg*);
117 void	syscallfmt(int syscallno, ulong pc, va_list list);
118 void	sysretfmt(int syscallno, va_list list, long ret, uvlong start, uvlong stop);
119 int	tas(ulong*);
120 void	tlbinit(void);
121 ulong	tlbvirt(void);
122 void	touser(uintptr);
123 void	unleash(void);
124 #define	userureg(ur) ((ur)->status & KUSER)
125 void	validalign(uintptr, unsigned);
126 void	vecinit(void);
127 void	vector0(void);
128 void	vector100(void);
129 void	vector180(void);
130 void	wdogreset(void);
131 void	wrcompare(ulong);
132 void	wrcount(ulong);
133 ulong	wiredpte(vlong);
134 void	machwire(void);
135 void	_uartputs(char*, int);
136 int	_uartprint(char*, ...);
137 
138 #define PTR2UINT(p)	((uintptr)(p))
139 #define UINT2PTR(i)	((void*)(i))
140 
141 #define	waserror()	(up->nerrlab++, setlabel(&up->errlab[up->nerrlab-1]))
142 
143 #define KADDR(a)	((void*)((ulong)(a)|KSEG0))
144 #define PADDR(a)	((ulong)(a)&~KSEGM)
145 
146 #define KSEG1ADDR(a)	((void*)((ulong)(a)|KSEG1))
147