]> git.lizzy.rs Git - plan9front.git/blob - sys/src/9/omap/fns.h
kernel: add portable uncached memory allocator (ucalloc) (from sources)
[plan9front.git] / sys / src / 9 / omap / fns.h
1 #define checkmmu(a, b)
2 #define countpagerefs(a, b)
3
4 #include "../port/portfns.h"
5
6 extern int led(int, int);
7 extern void ledexit(int);
8 extern void delay(int);
9 extern void _uartputs(char*, int);
10 extern int _uartprint(char*, ...);
11
12 #pragma varargck argpos _uartprint 1
13
14 extern void archreboot(void);
15 extern void archreset(void);
16 extern void cachedinv(void);
17 extern void cachedinvse(void*, int);
18 extern void cachedwb(void);
19 extern void cachedwbinv(void);
20 extern void cachedwbinvse(void*, int);
21 extern void cachedwbse(void*, int);
22 extern void cacheiinv(void);
23 extern void cacheinfo(int level, Memcache *cp);
24 extern void cacheuwbinv(void);
25 extern uintptr cankaddr(uintptr pa);
26 extern void chkmissing(void);
27 extern void clockshutdown(void);
28 extern int clz(ulong);
29 extern int cmpswap(long*, long, long);
30 extern void coherence(void);
31 extern void configscreengpio(void);
32 extern u32int controlget(void);
33 extern u32int cpctget(void);
34 extern u32int cpidget(void);
35 extern ulong cprd(int cp, int op1, int crn, int crm, int op2);
36 extern ulong cprdsc(int op1, int crn, int crm, int op2);
37 extern void cpuidprint(void);
38 extern void cpwr(int cp, int op1, int crn, int crm, int op2, ulong val);
39 extern void cpwrsc(int op1, int crn, int crm, int op2, ulong val);
40 #define cycles(ip) *(ip) = lcycles()
41 extern u32int dacget(void);
42 extern void dacput(u32int);
43 extern void dmainit(void);
44 extern int dmastart(void *, int, void *, int, uint, Rendez *, int *);
45 extern void dmatest(void);
46 extern u32int farget(void);
47 extern ulong fprd(int fpreg);
48 extern void fpwr(int fpreg, ulong val);
49 extern u32int fsrget(void);
50 extern u32int getscr(void);
51 extern u32int getpsr(void);
52 extern ulong getwayssets(void);
53 extern u32int ifsrget(void);
54 extern void intrsoff(void);
55 extern int isaconfig(char*, int, ISAConf*);
56 extern int isdmadone(int);
57 extern int ispow2(uvlong);
58 extern void l2cacheuinv(void);
59 extern void l2cacheuwb(void);
60 extern void l2cacheuwbinv(void);
61 extern void lastresortprint(char *buf, long bp);
62 extern int log2(ulong);
63 extern void machinit(void);
64 extern void mmuidmap(uintptr phys, int mbs);
65 extern void mmuinvalidate(void);                /* 'mmu' or 'tlb'? */
66 extern void mmuinvalidateaddr(u32int);          /* 'mmu' or 'tlb'? */
67 extern void mousectl(Cmdbuf *cb);
68 extern u32int pidget(void);
69 extern void pidput(u32int);
70 extern vlong probeaddr(uintptr);
71 extern void procrestore(Proc *);
72 extern void procsave(Proc*);
73 extern void procsetup(Proc*);
74 extern void procfork(Proc*);
75 extern void _reset(void);
76 extern void screenclockson(void);
77 extern void screeninit(void);
78 extern void serialputs(char* s, int n);
79 extern void setcachelvl(int);
80 extern void setr13(int, u32int*);
81 extern int tas(void *);
82 extern u32int ttbget(void);
83 extern void ttbput(u32int);
84 extern void watchdoginit(void);
85
86 extern int irqenable(int, void (*)(Ureg*, void*), void*, char*);
87 extern int irqdisable(int, void (*)(Ureg*, void*), void*, char*);
88 #define intrenable(i, f, a, b, n)       irqenable((i), (f), (a), (n))
89 #define intrdisable(i, f, a, b, n)      irqdisable((i), (f), (a), (n))
90 extern void vectors(void);
91 extern void vtable(void);
92
93 /* dregs, going away */
94 extern int inb(int);
95 extern void outb(int, int);
96
97 /*
98  * Things called in main.
99  */
100 extern void archconfinit(void);
101 extern void clockinit(void);
102 extern int i8250console(void);
103 extern void links(void);
104 extern void mmuinit(void);
105 extern void touser(uintptr);
106 extern void trapinit(void);
107
108
109 extern int fpiarm(Ureg*);
110 extern int fpudevprocio(Proc*, void*, long, uintptr, int);
111 extern void fpuinit(void);
112 extern void fpunoted(void);
113 extern void fpunotify(Ureg*);
114 extern void fpuprocrestore(Proc*);
115 extern void fpuprocsave(Proc*);
116 extern void fpusysprocsetup(Proc*);
117 extern void fpusysrfork(Ureg*);
118 extern void fpusysrforkchild(Proc*, Ureg*, Proc*);
119 extern int fpuemu(Ureg*);
120
121 /*
122  * Miscellaneous machine dependent stuff.
123  */
124 extern char* getenv(char*, char*, int);
125 char*   getconf(char*);
126 uintptr mmukmap(uintptr, uintptr, usize);
127 uintptr mmukunmap(uintptr, uintptr, usize);
128 extern void* mmuuncache(void*, usize);
129 extern void* ucalloc(usize);
130 extern Block* ucallocb(int);
131 extern void* ucallocalign(usize size, int align, int span);
132 extern void ucfree(void*);
133 extern void ucfreeb(Block*);
134
135 /*
136  * Things called from port.
137  */
138 extern void delay(int);                         /* only scheddump() */
139 extern int islo(void);
140 extern void microdelay(int);                    /* only edf.c */
141 extern void evenaddr(uintptr);
142 extern void idlehands(void);
143 extern void setkernur(Ureg*, Proc*);            /* only devproc.c */
144 extern void* sysexecregs(uintptr, ulong, int);
145 extern void sysprocsetup(Proc*);
146
147 /*
148  * PCI stuff.
149  */
150
151 int     cas32(void*, u32int, u32int);
152 int     tas32(void*);
153
154 #define CASU(p, e, n)   cas32((p), (u32int)(e), (u32int)(n))
155 #define CASV(p, e, n)   cas32((p), (u32int)(e), (u32int)(n))
156 #define CASW(addr, exp, new)    cas32((addr), (exp), (new))
157 #define TAS(addr)       tas32(addr)
158
159 extern void forkret(void);
160 extern int userureg(Ureg*);
161 void*   vmap(uintptr, usize);
162 void    vunmap(void*, usize);
163
164 extern void kexit(Ureg*);
165
166 #define getpgcolor(a)   0
167 #define kmapinval()
168
169 #define PTR2UINT(p)     ((uintptr)(p))
170 #define UINT2PTR(i)     ((void*)(i))
171
172 #define waserror()      (up->nerrlab++, setlabel(&up->errlab[up->nerrlab-1]))
173
174 #define KADDR(pa)       UINT2PTR(KZERO    | ((uintptr)(pa) & ~KSEGM))
175 #define PADDR(va)       PTR2UINT(PHYSDRAM | ((uintptr)(va) & ~KSEGM))
176
177 #define wave(c) *(ulong *)PHYSCONS = (c)
178
179 #define MASK(v) ((1UL << (v)) - 1)      /* mask `v' bits wide */