plugin-memory.h (974B)
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 12struct 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 void *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 */ 37bool 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_ */