summaryrefslogtreecommitdiffhomepage
path: root/pkg
diff options
context:
space:
mode:
authorHaibo Xu <haibo.xu@arm.com>2018-11-27 12:45:04 -0800
committerShentubot <shentubot@google.com>2018-11-27 12:46:39 -0800
commit9e0f13237793897c805f75af163006049b37e784 (patch)
tree1447e0956804582ef5d9fd0284281ce783011164 /pkg
parent071aeea9d3ff783b2946ef291b1c440aa9b21b88 (diff)
Add procid support for arm64 platform
Change-Id: I7c3db8dfdf95a125d7384c1d67c3300dbb99a47e PiperOrigin-RevId: 223039923
Diffstat (limited to 'pkg')
-rw-r--r--pkg/sentry/platform/procid/BUILD1
-rw-r--r--pkg/sentry/platform/procid/procid_arm64.s29
2 files changed, 30 insertions, 0 deletions
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