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

kvm_int.h (1268B)


      1/*
      2 * Internal definitions for a target's KVM support
      3 *
      4 * This work is licensed under the terms of the GNU GPL, version 2 or later.
      5 * See the COPYING file in the top-level directory.
      6 *
      7 */
      8
      9#ifndef QEMU_KVM_INT_H
     10#define QEMU_KVM_INT_H
     11
     12#include "exec/memory.h"
     13#include "qemu/accel.h"
     14#include "sysemu/kvm.h"
     15
     16typedef struct KVMSlot
     17{
     18    hwaddr start_addr;
     19    ram_addr_t memory_size;
     20    void *ram;
     21    int slot;
     22    int flags;
     23    int old_flags;
     24    /* Dirty bitmap cache for the slot */
     25    unsigned long *dirty_bmap;
     26    unsigned long dirty_bmap_size;
     27    /* Cache of the address space ID */
     28    int as_id;
     29    /* Cache of the offset in ram address space */
     30    ram_addr_t ram_start_offset;
     31} KVMSlot;
     32
     33typedef struct KVMMemoryListener {
     34    MemoryListener listener;
     35    KVMSlot *slots;
     36    int as_id;
     37} KVMMemoryListener;
     38
     39void kvm_memory_listener_register(KVMState *s, KVMMemoryListener *kml,
     40                                  AddressSpace *as, int as_id, const char *name);
     41
     42void kvm_set_max_memslot_size(hwaddr max_slot_size);
     43
     44/**
     45 * kvm_hwpoison_page_add:
     46 *
     47 * Parameters:
     48 *  @ram_addr: the address in the RAM for the poisoned page
     49 *
     50 * Add a poisoned page to the list
     51 *
     52 * Return: None.
     53 */
     54void kvm_hwpoison_page_add(ram_addr_t ram_addr);
     55#endif