diff options
author | Matias Zabaljauregui <zabaljauregui@gmail.com> | 2009-06-13 00:27:07 -0400 |
---|---|---|
committer | Rusty Russell <rusty@rustcorp.com.au> | 2009-06-12 08:57:08 -0400 |
commit | acdd0b6292b282c4511897ac2691a47befbf1c6a (patch) | |
tree | 1bfcfc32b11d35e99fec5bbf52b19d6ee038f25e /drivers/lguest/lg.h | |
parent | cefcad1773197523e11e18b669f245e6a8d32058 (diff) |
lguest: PAE support
This version requires that host and guest have the same PAE status.
NX cap is not offered to the guest, yet.
Signed-off-by: Matias Zabaljauregui <zabaljauregui@gmail.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'drivers/lguest/lg.h')
-rw-r--r-- | drivers/lguest/lg.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/lguest/lg.h b/drivers/lguest/lg.h index cacc2da2058d..6201ce59e886 100644 --- a/drivers/lguest/lg.h +++ b/drivers/lguest/lg.h | |||
@@ -137,6 +137,8 @@ int run_guest(struct lg_cpu *cpu, unsigned long __user *user); | |||
137 | * in the kernel. */ | 137 | * in the kernel. */ |
138 | #define pgd_flags(x) (pgd_val(x) & ~PAGE_MASK) | 138 | #define pgd_flags(x) (pgd_val(x) & ~PAGE_MASK) |
139 | #define pgd_pfn(x) (pgd_val(x) >> PAGE_SHIFT) | 139 | #define pgd_pfn(x) (pgd_val(x) >> PAGE_SHIFT) |
140 | #define pmd_flags(x) (pmd_val(x) & ~PAGE_MASK) | ||
141 | #define pmd_pfn(x) (pmd_val(x) >> PAGE_SHIFT) | ||
140 | 142 | ||
141 | /* interrupts_and_traps.c: */ | 143 | /* interrupts_and_traps.c: */ |
142 | unsigned int interrupt_pending(struct lg_cpu *cpu, bool *more); | 144 | unsigned int interrupt_pending(struct lg_cpu *cpu, bool *more); |
@@ -170,6 +172,9 @@ int init_guest_pagetable(struct lguest *lg); | |||
170 | void free_guest_pagetable(struct lguest *lg); | 172 | void free_guest_pagetable(struct lguest *lg); |
171 | void guest_new_pagetable(struct lg_cpu *cpu, unsigned long pgtable); | 173 | void guest_new_pagetable(struct lg_cpu *cpu, unsigned long pgtable); |
172 | void guest_set_pgd(struct lguest *lg, unsigned long gpgdir, u32 i); | 174 | void guest_set_pgd(struct lguest *lg, unsigned long gpgdir, u32 i); |
175 | #ifdef CONFIG_X86_PAE | ||
176 | void guest_set_pmd(struct lguest *lg, unsigned long gpgdir, u32 i); | ||
177 | #endif | ||
173 | void guest_pagetable_clear_all(struct lg_cpu *cpu); | 178 | void guest_pagetable_clear_all(struct lg_cpu *cpu); |
174 | void guest_pagetable_flush_user(struct lg_cpu *cpu); | 179 | void guest_pagetable_flush_user(struct lg_cpu *cpu); |
175 | void guest_set_pte(struct lg_cpu *cpu, unsigned long gpgdir, | 180 | void guest_set_pte(struct lg_cpu *cpu, unsigned long gpgdir, |