1/****************************************************************************
2 ****************************************************************************
3 ***
4 ***   This header was automatically generated from a Linux kernel header
5 ***   of the same name, to make information necessary for userspace to
6 ***   call into the kernel available to libc.  It contains only constants,
7 ***   structures, and macros generated from the original header, and thus,
8 ***   contains no copyrightable information.
9 ***
10 ****************************************************************************
11 ****************************************************************************/
12#ifndef __MMU_H
13#define __MMU_H
14
15typedef unsigned long mm_context_id_t[NR_CPUS];
16
17typedef struct {
18 mm_context_id_t id;
19 void *vdso;
20} mm_context_t;
21
22#define PMB_PASCR 0xff000070
23#define PMB_IRMCR 0xff000078
24
25#define PMB_ADDR 0xf6100000
26#define PMB_DATA 0xf7100000
27#define PMB_ENTRY_MAX 16
28#define PMB_E_MASK 0x0000000f
29#define PMB_E_SHIFT 8
30
31#define PMB_SZ_16M 0x00000000
32#define PMB_SZ_64M 0x00000010
33#define PMB_SZ_128M 0x00000080
34#define PMB_SZ_512M 0x00000090
35#define PMB_SZ_MASK PMB_SZ_512M
36#define PMB_C 0x00000008
37#define PMB_WT 0x00000001
38#define PMB_UB 0x00000200
39#define PMB_V 0x00000100
40
41#define PMB_NO_ENTRY (-1)
42
43struct pmb_entry;
44
45struct pmb_entry {
46 unsigned long vpn;
47 unsigned long ppn;
48 unsigned long flags;
49
50 int entry;
51
52 struct pmb_entry *next;
53
54 struct pmb_entry *link;
55};
56
57struct pmb_entry *pmb_alloc(unsigned long vpn, unsigned long ppn,
58 unsigned long flags);
59
60#endif
61
62