symbian-qemu-0.9.1-12/qemu-symbian-svp/kvm.h
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     1 /*
       
     2  * QEMU KVM support
       
     3  *
       
     4  * Copyright IBM, Corp. 2008
       
     5  *
       
     6  * Authors:
       
     7  *  Anthony Liguori   <aliguori@us.ibm.com>
       
     8  *
       
     9  * This work is licensed under the terms of the GNU GPL, version 2 or later.
       
    10  * See the COPYING file in the top-level directory.
       
    11  *
       
    12  */
       
    13 
       
    14 #ifndef QEMU_KVM_H
       
    15 #define QEMU_KVM_H
       
    16 
       
    17 #include "config.h"
       
    18 
       
    19 #ifdef CONFIG_KVM
       
    20 extern int kvm_allowed;
       
    21 
       
    22 #define kvm_enabled() (kvm_allowed)
       
    23 #else
       
    24 #define kvm_enabled() (0)
       
    25 #endif
       
    26 
       
    27 struct kvm_run;
       
    28 
       
    29 /* external API */
       
    30 
       
    31 int kvm_init(int smp_cpus);
       
    32 
       
    33 int kvm_init_vcpu(CPUState *env);
       
    34 int kvm_sync_vcpus(void);
       
    35 
       
    36 int kvm_cpu_exec(CPUState *env);
       
    37 
       
    38 void kvm_set_phys_mem(target_phys_addr_t start_addr,
       
    39                       ram_addr_t size,
       
    40                       ram_addr_t phys_offset);
       
    41 
       
    42 void kvm_physical_sync_dirty_bitmap(target_phys_addr_t start_addr, target_phys_addr_t end_addr);
       
    43 
       
    44 int kvm_log_start(target_phys_addr_t phys_addr, target_phys_addr_t len);
       
    45 int kvm_log_stop(target_phys_addr_t phys_addr, target_phys_addr_t len);
       
    46 
       
    47 int kvm_has_sync_mmu(void);
       
    48 
       
    49 int kvm_coalesce_mmio_region(target_phys_addr_t start, ram_addr_t size);
       
    50 int kvm_uncoalesce_mmio_region(target_phys_addr_t start, ram_addr_t size);
       
    51 
       
    52 /* internal API */
       
    53 
       
    54 struct KVMState;
       
    55 typedef struct KVMState KVMState;
       
    56 
       
    57 int kvm_ioctl(KVMState *s, int type, ...);
       
    58 
       
    59 int kvm_vm_ioctl(KVMState *s, int type, ...);
       
    60 
       
    61 int kvm_vcpu_ioctl(CPUState *env, int type, ...);
       
    62 
       
    63 /* Arch specific hooks */
       
    64 
       
    65 int kvm_arch_post_run(CPUState *env, struct kvm_run *run);
       
    66 
       
    67 int kvm_arch_handle_exit(CPUState *env, struct kvm_run *run);
       
    68 
       
    69 int kvm_arch_pre_run(CPUState *env, struct kvm_run *run);
       
    70 
       
    71 int kvm_arch_get_registers(CPUState *env);
       
    72 
       
    73 int kvm_arch_put_registers(CPUState *env);
       
    74 
       
    75 int kvm_arch_init(KVMState *s, int smp_cpus);
       
    76 
       
    77 int kvm_arch_init_vcpu(CPUState *env);
       
    78 
       
    79 #endif