aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/include/asm/x86_init.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/include/asm/x86_init.h')
-rw-r--r--arch/x86/include/asm/x86_init.h24
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 */
123struct 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 */
220struct 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 */
222struct x86_platform_ops { 245struct 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
238struct pci_dev; 262struct pci_dev;