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