linux/arch/x86/kvm/vmx/vmcs.h

/* SPDX-License-Identifier: GPL-2.0 */
#ifndef __KVM_X86_VMX_VMCS_H
#define __KVM_X86_VMX_VMCS_H

#include <linux/ktime.h>
#include <linux/list.h>
#include <linux/nospec.h>

#include <asm/kvm.h>
#include <asm/vmx.h>

#include "capabilities.h"

#define ROL16(val, n)

struct vmcs_hdr {};

struct vmcs {};

DECLARE_PER_CPU(struct vmcs *, current_vmcs);

/*
 * vmcs_host_state tracks registers that are loaded from the VMCS on VMEXIT
 * and whose values change infrequently, but are not constant.  I.e. this is
 * used as a write-through cache of the corresponding VMCS fields.
 */
struct vmcs_host_state {};

struct vmcs_controls_shadow {};

/*
 * Track a VMCS that may be loaded on a certain CPU. If it is (cpu!=-1), also
 * remember whether it was VMLAUNCHed, and maintain a linked list of all VMCSs
 * loaded on this CPU (so we can clear them if the CPU goes down).
 */
struct loaded_vmcs {};

static __always_inline bool is_intr_type(u32 intr_info, u32 type)
{}

static inline bool is_intr_type_n(u32 intr_info, u32 type, u8 vector)
{}

static inline bool is_exception_n(u32 intr_info, u8 vector)
{}

static inline bool is_debug(u32 intr_info)
{}

static inline bool is_breakpoint(u32 intr_info)
{}

static inline bool is_double_fault(u32 intr_info)
{}

static inline bool is_page_fault(u32 intr_info)
{}

static inline bool is_invalid_opcode(u32 intr_info)
{}

static inline bool is_gp_fault(u32 intr_info)
{}

static inline bool is_alignment_check(u32 intr_info)
{}

static inline bool is_machine_check(u32 intr_info)
{}

static inline bool is_nm_fault(u32 intr_info)
{}

static inline bool is_ve_fault(u32 intr_info)
{}

/* Undocumented: icebp/int1 */
static inline bool is_icebp(u32 intr_info)
{}

static __always_inline bool is_nmi(u32 intr_info)
{}

static inline bool is_external_intr(u32 intr_info)
{}

static inline bool is_exception_with_error_code(u32 intr_info)
{}

enum vmcs_field_width {};

static inline int vmcs_field_width(unsigned long field)
{}

static inline int vmcs_field_readonly(unsigned long field)
{}

#define VMCS_FIELD_INDEX_SHIFT
#define VMCS_FIELD_INDEX_MASK

static inline unsigned int vmcs_field_index(unsigned long field)
{}

#endif /* __KVM_X86_VMX_VMCS_H */