master
h 35 lines 851 Bytes
Raw
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 #include "exec/hwaddr.h"
13
14 struct qemu_plugin_hwaddr {
15 bool is_io;
16 bool is_store;
17 hwaddr phys_addr;
18 MemoryRegion *mr;
19 };
20
21 /**
22 * tlb_plugin_lookup: query last TLB lookup
23 * @cpu: cpu environment
24 *
25 * This function can be used directly after a memory operation to
26 * query information about the access. It is used by the plugin
27 * infrastructure to expose more information about the address.
28 *
29 * It would only fail if not called from an instrumented memory access
30 * which would be an abuse of the API.
31 */
32 bool tlb_plugin_lookup(CPUState *cpu, vaddr addr, int mmu_idx,
33 bool is_store, struct qemu_plugin_hwaddr *data);
34
35 #endif /* PLUGIN_MEMORY_H */