vmcs_intel_x64_64bit_read_only_data_fields.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 // Author: Connor Davis <davisc@ainfosec.com>
8 //
9 // This library is free software; you can redistribute it and/or
10 // modify it under the terms of the GNU Lesser General Public
11 // License as published by the Free Software Foundation; either
12 // version 2.1 of the License, or (at your option) any later version.
13 //
14 // This library is distributed in the hope that it will be useful,
15 // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 // Lesser General Public License for more details.
18 //
19 // You should have received a copy of the GNU Lesser General Public
20 // License along with this library; if not, write to the Free Software
21 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22 
23 #ifndef VMCS_INTEL_X64_64BIT_READ_ONLY_DATA_FIELD_H
24 #define VMCS_INTEL_X64_64BIT_READ_ONLY_DATA_FIELD_H
25 
26 #include <bitmanip.h>
27 #include <vmcs/vmcs_intel_x64.h>
29 
36 
37 // *INDENT-OFF*
38 
39 namespace intel_x64
40 {
41 namespace vmcs
42 {
43 
44 namespace guest_physical_address
45 {
46  constexpr const auto addr = 0x0000000000002400UL;
47  constexpr const auto name = "guest_physical_address";
48 
49  inline auto exists() noexcept
50  {
53  }
54 
55  inline auto get()
56  { return get_vmcs_field(addr, name, exists()); }
57 
58  inline auto get_if_exists(bool verbose = false) noexcept
59  { return get_vmcs_field_if_exists(addr, name, verbose, exists()); }
60 }
61 
62 }
63 }
64 
65 // *INDENT-ON*
66 
67 #endif
auto get_vmcs_field_if_exists(T addr, const char *name, bool verbose, bool exists)
void uint64_t uint64_t uint64_t *rdx noexcept
auto get_vmcs_field(T addr, const char *name, bool exists)