2 * This file is part of the Palacios Virtual Machine Monitor developed
3 * by the V3VEE Project with funding from the United States National
4 * Science Foundation and the Department of Energy.
6 * The V3VEE Project is a joint project between Northwestern University
7 * and the University of New Mexico. You can find out more at
10 * Copyright (c) 2015, The V3VEE Project <http://www.v3vee.org>
11 * All rights reserved.
13 * Author: Peter Dinda <pdinda@northwestern.edu>
15 * This is free software. You are permitted to use,
16 * redistribute, and modify it as specified in the file "V3VEE_LICENSE".
26 #include <palacios/vmm_types.h>
30 uint32_t first_hrt_core;
31 uint64_t first_hrt_gpa;
32 struct v3_cfg_file *hrt_file;
44 int v3_init_hvm_vm(struct v3_vm_info *vm, struct v3_xml *config);
45 int v3_deinit_hvm_vm(struct v3_vm_info *vm);
48 int v3_init_hvm_core(struct guest_info *core);
49 int v3_deinit_hvm_core(struct guest_info *core);
52 uint64_t v3_get_hvm_ros_memsize(struct v3_vm_info *vm);
53 uint64_t v3_get_hvm_hrt_memsize(struct v3_vm_info *vm);
54 int v3_is_hvm_ros_mem_gpa(struct v3_vm_info *vm, addr_t gpa);
55 int v3_is_hvm_hrt_mem_gpa(struct v3_vm_info *vm, addr_t gpa);
57 uint32_t v3_get_hvm_ros_cores(struct v3_vm_info *vm);
58 uint32_t v3_get_hvm_hrt_cores(struct v3_vm_info *vm);
59 int v3_is_hvm_ros_core(struct guest_info *core);
60 int v3_is_hvm_hrt_core(struct guest_info *core);
63 int v3_hvm_should_deliver_ipi(struct guest_info *src, struct guest_info *dest);
64 void v3_hvm_find_apics_seen_by_core(struct guest_info *core, struct v3_vm_info *vm,
65 uint32_t *start_apic, uint32_t *num_apics);
67 #endif /* ! __V3VEE__ */