| /* |
| * Plugin Memory API |
| * |
| * Copyright (c) 2019 Linaro Ltd |
| * |
| * SPDX-License-Identifier: GPL-2.0-or-later |
| */ |
| |
| #ifndef _PLUGIN_MEMORY_H_ |
| #define _PLUGIN_MEMORY_H_ |
| |
| struct qemu_plugin_hwaddr { |
| bool is_io; |
| bool is_store; |
| union { |
| struct { |
| MemoryRegionSection *section; |
| hwaddr offset; |
| } io; |
| struct { |
| uint64_t hostaddr; |
| } ram; |
| } v; |
| }; |
| |
| /** |
| * tlb_plugin_lookup: query last TLB lookup |
| * @cpu: cpu environment |
| * |
| * This function can be used directly after a memory operation to |
| * query information about the access. It is used by the plugin |
| * infrastructure to expose more information about the address. |
| * |
| * It would only fail if not called from an instrumented memory access |
| * which would be an abuse of the API. |
| */ |
| bool tlb_plugin_lookup(CPUState *cpu, target_ulong addr, int mmu_idx, |
| bool is_store, struct qemu_plugin_hwaddr *data); |
| |
| #endif /* _PLUGIN_MEMORY_H_ */ |