Files
acrn-hypervisor/hypervisor/include/arch/x86/asm/per_cpu.h
Xue Bosheng e278b38ec4 hv: move percpu delivery mode and idle mode from common to x86
delivery mode and idle mode are x86 specific percpu, so move it from common to
x86 arch, also change the name of mode_to_idle to be idle_mode, change the name
of mode_to_kick_pcpu to be kick_pcpu_mode.

Tracked-On: #8812
Signed-off-by: Xue Bosheng <bosheng.xue@intel.com>
Acked-by: Wang, Yu1 <yu1.wang@intel.com>
2025-09-30 12:31:07 +08:00

40 lines
893 B
C

/*
* Copyright (C) 2018-2022 Intel Corporation.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#ifndef PER_CPU_X86_H
#define PER_CPU_X86_H
#include <types.h>
#include <asm/page.h>
#include <profiling.h>
#include <asm/gdt.h>
#include <asm/security.h>
#include <asm/vm_config.h>
struct per_cpu_arch {
/* vmxon_region MUST be 4KB-aligned */
uint8_t vmxon_region[PAGE_SIZE];
void *vmcs_run;
struct host_gdt gdt;
struct tss_64 tss;
uint8_t mc_stack[CONFIG_STACK_SIZE] __aligned(16);
uint8_t df_stack[CONFIG_STACK_SIZE] __aligned(16);
uint8_t sf_stack[CONFIG_STACK_SIZE] __aligned(16);
uint32_t lapic_id;
uint32_t lapic_ldr;
#ifdef PROFILING_ON
struct profiling_info_wrapper profiling_info;
#endif
uint64_t tsc_suspend;
struct acrn_vcpu *whose_iwkey;
uint32_t kick_pcpu_mode;
uint32_t idle_mode;
} __aligned(PAGE_SIZE); /* per_cpu_region size aligned with PAGE_SIZE */
#endif