|
? kvm
所属文件:/include/linux/kvm_host.h
结构描述: VM控制块数据结构
包含结构:kvm_vcpus*[], kvm_arch
? kvm _arch
所属文件:/include/asm-x86/kvm_host.h
结构描述: 除去CPU之外的一些体系相关硬件设备,如mmu,ioapic, pic等结构
包含结构:kvm_ioapic*
? kvm_vcpu
所属文件:/include/linux/kvm_host.h
结构描述: 抽象host cpu的数据结构
包含结构:kvm_vcpu_arch, kvm *
? kvm_vcpu_arch
所属文件:/include/asm-x86/kvm_host.h
结构描述: 保存cpu体系结构相关的状态,如用户寄存器、系统寄存器、pending异常也暂存在这里
包含结构:kvm_mmu, kvm_lapic*
? kvm_ioapic
所属文件:x86/ioapic.h
结构描述: 在SMP系统中,一般不用8259而用APIC。连接各个外设的是IOAPIC,一般PC只有一个IOAPIC;但是,每个CPU都有一个LAPIC(local)。IOAPIC有redirect表,根据某种模式将物理中断转发给一个或多个LAPIC。kvm_ioapic就是虚拟机的IOAPIC设备模拟的结构,其中包含一个kvm*,指向它所属的虚拟机的控制块结构。另一方面,kvm_arch中有一个kvm_ioapic*,指向此虚拟机所有的模拟IOAPIC结构。
包含结构:irq_states[], kvm_ioapic_redirect_entry[], kvm_io_device, kvm*
? kvm_lapic
所属文件:x86/lapic.h
结构描述: 每个CPU都有一个lapic,所以模拟的lapic也是每个vcpu对应一个。在kvm_lapic中有一个kvm_vcpu*,指向所属的vcpu;另一方面,kvm_vcpu_arch中有一个kvm_lapic*,指向vcpu所有的模拟LAPIC结构。
包含结构:kvm_io_device, kvm_vcpu*, kvm_timer
? kvm_main.c
所在目录:/x86
文件描述:实现KVM核心接口服务函数,用户空间调用接口发送的请求由这些函数来处理
? kvm_vm_ioctl()
函数描述:处理ioctl命令
? kvm_vm_ioctl_create_vcpu()
函数描述:创建vcpu
vmx_init ---- kvm_init() ---- kvm_arch_init()
|
|