Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
#define checkmmu(a, b)
2
#define countpagerefs(a, b)
3
 
4
#include "../port/portfns.h"
5
 
6
typedef struct Ether Ether;
7
struct Ether;
8
 
9
extern int led(int, int);
10
extern void ledexit(int);
11
extern void delay(int);
12
extern void _uartputs(char*, int);
13
extern int _uartprint(char*, ...);
14
 
15
#pragma	varargck argpos	_uartprint 1
16
 
17
extern long ainc(long *);
18
extern long adec(long *);
19
extern void allcacheinfo(Memcache *);
20
extern void allcacheson(void);
21
extern int archether(unsigned, Ether *);
22
extern void archreboot(void);
23
extern void archreset(void);
24
extern void cachedinv(void);
25
extern void cachedinvse(void*, int);
26
extern void cachedwb(void);
27
extern void cachedwbinv(void);
28
extern void cachedwbinvse(void*, int);
29
extern void cachedwbse(void*, int);
30
extern void cacheiinv(void);
31
extern void cacheuwbinv(void);
32
extern uintptr cankaddr(uintptr pa);
33
extern void chkmissing(void);
34
extern void clockprod(Ureg *);
35
extern void clockshutdown(void);
36
extern int clz(ulong);
37
extern int cmpswap(long*, long, long);
38
extern void coherence(void);
39
extern void configscreengpio(void);
40
extern u32int controlget(void);
41
extern void cortexa9cachecfg(void);
42
extern u32int cpctget(void);
43
extern u32int cpidget(void);
44
extern ulong cprd(int cp, int op1, int crn, int crm, int op2);
45
extern ulong cprdsc(int op1, int crn, int crm, int op2);
46
extern void cpuidprint(void);
47
extern char *cputype2name(char *buf, int size);
48
extern void cpwr(int cp, int op1, int crn, int crm, int op2, ulong val);
49
extern void cpwrsc(int op1, int crn, int crm, int op2, ulong val);
50
#define cycles(vlp) *(vlp) = (ulong)lcycles()
51
extern u32int dacget(void);
52
extern void dacput(u32int);
53
extern void dmainit(void);
54
extern int dmastart(void *, int, void *, int, uint, Rendez *, int *);
55
extern void dmatest(void);
56
extern void dump(void *vaddr, int words);
57
extern u32int farget(void);
58
extern void fpclear(void);
59
extern void fpoff(void);
60
extern void fpon(void);
61
extern ulong fprd(int fpreg);
62
extern void fprestreg(int fpreg, uvlong val);
63
extern void fpsave(FPsave *);
64
extern ulong fpsavereg(int fpreg, uvlong *fpp);
65
extern void fpwr(int fpreg, ulong val);
66
extern u32int fsrget(void);
67
extern ulong getauxctl(void);
68
extern ulong getclvlid(void);
69
extern ulong getcyc(void);
70
extern int getncpus(void);
71
extern u32int getpsr(void);
72
extern u32int getscr(void);
73
extern ulong getwayssets(void);
74
extern void intcmask(uint);
75
extern void intcunmask(uint);
76
extern void intrcpu(int);
77
extern void intrcpushutdown(void);
78
extern void intrshutdown(void);
79
extern void intrsoff(void);
80
extern int isaconfig(char*, int, ISAConf*);
81
extern int isdmadone(int);
82
extern int ispow2(uvlong);
83
extern void kbdenable(void);
84
extern void l1diag(void);
85
extern void l2pl310init(void);
86
extern int log2(ulong);
87
extern void machoff(uint cpu);
88
extern void machon(uint cpu);
89
extern void memdiag(ulong *);
90
extern void mmuidmap(uintptr phys, int mbs);
91
extern void mmuinvalidate(void);		/* 'mmu' or 'tlb'? */
92
extern void mmuinvalidateaddr(u32int);		/* 'mmu' or 'tlb'? */
93
extern void mousectl(Cmdbuf *cb);
94
extern ulong pcibarsize(Pcidev*, int);
95
extern void pcibussize(Pcidev*, ulong*, ulong*);
96
extern int pcicfgr8(Pcidev*, int);
97
extern int pcicfgr16(Pcidev*, int);
98
extern int pcicfgr32(Pcidev*, int);
99
extern void pcicfgw8(Pcidev*, int, int);
100
extern void pcicfgw16(Pcidev*, int, int);
101
extern void pcicfgw32(Pcidev*, int, int);
102
extern void pciclrbme(Pcidev*);
103
extern void pciclrioe(Pcidev*);
104
extern void pciclrmwi(Pcidev*);
105
extern void pcieintrdone(void);
106
extern int pcigetpms(Pcidev*);
107
extern void pcihinv(Pcidev*);
108
extern uchar pciipin(Pcidev*, uchar);
109
extern Pcidev* pcimatch(Pcidev*, int, int);
110
extern Pcidev* pcimatchtbdf(int);
111
extern void pcireset(void);
112
extern void pcisetbme(Pcidev*);
113
extern void pcisetioe(Pcidev*);
114
extern void pcisetmwi(Pcidev*);
115
extern int pcisetpms(Pcidev*, int);
116
extern u32int pidget(void);
117
extern void pidput(u32int);
118
extern void prcachecfg(void);
119
extern vlong probeaddr(uintptr);
120
extern void procrestore(Proc *);
121
extern void procsave(Proc*);
122
extern void procsetup(Proc*);
123
extern void putauxctl(ulong);
124
extern void _reset(void);
125
extern void screenclockson(void);
126
extern void screeninit(void);
127
extern void serialputc(int c);
128
extern void serialputs(char* s, int n);
129
extern void setcachelvl(int);
130
extern void setsp(uintptr);
131
extern void setr13(int, u32int*);
132
extern ulong smpon(void);
133
extern int startcpu(uint);
134
extern void stopcpu(uint);
135
extern int tas(void *);
136
extern void tegclock0init(void);
137
extern void tegclockinit(void);
138
extern void tegclockintr(void);
139
extern void tegclockshutdown(void);
140
extern void tegwdogintr(Ureg *, void *);
141
extern u32int ttbget(void);
142
extern void ttbput(u32int);
143
extern void _vrst(void);
144
extern void wakewfi(void);
145
extern void watchdoginit(void);
146
extern void wfi(void);
147
 
