Make x86 consistent with other architectures and put memory page specific defines to lib/x86/asm/page.h Cc: Andrew Jones <drjones@xxxxxxxxxx> Cc: Thomas Huth <thuth@xxxxxxxxxx> Cc: Radim Krčmář <rkrcmar@xxxxxxxxxx> Reviewed-by: Andrew Jones <drjones@xxxxxxxxxx> Signed-off-by: Alexander Gordeev <agordeev@xxxxxxxxxx> --- lib/x86/asm/page.h | 33 +++++++++++++++++++++++++++++++++ lib/x86/vm.c | 17 ----------------- lib/x86/vm.h | 14 +------------- 3 files changed, 34 insertions(+), 30 deletions(-) create mode 100644 lib/x86/asm/page.h diff --git a/lib/x86/asm/page.h b/lib/x86/asm/page.h new file mode 100644 index 0000000..549c62d --- /dev/null +++ b/lib/x86/asm/page.h @@ -0,0 +1,33 @@ +#ifndef _ASM_X86_PAGE_H_ +#define _ASM_X86_PAGE_H_ +/* + * Copyright (C) 2016, Red Hat Inc, Alexander Gordeev <agordeev@xxxxxxxxxx> + * + * This work is licensed under the terms of the GNU LGPL, version 2. + */ + + +#define PAGE_SIZE 4096ul +#ifdef __x86_64__ +#define LARGE_PAGE_SIZE (512 * PAGE_SIZE) +#else +#define LARGE_PAGE_SIZE (1024 * PAGE_SIZE) +#endif + +#define PTE_PRESENT (1ull << 0) +#define PTE_PSE (1ull << 7) +#define PTE_WRITE (1ull << 1) +#define PTE_USER (1ull << 2) +#define PTE_ADDR (0xffffffffff000ull) + +#ifdef __x86_64__ +#define PAGE_LEVEL 4 +#define PGDIR_WIDTH 9 +#define PGDIR_MASK 511 +#else +#define PAGE_LEVEL 2 +#define PGDIR_WIDTH 10 +#define PGDIR_MASK 1023 +#endif + +#endif diff --git a/lib/x86/vm.c b/lib/x86/vm.c index 7ce7bbc..9c94ca5 100644 --- a/lib/x86/vm.c +++ b/lib/x86/vm.c @@ -2,13 +2,6 @@ #include "vm.h" #include "libcflat.h" -#define PAGE_SIZE 4096ul -#ifdef __x86_64__ -#define LARGE_PAGE_SIZE (512 * PAGE_SIZE) -#else -#define LARGE_PAGE_SIZE (1024 * PAGE_SIZE) -#endif - static void *free = 0; static void *vfree_top = 0; @@ -44,16 +37,6 @@ void free_page(void *page) extern char edata; static unsigned long end_of_memory; -#ifdef __x86_64__ -#define PAGE_LEVEL 4 -#define PGDIR_WIDTH 9 -#define PGDIR_MASK 511 -#else -#define PAGE_LEVEL 2 -#define PGDIR_WIDTH 10 -#define PGDIR_MASK 1023 -#endif - unsigned long *install_pte(unsigned long *cr3, int pte_level, void *virt, diff --git a/lib/x86/vm.h b/lib/x86/vm.h index 28794d7..72f84e6 100644 --- a/lib/x86/vm.h +++ b/lib/x86/vm.h @@ -2,19 +2,7 @@ #define VM_H #include "processor.h" - -#define PAGE_SIZE 4096ul -#ifdef __x86_64__ -#define LARGE_PAGE_SIZE (512 * PAGE_SIZE) -#else -#define LARGE_PAGE_SIZE (1024 * PAGE_SIZE) -#endif - -#define PTE_PRESENT (1ull << 0) -#define PTE_PSE (1ull << 7) -#define PTE_WRITE (1ull << 1) -#define PTE_USER (1ull << 2) -#define PTE_ADDR (0xffffffffff000ull) +#include "asm/page.h" void setup_vm(); -- 1.8.3.1 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html