Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
arch
sh
include
asm
mmu.h
Go to the documentation of this file.
1
#ifndef __MMU_H
2
#define __MMU_H
3
4
/*
5
* Privileged Space Mapping Buffer (PMB) definitions
6
*/
7
#define PMB_PASCR 0xff000070
8
#define PMB_IRMCR 0xff000078
9
10
#define PASCR_SE 0x80000000
11
12
#define PMB_ADDR 0xf6100000
13
#define PMB_DATA 0xf7100000
14
15
#define NR_PMB_ENTRIES 16
16
17
#define PMB_E_MASK 0x0000000f
18
#define PMB_E_SHIFT 8
19
20
#define PMB_PFN_MASK 0xff000000
21
22
#define PMB_SZ_16M 0x00000000
23
#define PMB_SZ_64M 0x00000010
24
#define PMB_SZ_128M 0x00000080
25
#define PMB_SZ_512M 0x00000090
26
#define PMB_SZ_MASK PMB_SZ_512M
27
#define PMB_C 0x00000008
28
#define PMB_WT 0x00000001
29
#define PMB_UB 0x00000200
30
#define PMB_CACHE_MASK (PMB_C | PMB_WT | PMB_UB)
31
#define PMB_V 0x00000100
32
33
#define PMB_NO_ENTRY (-1)
34
35
#ifndef __ASSEMBLY__
36
#include <linux/errno.h>
37
#include <
linux/threads.h
>
38
#include <asm/page.h>
39
40
/* Default "unsigned long" context */
41
typedef
unsigned
long
mm_context_id_t
[
NR_CPUS
];
42
43
typedef
struct
{
44
#ifdef CONFIG_MMU
45
mm_context_id_t
id
;
46
void
*vdso;
47
#else
48
unsigned
long
end_brk;
49
#endif
50
#ifdef CONFIG_BINFMT_ELF_FDPIC
51
unsigned
long
exec_fdpic_loadmap;
52
unsigned
long
interp_fdpic_loadmap;
53
#endif
54
}
mm_context_t
;
55
56
#ifdef CONFIG_PMB
57
/* arch/sh/mm/pmb.c */
58
bool
__in_29bit_mode
(
void
);
59
60
void
pmb_init
(
void
);
61
int
pmb_bolt_mapping
(
unsigned
long
virt,
phys_addr_t
phys
,
62
unsigned
long
size
,
pgprot_t
prot);
63
void
__iomem
*
pmb_remap_caller
(
phys_addr_t
phys
,
unsigned
long
size
,
64
pgprot_t
prot,
void
*
caller
);
65
int
pmb_unmap
(
void
__iomem
*
addr
);
66
67
#else
68
69
static
inline
int
70
pmb_bolt_mapping
(
unsigned
long
virt,
phys_addr_t
phys
,
71
unsigned
long
size
,
pgprot_t
prot)
72
{
73
return
-
EINVAL
;
74
}
75
76
static
inline
void
__iomem
*
77
pmb_remap_caller
(
phys_addr_t
phys
,
unsigned
long
size
,
78
pgprot_t
prot,
void
*
caller
)
79
{
80
return
NULL
;
81
}
82
83
static
inline
int
pmb_unmap
(
void
__iomem
*
addr
)
84
{
85
return
-
EINVAL
;
86
}
87
88
#define pmb_init(addr) do { } while (0)
89
90
#ifdef CONFIG_29BIT
91
#define __in_29bit_mode() (1)
92
#else
93
#define __in_29bit_mode() (0)
94
#endif
95
96
#endif
/* CONFIG_PMB */
97
98
static
inline
void
__iomem
*
99
pmb_remap(
phys_addr_t
phys
,
unsigned
long
size
,
pgprot_t
prot)
100
{
101
return
pmb_remap_caller
(phys, size, prot, __builtin_return_address(0));
102
}
103
104
#endif
/* __ASSEMBLY__ */
105
106
#endif
/* __MMU_H */
Generated on Thu Jan 10 2013 12:49:58 for Linux Kernel by
1.8.2