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
arm
mm
mm.h
Go to the documentation of this file.
1
#ifdef CONFIG_MMU
2
3
/* the upper-most page table pointer */
4
extern
pmd_t
*
top_pmd
;
5
6
/*
7
* 0xffff8000 to 0xffffffff is reserved for any ARM architecture
8
* specific hacks for copying pages efficiently, while 0xffff4000
9
* is reserved for VIPT aliasing flushing by generic code.
10
*
11
* Note that we don't allow VIPT aliasing caches with SMP.
12
*/
13
#define COPYPAGE_MINICACHE 0xffff8000
14
#define COPYPAGE_V6_FROM 0xffff8000
15
#define COPYPAGE_V6_TO 0xffffc000
16
/* PFN alias flushing, for VIPT caches */
17
#define FLUSH_ALIAS_START 0xffff4000
18
19
static
inline
void
set_top_pte(
unsigned
long
va
,
pte_t
pte
)
20
{
21
pte_t
*ptep =
pte_offset_kernel
(top_pmd, va);
22
set_pte_ext
(ptep, pte, 0);
23
local_flush_tlb_kernel_page(va);
24
}
25
26
static
inline
pte_t
get_top_pte(
unsigned
long
va
)
27
{
28
pte_t
*ptep =
pte_offset_kernel
(top_pmd, va);
29
return
*ptep;
30
}
31
32
static
inline
pmd_t
*pmd_off_k(
unsigned
long
virt)
33
{
34
return
pmd_offset
(
pud_offset
(
pgd_offset_k
(virt), virt), virt);
35
}
36
37
struct
mem_type
{
38
pteval_t
prot_pte
;
39
pmdval_t
prot_l1
;
40
pmdval_t
prot_sect
;
41
unsigned
int
domain
;
42
};
43
44
const
struct
mem_type
*
get_mem_type
(
unsigned
int
type
);
45
46
extern
void
__flush_dcache_page
(
struct
address_space
*
mapping
,
struct
page
*
page
);
47
48
/*
49
* ARM specific vm_struct->flags bits.
50
*/
51
52
/* (super)section-mapped I/O regions used by ioremap()/iounmap() */
53
#define VM_ARM_SECTION_MAPPING 0x80000000
54
55
/* permanent static mappings from iotable_init() */
56
#define VM_ARM_STATIC_MAPPING 0x40000000
57
58
/* empty mapping */
59
#define VM_ARM_EMPTY_MAPPING 0x20000000
60
61
/* mapping type (attributes) for permanent static mappings */
62
#define VM_ARM_MTYPE(mt) ((mt) << 20)
63
#define VM_ARM_MTYPE_MASK (0x1f << 20)
64
65
/* consistent regions used by dma_alloc_attrs() */
66
#define VM_ARM_DMA_CONSISTENT 0x20000000
67
68
#endif
69
70
#ifdef CONFIG_ZONE_DMA
71
extern
phys_addr_t
arm_dma_limit
;
72
#else
73
#define arm_dma_limit ((phys_addr_t)~0)
74
#endif
75
76
extern
phys_addr_t
arm_lowmem_limit
;
77
78
void
__init
bootmem_init
(
void
);
79
void
arm_mm_memblock_reserve
(
void
);
80
void
dma_contiguous_remap
(
void
);
Generated on Thu Jan 10 2013 13:02:47 for Linux Kernel by
1.8.2