[PATCH 16/25][V3] turn page operations into native versions

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Glauber de Oliveira Costa
Date: Wednesday, August 15, 2007 - 5:49 am

This patch turns the page operations (set and make a page table)
into native_ versions. The operations itself will be later
overriden by paravirt.

Signed-off-by: Glauber de Oliveira Costa <gcosta@redhat.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
 include/asm-x86_64/page.h |   36 +++++++++++++++++++++++++++++++-----
 1 files changed, 31 insertions(+), 5 deletions(-)

diff --git a/include/asm-x86_64/page.h b/include/asm-x86_64/page.h
index 88adf1a..ec8b245 100644
--- a/include/asm-x86_64/page.h
+++ b/include/asm-x86_64/page.h
@@ -64,16 +64,42 @@ typedef struct { unsigned long pgprot; } pgprot_t;
 
 extern unsigned long phys_base;
 
-#define pte_val(x)	((x).pte)
-#define pmd_val(x)	((x).pmd)
-#define pud_val(x)	((x).pud)
-#define pgd_val(x)	((x).pgd)
-#define pgprot_val(x)	((x).pgprot)
+static inline unsigned long native_pte_val(pte_t pte)
+{
+	return pte.pte;
+}
+
+static inline unsigned long native_pud_val(pud_t pud)
+{
+	return pud.pud;
+}
+
+
+static inline unsigned long native_pmd_val(pmd_t pmd)
+{
+	return pmd.pmd;
+}
+
+static inline unsigned long native_pgd_val(pgd_t pgd)
+{
+	return pgd.pgd;
+}
+
+#ifdef CONFIG_PARAVIRT
+#include <asm/paravirt.h>
+#else
+#define pte_val(x)	native_pte_val(x)
+#define pmd_val(x)	native_pmd_val(x)
+#define pud_val(x)	native_pud_val(x)
+#define pgd_val(x)	native_pgd_val(x)
 
 #define __pte(x) ((pte_t) { (x) } )
 #define __pmd(x) ((pmd_t) { (x) } )
 #define __pud(x) ((pud_t) { (x) } )
 #define __pgd(x) ((pgd_t) { (x) } )
+#endif /* CONFIG_PARAVIRT */
+
+#define pgprot_val(x)	((x).pgprot)
 #define __pgprot(x)	((pgprot_t) { (x) } )
 
 #endif /* !__ASSEMBLY__ */
-- 
1.4.4.2

