diff options
author | lubinszARM <34124929+lubinszARM@users.noreply.github.com> | 2020-01-14 22:22:45 -0800 |
---|---|---|
committer | gVisor bot <gvisor-bot@google.com> | 2020-01-14 22:24:28 -0800 |
commit | ff78a721700f8b7d3c8dae14fc14c04f3a82b970 (patch) | |
tree | f72d2a237887ae684bc8660707e6d1b9a915b987 /pkg/sentry/arch/arch_state_aarch64.go | |
parent | a611fdaee3c14abe2222140ae0a8a742ebfd31ab (diff) |
enable pkg/sentry/arch to support arm64 basically
Signed-off-by: Bin Lu <bin.lu@arm.com>
Change-Id: I9cce23db4e5caec82ce42b4970fdb7f7e8c08f1d
COPYBARA_INTEGRATE_REVIEW=https://github.com/google/gvisor/pull/773 from lubinszARM:pr_arch_basic 3fe2fd8e6286766bbe489ef971dce204f924feba
PiperOrigin-RevId: 289795569
Diffstat (limited to 'pkg/sentry/arch/arch_state_aarch64.go')
-rw-r--r-- | pkg/sentry/arch/arch_state_aarch64.go | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/pkg/sentry/arch/arch_state_aarch64.go b/pkg/sentry/arch/arch_state_aarch64.go new file mode 100644 index 000000000..0136a85ad --- /dev/null +++ b/pkg/sentry/arch/arch_state_aarch64.go @@ -0,0 +1,38 @@ +// Copyright 2020 The gVisor Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// +build arm64 + +package arch + +import ( + "syscall" +) + +type syscallPtraceRegs struct { + Regs [31]uint64 + Sp uint64 + Pc uint64 + Pstate uint64 +} + +// saveRegs is invoked by stateify. +func (s *State) saveRegs() syscallPtraceRegs { + return syscallPtraceRegs(s.Regs) +} + +// loadRegs is invoked by stateify. +func (s *State) loadRegs(r syscallPtraceRegs) { + s.Regs = syscall.PtraceRegs(r) +} |