148
extern int irqenable(uint, void (*)(Ureg*, void*), void*, char*);
149
extern int irqdisable(uint, void (*)(Ureg*, void*), void*, char*);
150
#define intrenable(i, f, a, b, n)	irqenable((i), (f), (a), (n))
151
#define intrdisable(i, f, a, b, n)	irqdisable((i), (f), (a), (n))
152
extern void vectors(void);
153
extern void vtable(void);
154
 
155
/*
156
 * Things called in main.
157
 */
158
extern void archconfinit(void);
159
extern void clockinit(void);
160
extern int i8250console(void);
161
extern void links(void);
162
extern void mmuinit(void);
163
extern void touser(uintptr);
164
extern void trapinit(void);
165
 
166
 
167
extern int fpiarm(Ureg*);
168
extern int fpudevprocio(Proc*, void*, long, uintptr, int);
169
extern void fpuinit(void);
170
extern void fpunoted(void);
171
extern void fpunotify(Ureg*);
172
extern void fpuprocrestore(Proc*);
173
extern void fpuprocsave(Proc*);
174
extern void fpusysprocsetup(Proc*);
175
extern void fpusysrfork(Ureg*);
176
extern void fpusysrforkchild(Proc*, Ureg*, Proc*);
177
extern int fpuemu(Ureg*);
178
 
179
/*
180
 * Miscellaneous machine dependent stuff.
181
 */
182
extern int cas(int *, int, int);
183
extern char* getenv(char*, char*, int);
184
char*	getconf(char*);
185
uintptr mmukmap(uintptr, uintptr, usize);
186
uintptr mmukunmap(uintptr, uintptr, usize);
187
extern void* mmuuncache(void*, usize);
188
extern void* ucalloc(usize);
189
extern Block* ucallocb(int);
190
extern void* ucallocalign(usize size, int align, int span);
191
extern void ucfree(void*);
192
extern void ucfreeb(Block*);
193
 
194
/*
195
 * Things called from port.
196
 */
197
extern void delay(int);				/* only scheddump() */
198
extern int islo(void);
199
extern void microdelay(int);			/* only edf.c */
200
extern void idlehands(void);
201
extern void setkernur(Ureg*, Proc*);		/* only devproc.c */
202
extern void syscallfmt(int syscallno, ulong pc, va_list list);
203
extern void sysretfmt(int syscallno, va_list list, long ret, uvlong start, uvlong stop);
204
extern void* sysexecregs(uintptr, ulong, int);
205
extern void sysprocsetup(Proc*);
206
extern void validalign(uintptr, unsigned);
207
 
208
/* libc */
209
long labs(long);
210
 
211
/*
212
 * PCI stuff.
213
 */
214
 
215
extern void forkret(void);
216
extern int userureg(Ureg*);
217
void*	vmap(uintptr, usize);
218
void vunmap(void*, usize);
219
 
220
extern void kexit(Ureg*);
221
 
222
#define	getpgcolor(a)	0
223
#define	kmapinval()
224
 
225
#define PTR2UINT(p)	((uintptr)(p))
226
#define UINT2PTR(i)	((void*)(i))
227
 
228
#define	waserror()	(up->nerrlab++, setlabel(&up->errlab[up->nerrlab-1]))
229
 
230
#define KADDR(pa)	UINT2PTR(KZERO    | ((uintptr)(pa) & ~KSEGM))
231
#define PADDR(va)	PTR2UINT(PHYSDRAM | ((uintptr)(va) & ~KSEGM))
232
 
233
#define MASK(v)	((1UL << (v)) - 1)	/* mask `v' bits wide */