1/** 2 * \file 3 * \brief Interface to shared data structures between the kernel and a VM monitor. 4 */ 5 6/* 7 * Copyright (c) 2009, ETH Zurich. 8 * All rights reserved. 9 * 10 * This file is distributed under the terms in the attached LICENSE file. 11 * If you do not find this file, copies can be found by writing to: 12 * ETH Zurich D-INFK, Universitaetstrasse 6, CH-8092 Zurich. Attn: Systems Group. 13 */ 14 15#ifndef KPI_VMKIT_H 16#define KPI_VMKIT_H 17 18struct msr_entry { 19 uint32_t index; 20 uint32_t reserved; 21 uint64_t val; 22} __attribute__ ((packed)); 23 24/** 25 * \brief A VMKit guest control and state structure. 26 * 27 * Defines some control and state values shared beween VMKit kernel and a VM 28 * monitor. 29 */ 30struct guest_control { 31 /// Space to store all regs not captured in the VMCB 32 struct registers_x86_64 regs; 33 struct registers_x86_64 host_regs; 34 uint64_t guest_cr2; 35 uint64_t host_cr2; 36 uint64_t num_vm_exits_with_monitor_invocation; 37 uint64_t num_vm_exits_without_monitor_invocation; 38}; 39 40#endif // KPI_VMKIT_H 41