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
x86
include
asm
highmem.h
Go to the documentation of this file.
1
/*
2
* highmem.h: virtual kernel memory mappings for high memory
3
*
4
* Used in CONFIG_HIGHMEM systems for memory pages which
5
* are not addressable by direct kernel virtual addresses.
6
*
7
* Copyright (C) 1999 Gerhard Wichert, Siemens AG
8
*
[email protected]
9
*
10
*
11
* Redesigned the x86 32-bit VM architecture to deal with
12
* up to 16 Terabyte physical memory. With current x86 CPUs
13
* we now support up to 64 Gigabytes physical RAM.
14
*
15
* Copyright (C) 1999 Ingo Molnar <
[email protected]
>
16
*/
17
18
#ifndef _ASM_X86_HIGHMEM_H
19
#define _ASM_X86_HIGHMEM_H
20
21
#ifdef __KERNEL__
22
23
#include <
linux/interrupt.h
>
24
#include <
linux/threads.h
>
25
#include <asm/kmap_types.h>
26
#include <asm/tlbflush.h>
27
#include <asm/paravirt.h>
28
#include <asm/fixmap.h>
29
30
/* declarations for highmem.c */
31
extern
unsigned
long
highstart_pfn
,
highend_pfn
;
32
33
/*
34
* Right now we initialize only a single pte table. It can be extended
35
* easily, subsequent pte tables have to be allocated in one physical
36
* chunk of RAM.
37
*/
38
/*
39
* Ordering is:
40
*
41
* FIXADDR_TOP
42
* fixed_addresses
43
* FIXADDR_START
44
* temp fixed addresses
45
* FIXADDR_BOOT_START
46
* Persistent kmap area
47
* PKMAP_BASE
48
* VMALLOC_END
49
* Vmalloc area
50
* VMALLOC_START
51
* high_memory
52
*/
53
#define LAST_PKMAP_MASK (LAST_PKMAP-1)
54
#define PKMAP_NR(virt) ((virt-PKMAP_BASE) >> PAGE_SHIFT)
55
#define PKMAP_ADDR(nr) (PKMAP_BASE + ((nr) << PAGE_SHIFT))
56
57
extern
void
*
kmap_high
(
struct
page
*
page
);
58
extern
void
kunmap_high
(
struct
page
*
page
);
59
60
void
*
kmap
(
struct
page
*
page
);
61
void
kunmap
(
struct
page
*
page
);
62
63
void
*
kmap_atomic_prot
(
struct
page
*
page
,
pgprot_t
prot);
64
void
*
kmap_atomic
(
struct
page
*
page
);
65
void
__kunmap_atomic
(
void
*kvaddr);
66
void
*
kmap_atomic_pfn
(
unsigned
long
pfn);
67
void
*
kmap_atomic_prot_pfn
(
unsigned
long
pfn,
pgprot_t
prot);
68
struct
page
*
kmap_atomic_to_page
(
void
*
ptr
);
69
70
#define flush_cache_kmaps() do { } while (0)
71
72
extern
void
add_highpages_with_active_regions(
int
nid,
unsigned
long
start_pfn,
73
unsigned
long
end_pfn);
74
75
#endif
/* __KERNEL__ */
76
77
#endif
/* _ASM_X86_HIGHMEM_H */
Generated on Thu Jan 10 2013 12:55:09 for Linux Kernel by
1.8.2