qemu/include/sysemu/kvm_int.h
<<
>>
Prefs
   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 "sysemu/sysemu.h"
  13#include "sysemu/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} KVMSlot;
  27
  28typedef struct KVMMemoryListener {
  29    MemoryListener listener;
  30    /* Protects the slots and all inside them */
  31    QemuMutex slots_lock;
  32    KVMSlot *slots;
  33    int as_id;
  34} KVMMemoryListener;
  35
  36#define TYPE_KVM_ACCEL ACCEL_CLASS_NAME("kvm")
  37
  38#define KVM_STATE(obj) \
  39    OBJECT_CHECK(KVMState, (obj), TYPE_KVM_ACCEL)
  40
  41void kvm_memory_listener_register(KVMState *s, KVMMemoryListener *kml,
  42                                  AddressSpace *as, int as_id);
  43
  44#endif
  45