xref: /plan9/sys/src/9/bcm/fns.h (revision fac6300f1f1b25611e114fc0bdda9cf428c13da4)
1 #include "../port/portfns.h"
2 
3 Dirtab*	addarchfile(char*, int, long(*)(Chan*, void*, long, vlong),
4 	long(*)(Chan*, void*, long, vlong));
5 extern void archreboot(void);
6 extern void archreset(void);
7 extern void armtimerset(int);
8 extern void cachedwbinv(void);
9 extern void cachedwbse(void*, int);
10 extern void cachedwbinvse(void*, int);
11 extern void cacheiinv(void);
12 extern void cacheuwbinv(void);
13 extern uintptr cankaddr(uintptr pa);
14 extern int cas32(void*, u32int, u32int);
15 extern void checkmmu(uintptr, uintptr);
16 extern void clockinit(void);
17 extern void clockshutdown(void);
18 extern int cmpswap(long*, long, long);
19 extern void coherence(void);
20 extern ulong cprd(int cp, int op1, int crn, int crm, int op2);
21 extern ulong cprdsc(int op1, int crn, int crm, int op2);
22 extern void cpuidprint(void);
23 extern void cpwr(int cp, int op1, int crn, int crm, int op2, ulong val);
24 extern void cpwrsc(int op1, int crn, int crm, int op2, ulong val);
25 #define cycles(ip) *(ip) = lcycles()
26 extern void dmastart(int, int, int, void*, void*, int);
27 extern int dmawait(int);
28 extern int fbblank(int);
29 extern void* fbinit(int, int*, int*, int*);
30 extern u32int farget(void);
31 extern void fpon(void);
32 extern ulong fprd(int fpreg);
33 extern void fprestreg(int fpreg, uvlong val);
34 extern void fpsave(FPsave *);
35 extern ulong fpsavereg(int fpreg, uvlong *fpp);
36 extern void fpwr(int fpreg, ulong val);
37 extern u32int fsrget(void);
38 extern ulong getclkrate(int);
39 extern char* getconf(char*);
40 extern char *getethermac(void);
41 extern uint getfirmware(void);
42 extern int getpower(int);
43 extern void getramsize(Confmem*);
44 extern u32int ifsrget(void);
45 extern void irqenable(int, void (*)(Ureg*, void*), void*);
46 #define intrenable(i, f, a, b, n) irqenable((i), (f), (a))
47 extern void intrsoff(void);
48 extern int isaconfig(char*, int, ISAConf*);
49 extern void links(void);
50 extern void mmuinit(void);
51 extern void mmuinit1(void);
52 extern void mmuinvalidate(void);
53 extern void mmuinvalidateaddr(u32int);
54 extern uintptr mmukmap(uintptr, uintptr, usize);
55 extern void okay(int);
56 extern void procrestore(Proc *);
57 extern void procsave(Proc*);
58 extern void procsetup(Proc*);
59 extern void screeninit(void);
60 #define sdfree(p) free(p)
61 #define sdmalloc(n)	mallocalign(n, CACHELINESZ, 0, 0)
62 extern void setpower(int, int);
63 extern void setr13(int, u32int*);
64 extern int splfhi(void);
65 extern int splflo(void);
66 extern void swcursorinit(void);
67 extern void syscallfmt(int syscallno, ulong pc, va_list list);
68 extern void sysretfmt(int syscallno, va_list list, long ret, uvlong start, uvlong stop);
69 extern int tas(void *);
70 extern void touser(uintptr);
71 extern void trapinit(void);
72 extern void uartconsinit(void);
73 extern int userureg(Ureg*);
74 extern void vectors(void);
75 extern void vtable(void);
76 extern void wdogoff(void);
77 
78 /*
79  * floating point emulation
80  */
81 extern int fpiarm(Ureg*);
82 extern int fpudevprocio(Proc*, void*, long, uintptr, int);
83 extern void fpuinit(void);
84 extern void fpunoted(void);
85 extern void fpunotify(Ureg*);
86 extern void fpuprocrestore(Proc*);
87 extern void fpuprocsave(Proc*);
88 extern void fpusysprocsetup(Proc*);
89 extern void fpusysrfork(Ureg*);
90 extern void fpusysrforkchild(Proc*, Ureg*, Proc*);
91 extern int fpuemu(Ureg*);
92 /*
93  * Things called from port.
94  */
95 extern void delay(int);				/* only scheddump() */
96 extern int islo(void);
97 extern void microdelay(int);			/* only edf.c */
98 extern void idlehands(void);
99 extern void setkernur(Ureg*, Proc*);		/* only devproc.c */
100 extern void* sysexecregs(uintptr, ulong, int);
101 extern void sysprocsetup(Proc*);
102 extern void validalign(uintptr, unsigned);
103 
104 extern void kexit(Ureg*);
105 
106 #define	getpgcolor(a)	0
107 #define	kmapinval()
108 #define countpagerefs(a, b)
109 
110 #define PTR2UINT(p)	((uintptr)(p))
111 #define UINT2PTR(i)	((void*)(i))
112 
113 #define	waserror()	(up->nerrlab++, setlabel(&up->errlab[up->nerrlab-1]))
114 
115 #define KADDR(pa)	UINT2PTR(KZERO    | ((uintptr)(pa) & ~KSEGM))
116 #define PADDR(va)	PTR2UINT(PHYSDRAM | ((uintptr)(va) & ~KSEGM))
117 #define DMAADDR(va)	PTR2UINT(BUSDRAM  | ((uintptr)(va) & ~KSEGM))
118 #define DMAIO(va)	PTR2UINT(BUSIO    | ((uintptr)(va) & ~VIRTIO))
119 
120 #define MASK(v)	((1UL << (v)) - 1)	/* mask `v' bits wide */
121