⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vcpu.h

📁 xen虚拟机源代码安装包
💻 H
字号:
/* * vcpu.h: HVM per vcpu definitions * * Copyright (c) 2005, International Business Machines Corporation. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., 59 Temple * Place - Suite 330, Boston, MA 02111-1307 USA. */#ifndef __ASM_X86_HVM_VCPU_H__#define __ASM_X86_HVM_VCPU_H__#include <asm/hvm/io.h>#include <asm/hvm/vlapic.h>#include <asm/hvm/vmx/vmcs.h>#include <asm/hvm/svm/vmcb.h>#include <asm/mtrr.h>enum hvm_io_state {    HVMIO_none = 0,    HVMIO_dispatched,    HVMIO_awaiting_completion,    HVMIO_handle_mmio_awaiting_completion,    HVMIO_completed};struct hvm_vcpu {    /* Guest control-register and EFER values, just as the guest sees them. */    unsigned long       guest_cr[5];    unsigned long       guest_efer;    /*     * Processor-visible control-register values, while guest executes.     *  CR0, CR4: Used as a cache of VMCS contents by VMX only.     *  CR1, CR2: Never used (guest_cr[2] is always processor-visible CR2).     *  CR3:      Always used and kept up to date by paging subsystem.     */    unsigned long       hw_cr[5];    struct vlapic       vlapic;    s64                 cache_tsc_offset;    u64                 guest_time;    /* Lock and list for virtual platform timers. */    spinlock_t          tm_lock;    struct list_head    tm_list;    int                 xen_port;    bool_t              flag_dr_dirty;    bool_t              debug_state_latch;    union {        struct arch_vmx_struct vmx;        struct arch_svm_struct svm;    } u;    struct mtrr_state   mtrr;    u64                 pat_cr;    /* In mode delay_for_missed_ticks, VCPUs have differing guest times. */    int64_t             stime_offset;    /* Which cache mode is this VCPU in (CR0:CD/NW)? */    u8                  cache_mode;    /* I/O request in flight to device model. */    enum hvm_io_state   io_state;    unsigned long       io_data;    /*     * HVM emulation:     *  Virtual address @mmio_gva maps to MMIO physical frame @mmio_gpfn.     *  The latter is known to be an MMIO frame (not RAM).     *  This translation is only valid if @mmio_gva is non-zero.     */    unsigned long       mmio_gva;    unsigned long       mmio_gpfn;    /* Callback into x86_emulate when emulating FPU/MMX/XMM instructions. */    void (*fpu_exception_callback)(void *, struct cpu_user_regs *);    void *fpu_exception_callback_arg;    /* We may read up to m128 as a number of device-model transactions. */    paddr_t mmio_large_read_pa;    uint8_t mmio_large_read[16];    unsigned int mmio_large_read_bytes;    /* We may write up to m128 as a number of device-model transactions. */    paddr_t mmio_large_write_pa;    unsigned int mmio_large_write_bytes;};#endif /* __ASM_X86_HVM_VCPU_H__ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -