]>
Commit | Line | Data |
---|---|---|
235537fa AB |
1 | /* |
2 | * Plugin Memory API | |
3 | * | |
4 | * Copyright (c) 2019 Linaro Ltd | |
5 | * | |
6 | * SPDX-License-Identifier: GPL-2.0-or-later | |
7 | */ | |
8 | ||
e52ee00d AA |
9 | #ifndef PLUGIN_MEMORY_H |
10 | #define PLUGIN_MEMORY_H | |
235537fa | 11 | |
7a5951f6 MA |
12 | #include "exec/cpu-defs.h" |
13 | #include "exec/hwaddr.h" | |
14 | ||
235537fa AB |
15 | struct qemu_plugin_hwaddr { |
16 | bool is_io; | |
17 | bool is_store; | |
18 | union { | |
19 | struct { | |
20 | MemoryRegionSection *section; | |
21 | hwaddr offset; | |
22 | } io; | |
23 | struct { | |
2d932039 | 24 | void *hostaddr; |
235537fa AB |
25 | } ram; |
26 | } v; | |
27 | }; | |
28 | ||
29 | /** | |
30 | * tlb_plugin_lookup: query last TLB lookup | |
31 | * @cpu: cpu environment | |
32 | * | |
33 | * This function can be used directly after a memory operation to | |
34 | * query information about the access. It is used by the plugin | |
35 | * infrastructure to expose more information about the address. | |
36 | * | |
37 | * It would only fail if not called from an instrumented memory access | |
38 | * which would be an abuse of the API. | |
39 | */ | |
40 | bool tlb_plugin_lookup(CPUState *cpu, target_ulong addr, int mmu_idx, | |
41 | bool is_store, struct qemu_plugin_hwaddr *data); | |
42 | ||
ea9cea93 | 43 | #endif /* PLUGIN_MEMORY_H */ |