From 9e0f13237793897c805f75af163006049b37e784 Mon Sep 17 00:00:00 2001 From: Haibo Xu Date: Tue, 27 Nov 2018 12:45:04 -0800 Subject: [PATCH] Add procid support for arm64 platform Change-Id: I7c3db8dfdf95a125d7384c1d67c3300dbb99a47e PiperOrigin-RevId: 223039923 --- pkg/sentry/platform/procid/BUILD | 1 + pkg/sentry/platform/procid/procid_arm64.s | 29 +++++++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 pkg/sentry/platform/procid/procid_arm64.s diff --git a/pkg/sentry/platform/procid/BUILD b/pkg/sentry/platform/procid/BUILD index d3398d1e8..20c8bc02c 100644 --- a/pkg/sentry/platform/procid/BUILD +++ b/pkg/sentry/platform/procid/BUILD @@ -7,6 +7,7 @@ go_library( srcs = [ "procid.go", "procid_amd64.s", + "procid_arm64.s", ], importpath = "gvisor.googlesource.com/gvisor/pkg/sentry/platform/procid", visibility = ["//pkg/sentry:internal"], diff --git a/pkg/sentry/platform/procid/procid_arm64.s b/pkg/sentry/platform/procid/procid_arm64.s new file mode 100644 index 000000000..be65d0db0 --- /dev/null +++ b/pkg/sentry/platform/procid/procid_arm64.s @@ -0,0 +1,29 @@ +// Copyright 2018 Google LLC +// +// 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 +// +build go1.8 +// +build !go1.12 + +#include "textflag.h" + +TEXT ·Current(SB),NOSPLIT,$0-8 + // The offset specified here is the m_procid offset for Go1.8+. + // Changes to this offset should be caught by the tests, and major + // version changes require an explicit tag change above. + MOVD g, R0 // g + MOVD 48(R0), R0 // g_m (may change in future versions) + MOVD 72(R0), R0 // m_procid (may change in future versions) + MOVD R0, ret+0(FP) + RET