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