Merge remote-tracking branch 'remotes/rth/tags/pull-tcg-20200317' into staging
[qemu.git] / include / qemu / plugin-memory.h
blobfbbe99474bd2b3717d04a56918390df1223ae9dc
1 /*
2 * Plugin Memory API
4 * Copyright (c) 2019 Linaro Ltd
6 * SPDX-License-Identifier: GPL-2.0-or-later
7 */
9 #ifndef _PLUGIN_MEMORY_H_
10 #define _PLUGIN_MEMORY_H_
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;
26 /**
27 * tlb_plugin_lookup: query last TLB lookup
28 * @cpu: cpu environment
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.
34 * It would only fail if not called from an instrumented memory access
35 * which would be an abuse of the API.
37 bool tlb_plugin_lookup(CPUState *cpu, target_ulong addr, int mmu_idx,
38 bool is_store, struct qemu_plugin_hwaddr *data);
40 #endif /* _PLUGIN_MEMORY_H_ */