aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-i386/paravirt.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-i386/paravirt.h')
-rw-r--r--include/asm-i386/paravirt.h17
1 files changed, 16 insertions, 1 deletions
diff --git a/include/asm-i386/paravirt.h b/include/asm-i386/paravirt.h
index 0aacb13bb929..c49b44cdd8ee 100644
--- a/include/asm-i386/paravirt.h
+++ b/include/asm-i386/paravirt.h
@@ -2,10 +2,11 @@
2#define __ASM_PARAVIRT_H 2#define __ASM_PARAVIRT_H
3/* Various instructions on x86 need to be replaced for 3/* Various instructions on x86 need to be replaced for
4 * para-virtualization: those hooks are defined here. */ 4 * para-virtualization: those hooks are defined here. */
5
6#ifdef CONFIG_PARAVIRT
5#include <linux/stringify.h> 7#include <linux/stringify.h>
6#include <asm/page.h> 8#include <asm/page.h>
7 9
8#ifdef CONFIG_PARAVIRT
9/* These are the most performance critical ops, so we want to be able to patch 10/* These are the most performance critical ops, so we want to be able to patch
10 * callers */ 11 * callers */
11#define PARAVIRT_IRQ_DISABLE 0 12#define PARAVIRT_IRQ_DISABLE 0
@@ -50,6 +51,9 @@ struct paravirt_ops
50 char *(*memory_setup)(void); 51 char *(*memory_setup)(void);
51 void (*init_IRQ)(void); 52 void (*init_IRQ)(void);
52 53
54 void (*pagetable_setup_start)(pgd_t *pgd_base);
55 void (*pagetable_setup_done)(pgd_t *pgd_base);
56
53 void (*banner)(void); 57 void (*banner)(void);
54 58
55 unsigned long (*get_wallclock)(void); 59 unsigned long (*get_wallclock)(void);
@@ -370,6 +374,17 @@ static inline void setup_secondary_clock(void)
370} 374}
371#endif 375#endif
372 376
377static inline void paravirt_pagetable_setup_start(pgd_t *base)
378{
379 if (paravirt_ops.pagetable_setup_start)
380 (*paravirt_ops.pagetable_setup_start)(base);
381}
382
383static inline void paravirt_pagetable_setup_done(pgd_t *base)
384{
385 if (paravirt_ops.pagetable_setup_done)
386 (*paravirt_ops.pagetable_setup_done)(base);
387}
373 388
374#ifdef CONFIG_SMP 389#ifdef CONFIG_SMP
375static inline void startup_ipi_hook(int phys_apicid, unsigned long start_eip, 390static inline void startup_ipi_hook(int phys_apicid, unsigned long start_eip,