bfvmm
include
intrinsics
cache_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 CACHE_X64_H
23
#define CACHE_X64_H
24
25
extern
"C"
void
__invd
(
void
)
noexcept
;
26
extern
"C"
void
__wbinvd
(
void
)
noexcept
;
27
extern
"C"
void
__clflush
(
void
*
addr
)
noexcept
;
28
29
// *INDENT-OFF*
30
31
namespace
x64
32
{
33
namespace
cache
34
{
35
using
pointer
=
void
*;
36
using
integer_pointer
= uintptr_t;
37
38
inline
void
invd
()
noexcept
39
{
__invd
(); }
40
41
inline
void
wbinvd
()
noexcept
42
{
__wbinvd
(); }
43
44
inline
void
clflush
(
integer_pointer
addr
)
noexcept
45
{
__clflush
(reinterpret_cast<pointer>(
addr
)); }
46
47
inline
void
clflush
(
pointer
addr
)
noexcept
48
{
__clflush
(
addr
); }
49
}
50
}
51
52
// *INDENT-ON*
53
54
#endif
x64::cache::invd
void invd() noexcept
Definition:
cache_x64.h:38
__invd
void __invd(void) noexcept
Definition:
test_cache_x64.cpp:28
x64::cache::clflush
void clflush(integer_pointer addr) noexcept
Definition:
cache_x64.h:44
noexcept
void uint64_t uint64_t uint64_t *rdx noexcept
Definition:
cpuid_x64_mock.cpp:58
x64::cpuid::addr_size::addr
constexpr const auto addr
Definition:
cpuid_x64.h:80
x64::cache::integer_pointer
uintptr_t integer_pointer
Definition:
cache_x64.h:36
__clflush
void __clflush(void *addr) noexcept
Definition:
test_cache_x64.cpp:36
x64::cache::pointer
void * pointer
Definition:
cache_x64.h:35
__wbinvd
void __wbinvd(void) noexcept
Definition:
test_exit_handler_intel_x64.cpp:114
x64::cache::wbinvd
void wbinvd() noexcept
Definition:
cache_x64.h:41
x64
Definition:
cache_x64.h:31
Generated on Fri Apr 28 2017 22:11:38 by
1.8.14