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

📄 save.h

📁 xen 3.2.2 源码
💻 H
字号:
/****************************************************************************** * save_types.h * * Copyright (c) 2007 Isaku Yamahata <yamahata at valinux co jp> *                    VA Linux Systems Japan K.K. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that 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 __XEN_PUBLIC_HVM_SAVE_IA64_H__#define __XEN_PUBLIC_HVM_SAVE_IA64_H__#include <public/hvm/save.h>#include <public/arch-ia64.h>/*  * Save/restore header: general info about the save file.  *//* x86 uses 0x54381286 */#define HVM_FILE_MAGIC   0x343641492f6e6558UL   /* "Xen/IA64" */#define HVM_FILE_VERSION 0x0000000000000001ULstruct hvm_save_header {    uint64_t magic;             /* Must be HVM_FILE_MAGIC */    uint64_t version;           /* File format version */    uint64_t changeset;         /* Version of Xen that saved this file */    uint64_t cpuid[5];          /* CPUID[0x01][%eax] on the saving machine */};DECLARE_HVM_SAVE_TYPE(HEADER, 1, struct hvm_save_header);/* * CPU */struct hvm_hw_ia64_cpu {    uint64_t    ipsr;};DECLARE_HVM_SAVE_TYPE(CPU, 2, struct hvm_hw_ia64_cpu);/* * CPU */struct hvm_hw_ia64_vpd {    struct vpd      vpd;};DECLARE_HVM_SAVE_TYPE(VPD, 3, struct hvm_hw_ia64_vpd);/* * device dependency * vacpi => viosapic => vlsapic *//* * vlsapic */struct hvm_hw_ia64_vlsapic {    uint64_t insvc[4];    uint64_t vhpi; // ??? should this be saved in vpd    uint8_t xtp;    uint8_t pal_init_pending;    uint8_t pad[2];};DECLARE_HVM_SAVE_TYPE(VLSAPIC, 4, struct hvm_hw_ia64_vlsapic);/* set * unconditionaly set v->arch.irq_new_peding = 1  * unconditionaly set v->arch.irq_new_condition = 0 *//* * vtime *//* itc, itm, itv are saved by arch vcpu context */struct hvm_hw_ia64_vtime {    uint64_t itc;    uint64_t itm;    uint64_t last_itc;    uint64_t pending;};DECLARE_HVM_SAVE_TYPE(VTIME, 5, struct hvm_hw_ia64_vtime);/* * calculate v->vtm.vtm_offset * ??? Or should vtm_offset be set by leave_hypervisor_tail()? * start vtm_timer if necessary by vtm_set_itm(). * ??? Or should vtm_timer be set by leave_hypervisor_tail()? * * ??? or should be done by schedule_tail() *        => schedule_tail() should do. *//* * viosapic */#define VIOSAPIC_NUM_PINS     48union viosapic_rte{    uint64_t bits;    struct {        uint8_t vector;        uint8_t delivery_mode  : 3;        uint8_t reserve1       : 1;        uint8_t delivery_status: 1;        uint8_t polarity       : 1;        uint8_t reserve2       : 1;        uint8_t trig_mode      : 1;        uint8_t mask           : 1;        uint8_t reserve3       : 7;        uint8_t reserved[3];        uint16_t dest_id;    }; };struct hvm_hw_ia64_viosapic {    uint64_t    irr;    uint64_t    isr;    uint32_t    ioregsel;    uint32_t    pad;    uint64_t    lowest_vcpu_id;    uint64_t    base_address;    union viosapic_rte  redirtbl[VIOSAPIC_NUM_PINS];};DECLARE_HVM_SAVE_TYPE(VIOSAPIC, 6, struct hvm_hw_ia64_viosapic);  /* * vacpi * PM timer */struct vacpi_regs {    union {        struct {            uint32_t pm1a_sts:16;/* PM1a_EVT_BLK.PM1a_STS: status register */            uint32_t pm1a_en:16; /* PM1a_EVT_BLK.PM1a_EN: enable register */        };        uint32_t evt_blk;    };    uint32_t tmr_val;   /* PM_TMR_BLK.TMR_VAL: 32bit free-running counter */};struct hvm_hw_ia64_vacpi {    struct vacpi_regs   regs;};DECLARE_HVM_SAVE_TYPE(VACPI, 7, struct hvm_hw_ia64_vacpi);/* update last_gtime and setup timer of struct vacpi *//* * opt_feature: identity mapping of region 4, 5 and 7. * With the c/s 16396:d2935f9c217f of xen-ia64-devel.hg, * opt_feature hypercall supports only region 4,5,7 identity mappings. * structure hvm_hw_ia64_identity_mappings only supports them. * The new structure, struct hvm_hw_ia64_identity_mappings, is created to * avoid to keep up with change of the xen/ia64 internal structure, struct * opt_feature. * * If it is enhanced in the future, new structure will be created. */struct hvm_hw_ia64_identity_mapping {    uint64_t on;        /* on/off */    uint64_t pgprot;    /* The page protection bit mask of the pte. */    uint64_t key;       /* A protection key. */};struct hvm_hw_ia64_identity_mappings {    struct hvm_hw_ia64_identity_mapping im_reg4;/* Region 4 identity mapping */    struct hvm_hw_ia64_identity_mapping im_reg5;/* Region 5 identity mapping */    struct hvm_hw_ia64_identity_mapping im_reg7;/* Region 7 identity mapping */};DECLARE_HVM_SAVE_TYPE(OPT_FEATURE_IDENTITY_MAPPINGS, 8, struct hvm_hw_ia64_identity_mappings);/*  * Largest type-code in use */#define HVM_SAVE_CODE_MAX       8#endif /* __XEN_PUBLIC_HVM_SAVE_IA64_H__ *//* * Local variables: * mode: C * c-set-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * indent-tabs-mode: nil * End: */

⌨️ 快捷键说明

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