cachepc-qemu

Fork of AMDESE/qemu with changes for cachepc side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-qemu
Log | Files | Refs | Submodules | LICENSE | sfeed.txt

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_ */