Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

KVM: ia64: VMM module interfaces

vmm.c adds the interfaces with kvm/module, and initialize global data area.

Signed-off-by: Xiantao Zhang <xiantao.zhang@intel.com>
Signed-off-by: Avi Kivity <avi@qumranet.com>

authored by

Xiantao Zhang and committed by
Avi Kivity
bb46fb4a a4f50038

+66
+66
arch/ia64/kvm/vmm.c
··· 1 + /* 2 + * vmm.c: vmm module interface with kvm module 3 + * 4 + * Copyright (c) 2007, Intel Corporation. 5 + * 6 + * Xiantao Zhang (xiantao.zhang@intel.com) 7 + * 8 + * This program is free software; you can redistribute it and/or modify it 9 + * under the terms and conditions of the GNU General Public License, 10 + * version 2, as published by the Free Software Foundation. 11 + * 12 + * This program is distributed in the hope it will be useful, but WITHOUT 13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 14 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 15 + * more details. 16 + * 17 + * You should have received a copy of the GNU General Public License along with 18 + * this program; if not, write to the Free Software Foundation, Inc., 59 Temple 19 + * Place - Suite 330, Boston, MA 02111-1307 USA. 20 + */ 21 + 22 + 23 + #include<linux/module.h> 24 + #include<asm/fpswa.h> 25 + 26 + #include "vcpu.h" 27 + 28 + MODULE_AUTHOR("Intel"); 29 + MODULE_LICENSE("GPL"); 30 + 31 + extern char kvm_ia64_ivt; 32 + extern fpswa_interface_t *vmm_fpswa_interface; 33 + 34 + struct kvm_vmm_info vmm_info = { 35 + .module = THIS_MODULE, 36 + .vmm_entry = vmm_entry, 37 + .tramp_entry = vmm_trampoline, 38 + .vmm_ivt = (unsigned long)&kvm_ia64_ivt, 39 + }; 40 + 41 + static int __init kvm_vmm_init(void) 42 + { 43 + 44 + vmm_fpswa_interface = fpswa_interface; 45 + 46 + /*Register vmm data to kvm side*/ 47 + return kvm_init(&vmm_info, 1024, THIS_MODULE); 48 + } 49 + 50 + static void __exit kvm_vmm_exit(void) 51 + { 52 + kvm_exit(); 53 + return ; 54 + } 55 + 56 + void vmm_spin_lock(spinlock_t *lock) 57 + { 58 + _vmm_raw_spin_lock(lock); 59 + } 60 + 61 + void vmm_spin_unlock(spinlock_t *lock) 62 + { 63 + _vmm_raw_spin_unlock(lock); 64 + } 65 + module_init(kvm_vmm_init) 66 + module_exit(kvm_vmm_exit)