162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Generate definitions needed by assembly language modules.
462306a36Sopenharmony_ci * This code generates raw asm output which is post-processed to extract
562306a36Sopenharmony_ci * and format the required data.
662306a36Sopenharmony_ci */
762306a36Sopenharmony_ci#define COMPILE_OFFSETS
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#include <linux/kbuild.h>
1062306a36Sopenharmony_ci#include "vmx/vmx.h"
1162306a36Sopenharmony_ci#include "svm/svm.h"
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_cistatic void __used common(void)
1462306a36Sopenharmony_ci{
1562306a36Sopenharmony_ci	if (IS_ENABLED(CONFIG_KVM_AMD)) {
1662306a36Sopenharmony_ci		BLANK();
1762306a36Sopenharmony_ci		OFFSET(SVM_vcpu_arch_regs, vcpu_svm, vcpu.arch.regs);
1862306a36Sopenharmony_ci		OFFSET(SVM_current_vmcb, vcpu_svm, current_vmcb);
1962306a36Sopenharmony_ci		OFFSET(SVM_spec_ctrl, vcpu_svm, spec_ctrl);
2062306a36Sopenharmony_ci		OFFSET(SVM_vmcb01, vcpu_svm, vmcb01);
2162306a36Sopenharmony_ci		OFFSET(KVM_VMCB_pa, kvm_vmcb_info, pa);
2262306a36Sopenharmony_ci		OFFSET(SD_save_area_pa, svm_cpu_data, save_area_pa);
2362306a36Sopenharmony_ci	}
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci	if (IS_ENABLED(CONFIG_KVM_INTEL)) {
2662306a36Sopenharmony_ci		BLANK();
2762306a36Sopenharmony_ci		OFFSET(VMX_spec_ctrl, vcpu_vmx, spec_ctrl);
2862306a36Sopenharmony_ci	}
2962306a36Sopenharmony_ci}
30