HyperPlatform Programmer's Reference
vmm.h
Go to the documentation of this file.
1 // Copyright (c) 2015-2017, Satoshi Tanda. All rights reserved.
2 // Use of this source code is governed by a MIT-style license that can be
3 // found in the LICENSE file.
4 
7 
8 #ifndef HYPERPLATFORM_VMM_H_
9 #define HYPERPLATFORM_VMM_H_
10 
11 #include <fltKernel.h>
12 
14 //
15 // macro utilities
16 //
17 
19 //
20 // constants and macros
21 //
22 
24 //
25 // types
26 //
27 
30  volatile long reference_count;
31  void* msr_bitmap;
32  void* io_bitmap_a;
33  void* io_bitmap_b;
34 };
35 
37 struct ProcessorData {
42  struct EptData* ept_data;
43 };
44 
46 //
47 // prototypes
48 //
49 
51 //
52 // variables
53 //
54 
56 //
57 // implementations
58 //
59 
60 #endif // HYPERPLATFORM_VMM_H_
struct EptData * ept_data
A pointer to EPT related data.
Definition: vmm.h:42
void * msr_bitmap
Bitmap to activate MSR I/O VM-exit.
Definition: vmm.h:31
struct VmControlStructure * vmcs_region
VA of a VMCS region.
Definition: vmm.h:41
See: Virtual-Machine Control Structures & FORMAT OF THE VMCS REGION.
Definition: ia32_type.h:965
SharedProcessorData * shared_data
Shared data.
Definition: vmm.h:38
void * io_bitmap_a
Bitmap to activate IO VM-exit (~ 0x7FFF)
Definition: vmm.h:32
void * vmm_stack_limit
A head of VA for VMM stack.
Definition: vmm.h:39
void * io_bitmap_b
Bitmap to activate IO VM-exit (~ 0xffff)
Definition: vmm.h:33
Represents VMM related data shared across all processors.
Definition: vmm.h:29
struct VmControlStructure * vmxon_region
VA of a VMXON region.
Definition: vmm.h:40
volatile long reference_count
Number of processors sharing this data.
Definition: vmm.h:30
Definition: ept.cpp:86
Represents VMM related data associated with each processor.
Definition: vmm.h:37