blob: 8765ed8b10531ad4360aa1c7735826fd5aa5e103 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
|
/******************************************************************************
* include/asm-x86/shadow_ops.h
*
* Copyright (c) 2005 Michael A Fetterman
* Based on an earlier implementation by Ian Pratt et al
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef _XEN_SHADOW_OPS_H
#define _XEN_SHADOW_OPS_H
#define PAGING_L4 4UL
#define PAGING_L3 3UL
#define PAGING_L2 2UL
#define PAGING_L1 1UL
#define PAE_CR3_ALIGN 5
#define PAE_CR3_IDX_MASK 0x7f
#if defined( GUEST_PGENTRY_32 )
#define GUEST_L1_PAGETABLE_ENTRIES L1_PAGETABLE_ENTRIES_32
#define GUEST_L2_PAGETABLE_ENTRIES L2_PAGETABLE_ENTRIES_32
#define GUEST_ROOT_PAGETABLE_ENTRIES ROOT_PAGETABLE_ENTRIES_32
#define GUEST_L2_PAGETABLE_SHIFT L2_PAGETABLE_SHIFT_32
#define guest_l1_pgentry_t l1_pgentry_32_t
#define guest_l2_pgentry_t l2_pgentry_32_t
#define guest_root_pgentry_t l2_pgentry_32_t
#define guest_l1e_get_paddr l1e_get_paddr_32
#define guest_l2e_get_paddr l2e_get_paddr_32
#define guest_get_pte_flags get_pte_flags_32
#define guest_put_pte_flags put_pte_flags_32
#define guest_l1e_get_flags l1e_get_flags_32
#define guest_l2e_get_flags l2e_get_flags_32
#define guest_root_get_flags l2e_get_flags_32
#define guest_root_get_intpte l2e_get_intpte
#define guest_l1e_empty l1e_empty_32
#define guest_l2e_empty l2e_empty_32
#define guest_l1e_from_pfn l1e_from_pfn_32
#define guest_l2e_from_pfn l2e_from_pfn_32
#define guest_l1e_from_paddr l1e_from_paddr_32
#define guest_l2e_from_paddr l2e_from_paddr_32
#define guest_l1e_from_page l1e_from_page_32
#define guest_l2e_from_page l2e_from_page_32
#define guest_l1e_add_flags l1e_add_flags_32
#define guest_l2e_add_flags l2e_add_flags_32
#define guest_l1e_remove_flag l1e_remove_flags_32
#define guest_l2e_remove_flag l2e_remove_flags_32
#define guest_l1e_has_changed l1e_has_changed_32
#define guest_l2e_has_changed l2e_has_changed_32
#define root_entry_has_changed l2e_has_changed_32
#define guest_l1_table_offset l1_table_offset_32
#define guest_l2_table_offset l2_table_offset_32
#define guest_linear_l1_table linear_pg_table_32
#define guest_linear_l2_table linear_l2_table_32
#define guest_va_to_l1mfn va_to_l1mfn_32
#else
#define GUEST_L1_PAGETABLE_ENTRIES L1_PAGETABLE_ENTRIES
#define GUEST_L2_PAGETABLE_ENTRIES L2_PAGETABLE_ENTRIES
#define GUEST_ROOT_PAGETABLE_ENTRIES ROOT_PAGETABLE_ENTRIES
#define GUEST_L2_PAGETABLE_SHIFT L2_PAGETABLE_SHIFT
#define guest_l1_pgentry_t l1_pgentry_t
#define guest_l2_pgentry_t l2_pgentry_t
#define guest_root_pgentry_t l4_pgentry_t
#define guest_l1e_get_paddr l1e_get_paddr
#define guest_l2e_get_paddr l2e_get_paddr
#define guest_get_pte_flags get_pte_flags
#define guest_put_pte_flags put_pte_flags
#define guest_l1e_get_flags l1e_get_flags
#define guest_l2e_get_flags l2e_get_flags
#define guest_root_get_flags l4e_get_flags
#define guest_root_get_intpte l4e_get_intpte
#define guest_l1e_empty l1e_empty
#define guest_l2e_empty l2e_empty
#define guest_l1e_from_pfn l1e_from_pfn
#define guest_l2e_from_pfn l2e_from_pfn
#define guest_l1e_from_paddr l1e_from_paddr
#define guest_l2e_from_paddr l2e_from_paddr
#define guest_l1e_from_page l1e_from_page
#define guest_l2e_from_page l2e_from_page
#define guest_l1e_add_flags l1e_add_flags
#define guest_l2e_add_flags l2e_add_flags
#define guest_l1e_remove_flag l1e_remove_flags
#define guest_l2e_remove_flag l2e_remove_flags
#define guest_l1e_has_changed l1e_has_changed
#define guest_l2e_has_changed l2e_has_changed
#define root_entry_has_changed l4e_has_changed
#define guest_l1_table_offset l1_table_offset
#define guest_l2_table_offset l2_table_offset
#define guest_linear_l1_table linear_pg_table
#define guest_linear_l2_table linear_l2_table
#define guest_va_to_l1mfn va_to_l1mfn
#endif
#endif /* _XEN_SHADOW_OPS_H */
|