diff options
Diffstat (limited to 'include/asm-i386/paravirt.h')
-rw-r--r-- | include/asm-i386/paravirt.h | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/include/asm-i386/paravirt.h b/include/asm-i386/paravirt.h index 6317e0a4d735..f8319cae2ac5 100644 --- a/include/asm-i386/paravirt.h +++ b/include/asm-i386/paravirt.h | |||
@@ -94,6 +94,8 @@ struct paravirt_ops | |||
94 | 94 | ||
95 | u64 (*read_tsc)(void); | 95 | u64 (*read_tsc)(void); |
96 | u64 (*read_pmc)(void); | 96 | u64 (*read_pmc)(void); |
97 | u64 (*get_scheduled_cycles)(void); | ||
98 | unsigned long (*get_cpu_khz)(void); | ||
97 | 99 | ||
98 | void (*load_tr_desc)(void); | 100 | void (*load_tr_desc)(void); |
99 | void (*load_gdt)(const struct Xgt_desc_struct *); | 101 | void (*load_gdt)(const struct Xgt_desc_struct *); |
@@ -115,7 +117,6 @@ struct paravirt_ops | |||
115 | void (*set_iopl_mask)(unsigned mask); | 117 | void (*set_iopl_mask)(unsigned mask); |
116 | 118 | ||
117 | void (*io_delay)(void); | 119 | void (*io_delay)(void); |
118 | void (*const_udelay)(unsigned long loops); | ||
119 | 120 | ||
120 | #ifdef CONFIG_X86_LOCAL_APIC | 121 | #ifdef CONFIG_X86_LOCAL_APIC |
121 | void (*apic_write)(unsigned long reg, unsigned long v); | 122 | void (*apic_write)(unsigned long reg, unsigned long v); |
@@ -129,6 +130,8 @@ struct paravirt_ops | |||
129 | void (*flush_tlb_kernel)(void); | 130 | void (*flush_tlb_kernel)(void); |
130 | void (*flush_tlb_single)(u32 addr); | 131 | void (*flush_tlb_single)(u32 addr); |
131 | 132 | ||
133 | void (fastcall *map_pt_hook)(int type, pte_t *va, u32 pfn); | ||
134 | |||
132 | void (*alloc_pt)(u32 pfn); | 135 | void (*alloc_pt)(u32 pfn); |
133 | void (*alloc_pd)(u32 pfn); | 136 | void (*alloc_pd)(u32 pfn); |
134 | void (*alloc_pd_clone)(u32 pfn, u32 clonepfn, u32 start, u32 count); | 137 | void (*alloc_pd_clone)(u32 pfn, u32 clonepfn, u32 start, u32 count); |
@@ -183,9 +186,9 @@ static inline int set_wallclock(unsigned long nowtime) | |||
183 | return paravirt_ops.set_wallclock(nowtime); | 186 | return paravirt_ops.set_wallclock(nowtime); |
184 | } | 187 | } |
185 | 188 | ||
186 | static inline void do_time_init(void) | 189 | static inline void (*choose_time_init(void))(void) |
187 | { | 190 | { |
188 | return paravirt_ops.time_init(); | 191 | return paravirt_ops.time_init; |
189 | } | 192 | } |
190 | 193 | ||
191 | /* The paravirtualized CPUID instruction. */ | 194 | /* The paravirtualized CPUID instruction. */ |
@@ -273,6 +276,9 @@ static inline void halt(void) | |||
273 | 276 | ||
274 | #define rdtscll(val) (val = paravirt_ops.read_tsc()) | 277 | #define rdtscll(val) (val = paravirt_ops.read_tsc()) |
275 | 278 | ||
279 | #define get_scheduled_cycles(val) (val = paravirt_ops.get_scheduled_cycles()) | ||
280 | #define calculate_cpu_khz() (paravirt_ops.get_cpu_khz()) | ||
281 | |||
276 | #define write_tsc(val1,val2) wrmsr(0x10, val1, val2) | 282 | #define write_tsc(val1,val2) wrmsr(0x10, val1, val2) |
277 | 283 | ||
278 | #define rdpmc(counter,low,high) do { \ | 284 | #define rdpmc(counter,low,high) do { \ |
@@ -349,6 +355,8 @@ static inline void startup_ipi_hook(int phys_apicid, unsigned long start_eip, | |||
349 | #define __flush_tlb_global() paravirt_ops.flush_tlb_kernel() | 355 | #define __flush_tlb_global() paravirt_ops.flush_tlb_kernel() |
350 | #define __flush_tlb_single(addr) paravirt_ops.flush_tlb_single(addr) | 356 | #define __flush_tlb_single(addr) paravirt_ops.flush_tlb_single(addr) |
351 | 357 | ||
358 | #define paravirt_map_pt_hook(type, va, pfn) paravirt_ops.map_pt_hook(type, va, pfn) | ||
359 | |||
352 | #define paravirt_alloc_pt(pfn) paravirt_ops.alloc_pt(pfn) | 360 | #define paravirt_alloc_pt(pfn) paravirt_ops.alloc_pt(pfn) |
353 | #define paravirt_release_pt(pfn) paravirt_ops.release_pt(pfn) | 361 | #define paravirt_release_pt(pfn) paravirt_ops.release_pt(pfn) |
354 | 362 | ||