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

📄 vpmu.h

📁 xen虚拟机源代码安装包
💻 H
字号:
/* * vpmu.h: PMU virtualization for HVM domain. * * Copyright (c) 2007, Intel 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. * * Author: Haitao Shan <haitao.shan@intel.com> */#ifndef __ASM_X86_HVM_VPMU_H_#define __ASM_X86_HVM_VPMU_H_#define msraddr_to_bitpos(x) (((x)&0xffff) + ((x)>>31)*0x2000)#define vcpu_vpmu(vcpu)   (&(vcpu)->arch.hvm_vcpu.u.vmx.vpmu)#define vpmu_vcpu(vpmu)   (container_of((vpmu), struct vcpu, \                                          arch.hvm_vcpu.u.vmx.vpmu))#define vpmu_domain(vpmu) (vpmu_vcpu(vpmu)->domain)#define MSR_TYPE_COUNTER            0#define MSR_TYPE_CTRL               1#define MSR_TYPE_GLOBAL             2#define MSR_TYPE_ARCH_COUNTER       3#define MSR_TYPE_ARCH_CTRL          4#define LVTPC_HVM_PMU            0xf8struct pmumsr {    unsigned int num;    u32 *msr;};struct msr_load_store_entry {    u32 msr_index;    u32 msr_reserved;    u64 msr_data;};/* Arch specific operations shared by all vpmus */struct arch_vpmu_ops {    int (*do_wrmsr)(struct cpu_user_regs *regs);    int (*do_rdmsr)(struct cpu_user_regs *regs);    int (*do_interrupt)(struct cpu_user_regs *regs);    void (*arch_vpmu_initialise)(struct vcpu *v);    void (*arch_vpmu_destroy)(struct vcpu *v);    void (*arch_vpmu_save)(struct vcpu *v);    void (*arch_vpmu_load)(struct vcpu *v);};struct vpmu_struct {    u32 flags;    void *context;    struct arch_vpmu_ops *arch_vpmu_ops;};#define VPMU_CONTEXT_ALLOCATED              0x1#define VPMU_CONTEXT_LOADED                 0x2#define VPMU_RUNNING                        0x4int vpmu_do_wrmsr(struct cpu_user_regs *regs);int vpmu_do_rdmsr(struct cpu_user_regs *regs);int vpmu_do_interrupt(struct cpu_user_regs *regs);void vpmu_initialise(struct vcpu *v);void vpmu_destroy(struct vcpu *v);void vpmu_save(struct vcpu *v);void vpmu_load(struct vcpu *v);extern int acquire_pmu_ownership(int pmu_ownership);extern void release_pmu_ownership(int pmu_ownership);#endif /* __ASM_X86_HVM_VPMU_H_*/

⌨️ 快捷键说明

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