aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/updater/versions_arm.go
diff options
context:
space:
mode:
Diffstat (limited to 'updater/versions_arm.go')
-rw-r--r--updater/versions_arm.go34
1 files changed, 34 insertions, 0 deletions
diff --git a/updater/versions_arm.go b/updater/versions_arm.go
new file mode 100644
index 00000000..2ffb4b74
--- /dev/null
+++ b/updater/versions_arm.go
@@ -0,0 +1,34 @@
+/* SPDX-License-Identifier: MIT
+ *
+ * Copyright (C) 2019-2020 WireGuard LLC. All Rights Reserved.
+ */
+
+package updater
+
+import (
+ "errors"
+
+ "golang.org/x/sys/windows"
+)
+
+func findArch() (arch string, err error) {
+ process := windows.CurrentProcess()
+ _, nativeMachine, err2 := isWow64Process2(process)
+ if err2 != nil {
+ var isWow64 bool
+ if windows.IsWow64Process(process, &isWow64) != nil || !isWow64 {
+ nativeMachine = IMAGE_FILE_MACHINE_ARMNT
+ } else {
+ nativeMachine = IMAGE_FILE_MACHINE_ARM64
+ }
+ }
+ switch nativeMachine {
+ case IMAGE_FILE_MACHINE_ARM64:
+ arch = "arm64"
+ case IMAGE_FILE_MACHINE_ARMNT:
+ arch = "arm"
+ default:
+ err = errors.New("Invalid GOARCH")
+ }
+ return
+}