Merge pull request #1963 from xiaobo55x:kvm_common
PiperOrigin-RevId: 299405855
This commit is contained in:
commit
18d41cf153
|
@ -27,6 +27,38 @@ import (
|
|||
"gvisor.dev/gvisor/pkg/usermem"
|
||||
)
|
||||
|
||||
// userMemoryRegion is a region of physical memory.
|
||||
//
|
||||
// This mirrors kvm_memory_region.
|
||||
type userMemoryRegion struct {
|
||||
slot uint32
|
||||
flags uint32
|
||||
guestPhysAddr uint64
|
||||
memorySize uint64
|
||||
userspaceAddr uint64
|
||||
}
|
||||
|
||||
// runData is the run structure. This may be mapped for synchronous register
|
||||
// access (although that doesn't appear to be supported by my kernel at least).
|
||||
//
|
||||
// This mirrors kvm_run.
|
||||
type runData struct {
|
||||
requestInterruptWindow uint8
|
||||
_ [7]uint8
|
||||
|
||||
exitReason uint32
|
||||
readyForInterruptInjection uint8
|
||||
ifFlag uint8
|
||||
_ [2]uint8
|
||||
|
||||
cr8 uint64
|
||||
apicBase uint64
|
||||
|
||||
// This is the union data for exits. Interpretation depends entirely on
|
||||
// the exitReason above (see vCPU code for more information).
|
||||
data [32]uint64
|
||||
}
|
||||
|
||||
// KVM represents a lightweight VM context.
|
||||
type KVM struct {
|
||||
platform.NoCPUPreemptionDetection
|
||||
|
|
|
@ -21,17 +21,6 @@ import (
|
|||
"gvisor.dev/gvisor/pkg/sentry/platform/ring0"
|
||||
)
|
||||
|
||||
// userMemoryRegion is a region of physical memory.
|
||||
//
|
||||
// This mirrors kvm_memory_region.
|
||||
type userMemoryRegion struct {
|
||||
slot uint32
|
||||
flags uint32
|
||||
guestPhysAddr uint64
|
||||
memorySize uint64
|
||||
userspaceAddr uint64
|
||||
}
|
||||
|
||||
// userRegs represents KVM user registers.
|
||||
//
|
||||
// This mirrors kvm_regs.
|
||||
|
@ -169,27 +158,6 @@ type modelControlRegisters struct {
|
|||
entries [16]modelControlRegister
|
||||
}
|
||||
|
||||
// runData is the run structure. This may be mapped for synchronous register
|
||||
// access (although that doesn't appear to be supported by my kernel at least).
|
||||
//
|
||||
// This mirrors kvm_run.
|
||||
type runData struct {
|
||||
requestInterruptWindow uint8
|
||||
_ [7]uint8
|
||||
|
||||
exitReason uint32
|
||||
readyForInterruptInjection uint8
|
||||
ifFlag uint8
|
||||
_ [2]uint8
|
||||
|
||||
cr8 uint64
|
||||
apicBase uint64
|
||||
|
||||
// This is the union data for exits. Interpretation depends entirely on
|
||||
// the exitReason above (see vCPU code for more information).
|
||||
data [32]uint64
|
||||
}
|
||||
|
||||
// cpuidEntry is a single CPUID entry.
|
||||
//
|
||||
// This mirrors kvm_cpuid_entry2.
|
||||
|
|
|
@ -20,17 +20,6 @@ import (
|
|||
"syscall"
|
||||
)
|
||||
|
||||
// userMemoryRegion is a region of physical memory.
|
||||
//
|
||||
// This mirrors kvm_memory_region.
|
||||
type userMemoryRegion struct {
|
||||
slot uint32
|
||||
flags uint32
|
||||
guestPhysAddr uint64
|
||||
memorySize uint64
|
||||
userspaceAddr uint64
|
||||
}
|
||||
|
||||
type kvmOneReg struct {
|
||||
id uint64
|
||||
addr uint64
|
||||
|
@ -53,27 +42,6 @@ type userRegs struct {
|
|||
fpRegs userFpsimdState
|
||||
}
|
||||
|
||||
// runData is the run structure. This may be mapped for synchronous register
|
||||
// access (although that doesn't appear to be supported by my kernel at least).
|
||||
//
|
||||
// This mirrors kvm_run.
|
||||
type runData struct {
|
||||
requestInterruptWindow uint8
|
||||
_ [7]uint8
|
||||
|
||||
exitReason uint32
|
||||
readyForInterruptInjection uint8
|
||||
ifFlag uint8
|
||||
_ [2]uint8
|
||||
|
||||
cr8 uint64
|
||||
apicBase uint64
|
||||
|
||||
// This is the union data for exits. Interpretation depends entirely on
|
||||
// the exitReason above (see vCPU code for more information).
|
||||
data [32]uint64
|
||||
}
|
||||
|
||||
// updateGlobalOnce does global initialization. It has to be called only once.
|
||||
func updateGlobalOnce(fd int) error {
|
||||
physicalInit()
|
||||
|
|
Loading…
Reference in New Issue