diff options
Diffstat (limited to 'arch/x86/include/asm/x86_init.h')
-rw-r--r-- | arch/x86/include/asm/x86_init.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/arch/x86/include/asm/x86_init.h b/arch/x86/include/asm/x86_init.h index 8a1ebf9540dd..ad15a0fda917 100644 --- a/arch/x86/include/asm/x86_init.h +++ b/arch/x86/include/asm/x86_init.h | |||
@@ -115,6 +115,18 @@ struct x86_init_pci { | |||
115 | }; | 115 | }; |
116 | 116 | ||
117 | /** | 117 | /** |
118 | * struct x86_hyper_init - x86 hypervisor init functions | ||
119 | * @init_platform: platform setup | ||
120 | * @x2apic_available: X2APIC detection | ||
121 | * @init_mem_mapping: setup early mappings during init_mem_mapping() | ||
122 | */ | ||
123 | struct x86_hyper_init { | ||
124 | void (*init_platform)(void); | ||
125 | bool (*x2apic_available)(void); | ||
126 | void (*init_mem_mapping)(void); | ||
127 | }; | ||
128 | |||
129 | /** | ||
118 | * struct x86_init_ops - functions for platform specific setup | 130 | * struct x86_init_ops - functions for platform specific setup |
119 | * | 131 | * |
120 | */ | 132 | */ |
@@ -127,6 +139,7 @@ struct x86_init_ops { | |||
127 | struct x86_init_timers timers; | 139 | struct x86_init_timers timers; |
128 | struct x86_init_iommu iommu; | 140 | struct x86_init_iommu iommu; |
129 | struct x86_init_pci pci; | 141 | struct x86_init_pci pci; |
142 | struct x86_hyper_init hyper; | ||
130 | }; | 143 | }; |
131 | 144 | ||
132 | /** | 145 | /** |
@@ -200,6 +213,15 @@ struct x86_legacy_features { | |||
200 | }; | 213 | }; |
201 | 214 | ||
202 | /** | 215 | /** |
216 | * struct x86_hyper_runtime - x86 hypervisor specific runtime callbacks | ||
217 | * | ||
218 | * @pin_vcpu: pin current vcpu to specified physical cpu (run rarely) | ||
219 | */ | ||
220 | struct x86_hyper_runtime { | ||
221 | void (*pin_vcpu)(int cpu); | ||
222 | }; | ||
223 | |||
224 | /** | ||
203 | * struct x86_platform_ops - platform specific runtime functions | 225 | * struct x86_platform_ops - platform specific runtime functions |
204 | * @calibrate_cpu: calibrate CPU | 226 | * @calibrate_cpu: calibrate CPU |
205 | * @calibrate_tsc: calibrate TSC, if different from CPU | 227 | * @calibrate_tsc: calibrate TSC, if different from CPU |
@@ -218,6 +240,7 @@ struct x86_legacy_features { | |||
218 | * possible in x86_early_init_platform_quirks() by | 240 | * possible in x86_early_init_platform_quirks() by |
219 | * only using the current x86_hardware_subarch | 241 | * only using the current x86_hardware_subarch |
220 | * semantics. | 242 | * semantics. |
243 | * @hyper: x86 hypervisor specific runtime callbacks | ||
221 | */ | 244 | */ |
222 | struct x86_platform_ops { | 245 | struct x86_platform_ops { |
223 | unsigned long (*calibrate_cpu)(void); | 246 | unsigned long (*calibrate_cpu)(void); |
@@ -233,6 +256,7 @@ struct x86_platform_ops { | |||
233 | void (*apic_post_init)(void); | 256 | void (*apic_post_init)(void); |
234 | struct x86_legacy_features legacy; | 257 | struct x86_legacy_features legacy; |
235 | void (*set_legacy_features)(void); | 258 | void (*set_legacy_features)(void); |
259 | struct x86_hyper_runtime hyper; | ||
236 | }; | 260 | }; |
237 | 261 | ||
238 | struct pci_dev; | 262 | struct pci_dev; |