-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH 0/25][V3] pvops_64 last round (hopefully), Glauber de Oliveira ..., (Wed Aug 15, 5:49 am)
[PATCH 1/25][V3] header file move, Glauber de Oliveira ..., (Wed Aug 15, 5:49 am)
[PATCH 2/25][V3] tlb flushing routines, Glauber de Oliveira ..., (Wed Aug 15, 5:49 am)
[PATCH 3/25][V3] irq_flags / halt routines, Glauber de Oliveira ..., (Wed Aug 15, 5:49 am)
[PATCH 4/25][V3] Add debugreg/load_rsp native hooks, Glauber de Oliveira ..., (Wed Aug 15, 5:49 am)
[PATCH 5/25][V3] native versions for system.h functions, Glauber de Oliveira ..., (Wed Aug 15, 5:49 am)
[PATCH 6/25][V3] add native_apic read and write functions, ..., Glauber de Oliveira ..., (Wed Aug 15, 5:49 am)
[PATCH 7/25][V3] interrupt related native paravirt functions., Glauber de Oliveira ..., (Wed Aug 15, 5:49 am)
[PATCH 8/25][V3] use macro for sti/cli in spinlock definitions, Glauber de Oliveira ..., (Wed Aug 15, 5:49 am)
[PATCH 9/25][V3] report ring kernel is running without par ..., Glauber de Oliveira ..., (Wed Aug 15, 5:49 am)
[PATCH 10/25][V3] export math_state_restore, Glauber de Oliveira ..., (Wed Aug 15, 5:49 am)
[PATCH 11/25][V3] native versions for set pagetables, Glauber de Oliveira ..., (Wed Aug 15, 5:49 am)
[PATCH 12/25][V3] turn msr.h functions into native versions, Glauber de Oliveira ..., (Wed Aug 15, 5:49 am)
[PATCH 13/25][V3] add native functions for descriptors han ..., Glauber de Oliveira ..., (Wed Aug 15, 5:49 am)
[PATCH 14/25][V3] get rid of inline asm for load_cr3, Glauber de Oliveira ..., (Wed Aug 15, 5:49 am)
[PATCH 15/25][V3] introducing paravirt_activate_mm, Glauber de Oliveira ..., (Wed Aug 15, 5:49 am)
[PATCH 16/25][V3] turn page operations into native versions, Glauber de Oliveira ..., (Wed Aug 15, 5:49 am)
[PATCH 17/25][V3] introduce paravirt_release_pgd(), Glauber de Oliveira ..., (Wed Aug 15, 5:49 am)
[PATCH 18/25][V3] turn priviled operations into macros in ..., Glauber de Oliveira ..., (Wed Aug 15, 5:49 am)
[PATCH 19/25][V3] time-related functions paravirt provisions, Glauber de Oliveira ..., (Wed Aug 15, 5:49 am)
[PATCH 20/25][V3] replace syscall_init, Glauber de Oliveira ..., (Wed Aug 15, 5:49 am)
[PATCH 21/25][V3] export cpu_gdt_descr, Glauber de Oliveira ..., (Wed Aug 15, 5:49 am)
[PATCH 22/25][V3] turn priviled operation into a macro, Glauber de Oliveira ..., (Wed Aug 15, 5:49 am)
[PATCH 23/25][V3] provide paravirt patching function, Glauber de Oliveira ..., (Wed Aug 15, 5:49 am)
[PATCH 24/25][V3] paravirt hooks for arch initialization, Glauber de Oliveira ..., (Wed Aug 15, 5:49 am)
[PATCH 25/25][V3] add paravirtualization support for x86_64, Glauber de Oliveira ..., (Wed Aug 15, 5:49 am)
Re: [PATCH 3/25][V3] irq_flags / halt routines, Andi Kleen, (Wed Aug 15, 6:55 am)
Re: [PATCH 21/25][V3] export cpu_gdt_descr, Andi Kleen, (Wed Aug 15, 7:03 am)
Re: [PATCH 3/25][V3] irq_flags / halt routines, Glauber de Oliveira ..., (Wed Aug 15, 7:18 am)
Re: [PATCH 18/25][V3] turn priviled operations into macros ..., Glauber de Oliveira ..., (Wed Aug 15, 7:19 am)
Re: [PATCH 21/25][V3] export cpu_gdt_descr, Glauber de Oliveira ..., (Wed Aug 15, 7:25 am)
Re: [PATCH 3/25][V3] irq_flags / halt routines, Glauber de Oliveira ..., (Wed Aug 15, 8:09 am)
Re: [PATCH 3/25][V3] irq_flags / halt routines, Avi Kivity, (Wed Aug 15, 8:13 am)
Re: [PATCH 3/25][V3] irq_flags / halt routines, Glauber de Oliveira ..., (Wed Aug 15, 8:17 am)
Re: [PATCH 3/25][V3] irq_flags / halt routines, Andi Kleen, (Wed Aug 15, 8:42 am)
Re: [PATCH 21/25][V3] export cpu_gdt_descr, Andi Kleen, (Wed Aug 15, 8:43 am)
Re: [PATCH 3/25][V3] irq_flags / halt routines, Andi Kleen, (Wed Aug 15, 9:36 am)
Re: [PATCH 0/25][V3] pvops_64 last round (hopefully), Jeremy Fitzhardinge, (Wed Aug 15, 11:04 am)