diff options
author | Haibo Xu <haibo.xu@arm.com> | 2020-02-25 07:30:12 +0000 |
---|---|---|
committer | Haibo Xu <haibo.xu@arm.com> | 2020-02-26 01:51:31 +0000 |
commit | 73201f4c5700ce7af404b968698b86d80989ab1e (patch) | |
tree | d80ece5603ce14d654c57ce8cc5e3d79bc9cd813 /pkg/sentry/platform/kvm/kvm.go | |
parent | 813b1b048630dbf7b812abbe052dc34954869403 (diff) |
Code Clean: Move arch independent codes to common file in kvm pkg.
Signed-off-by: Haibo Xu <haibo.xu@arm.com>
Change-Id: Iefbdf53e8e8d6d23ae75d8a2ff0d2a6e71f414d8
Diffstat (limited to 'pkg/sentry/platform/kvm/kvm.go')
-rw-r--r-- | pkg/sentry/platform/kvm/kvm.go | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/pkg/sentry/platform/kvm/kvm.go b/pkg/sentry/platform/kvm/kvm.go index 972ba85c3..a9b4af43e 100644 --- a/pkg/sentry/platform/kvm/kvm.go +++ b/pkg/sentry/platform/kvm/kvm.go @@ -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 |