bfvmm
include
exit_handler
state_save_intel_x64.h
Go to the documentation of this file.
1
//
2
// Bareflank Hypervisor
3
//
4
// Copyright (C) 2015 Assured Information Security, Inc.
5
// Author: Rian Quinn <quinnr@ainfosec.com>
6
// Author: Brendan Kerrigan <kerriganb@ainfosec.com>
7
//
8
// This library is free software; you can redistribute it and/or
9
// modify it under the terms of the GNU Lesser General Public
10
// License as published by the Free Software Foundation; either
11
// version 2.1 of the License, or (at your option) any later version.
12
//
13
// This library is distributed in the hope that it will be useful,
14
// but WITHOUT ANY WARRANTY; without even the implied warranty of
15
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16
// Lesser General Public License for more details.
17
//
18
// You should have received a copy of the GNU Lesser General Public
19
// License along with this library; if not, write to the Free Software
20
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21
22
#ifndef STATE_SAVE_INTEL_X64_H
23
#define STATE_SAVE_INTEL_X64_H
24
25
#pragma pack(push, 1)
26
27
struct
state_save_intel_x64
28
{
29
uint64_t
rax
;
// 0x000
30
uint64_t
rbx
;
// 0x008
31
uint64_t
rcx
;
// 0x010
32
uint64_t
rdx
;
// 0x018
33
uint64_t
rbp
;
// 0x020
34
uint64_t
rsi
;
// 0x028
35
uint64_t
rdi
;
// 0x030
36
uint64_t
r08
;
// 0x038
37
uint64_t
r09
;
// 0x040
38
uint64_t
r10
;
// 0x048
39
uint64_t
r11
;
// 0x050
40
uint64_t
r12
;
// 0x058
41
uint64_t
r13
;
// 0x060
42
uint64_t
r14
;
// 0x068
43
uint64_t
r15
;
// 0x070
44
uint64_t
rip
;
// 0x078
45
uint64_t
rsp
;
// 0x080
46
47
uint64_t
vcpuid
;
// 0x088
48
uint64_t
vmxon_ptr
;
// 0x090
49
uint64_t
vmcs_ptr
;
// 0x098
50
uint64_t
exit_handler_ptr
;
// 0x0A0
51
52
uint64_t
user1
;
// 0x0A8
53
uint64_t
user2
;
// 0x0B0
54
uint64_t
user3
;
// 0x0B8
55
56
uint64_t
ymm00
[4];
// 0x0C0
57
uint64_t
ymm01
[4];
// 0x0E0
58
uint64_t
ymm02
[4];
// 0x100
59
uint64_t
ymm03
[4];
// 0x120
60
uint64_t
ymm04
[4];
// 0x140
61
uint64_t
ymm05
[4];
// 0x160
62
uint64_t
ymm06
[4];
// 0x180
63
uint64_t
ymm07
[4];
// 0x1A0
64
uint64_t
ymm08
[4];
// 0x1C0
65
uint64_t
ymm09
[4];
// 0x1E0
66
uint64_t
ymm10
[4];
// 0x200
67
uint64_t
ymm11
[4];
// 0x220
68
uint64_t
ymm12
[4];
// 0x240
69
uint64_t
ymm13
[4];
// 0x260
70
uint64_t
ymm14
[4];
// 0x280
71
uint64_t
ymm15
[4];
// 0x2A0
72
73
uint64_t
remaining_space_in_page
[0x1A8];
74
};
75
76
#pragma pack(pop)
77
78
#endif
state_save_intel_x64::vcpuid
uint64_t vcpuid
Definition:
state_save_intel_x64.h:47
state_save_intel_x64::r12
uint64_t r12
Definition:
state_save_intel_x64.h:40
state_save_intel_x64::rsp
uint64_t rsp
Definition:
state_save_intel_x64.h:45
state_save_intel_x64::rdx
uint64_t rdx
Definition:
state_save_intel_x64.h:32
state_save_intel_x64
Definition:
state_save_intel_x64.h:27
state_save_intel_x64::r15
uint64_t r15
Definition:
state_save_intel_x64.h:43
state_save_intel_x64::vmcs_ptr
uint64_t vmcs_ptr
Definition:
state_save_intel_x64.h:49
state_save_intel_x64::ymm04
uint64_t ymm04[4]
Definition:
state_save_intel_x64.h:60
state_save_intel_x64::rbx
uint64_t rbx
Definition:
state_save_intel_x64.h:30
state_save_intel_x64::rcx
uint64_t rcx
Definition:
state_save_intel_x64.h:31
state_save_intel_x64::rbp
uint64_t rbp
Definition:
state_save_intel_x64.h:33
state_save_intel_x64::rdi
uint64_t rdi
Definition:
state_save_intel_x64.h:35
state_save_intel_x64::rsi
uint64_t rsi
Definition:
state_save_intel_x64.h:34
state_save_intel_x64::exit_handler_ptr
uint64_t exit_handler_ptr
Definition:
state_save_intel_x64.h:50
state_save_intel_x64::user3
uint64_t user3
Definition:
state_save_intel_x64.h:54
state_save_intel_x64::ymm06
uint64_t ymm06[4]
Definition:
state_save_intel_x64.h:62
state_save_intel_x64::ymm05
uint64_t ymm05[4]
Definition:
state_save_intel_x64.h:61
state_save_intel_x64::ymm07
uint64_t ymm07[4]
Definition:
state_save_intel_x64.h:63
state_save_intel_x64::ymm00
uint64_t ymm00[4]
Definition:
state_save_intel_x64.h:56
state_save_intel_x64::user1
uint64_t user1
Definition:
state_save_intel_x64.h:52
state_save_intel_x64::rip
uint64_t rip
Definition:
state_save_intel_x64.h:44
state_save_intel_x64::ymm12
uint64_t ymm12[4]
Definition:
state_save_intel_x64.h:68
state_save_intel_x64::user2
uint64_t user2
Definition:
state_save_intel_x64.h:53
state_save_intel_x64::ymm14
uint64_t ymm14[4]
Definition:
state_save_intel_x64.h:70
state_save_intel_x64::ymm09
uint64_t ymm09[4]
Definition:
state_save_intel_x64.h:65
state_save_intel_x64::ymm15
uint64_t ymm15[4]
Definition:
state_save_intel_x64.h:71
state_save_intel_x64::remaining_space_in_page
uint64_t remaining_space_in_page[0x1A8]
Definition:
state_save_intel_x64.h:73
state_save_intel_x64::ymm11
uint64_t ymm11[4]
Definition:
state_save_intel_x64.h:67
state_save_intel_x64::vmxon_ptr
uint64_t vmxon_ptr
Definition:
state_save_intel_x64.h:48
state_save_intel_x64::rax
uint64_t rax
Definition:
state_save_intel_x64.h:29
state_save_intel_x64::ymm13
uint64_t ymm13[4]
Definition:
state_save_intel_x64.h:69
state_save_intel_x64::ymm10
uint64_t ymm10[4]
Definition:
state_save_intel_x64.h:66
state_save_intel_x64::ymm01
uint64_t ymm01[4]
Definition:
state_save_intel_x64.h:57
state_save_intel_x64::r11
uint64_t r11
Definition:
state_save_intel_x64.h:39
state_save_intel_x64::ymm03
uint64_t ymm03[4]
Definition:
state_save_intel_x64.h:59
state_save_intel_x64::ymm02
uint64_t ymm02[4]
Definition:
state_save_intel_x64.h:58
state_save_intel_x64::r13
uint64_t r13
Definition:
state_save_intel_x64.h:41
state_save_intel_x64::r08
uint64_t r08
Definition:
state_save_intel_x64.h:36
state_save_intel_x64::ymm08
uint64_t ymm08[4]
Definition:
state_save_intel_x64.h:64
state_save_intel_x64::r09
uint64_t r09
Definition:
state_save_intel_x64.h:37
state_save_intel_x64::r10
uint64_t r10
Definition:
state_save_intel_x64.h:38
state_save_intel_x64::r14
uint64_t r14
Definition:
state_save_intel_x64.h:42
Generated on Fri Apr 28 2017 22:11:38 by
1.8.14