]>
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 | ||
9 | #ifndef _PLUGIN_MEMORY_H_ | |
10 | #define _PLUGIN_MEMORY_H_ | |
11 | ||
12 | struct qemu_plugin_hwaddr { | |
13 | bool is_io; | |
14 | bool is_store; | |
15 | union { | |
16 | struct { | |
17 | MemoryRegionSection *section; | |
18 | hwaddr offset; | |
19 | } io; | |
20 | struct { | |
21 | uint64_t hostaddr; | |
22 | } ram; | |
23 | } v; | |
24 | }; | |
25 | ||
26 | /** | |
27 | * tlb_plugin_lookup: query last TLB lookup | |
28 | * @cpu: cpu environment | |
29 | * | |
30 | * This function can be used directly after a memory operation to | |
31 | * query information about the access. It is used by the plugin | |
32 | * infrastructure to expose more information about the address. | |
33 | * | |
34 | * It would only fail if not called from an instrumented memory access | |
35 | * which would be an abuse of the API. | |
36 | */ | |
37 | bool tlb_plugin_lookup(CPUState *cpu, target_ulong addr, int mmu_idx, | |
38 | bool is_store, struct qemu_plugin_hwaddr *data); | |
39 | ||
40 | #endif /* _PLUGIN_MEMORY_H_ */ |