From 7d7885af1816e9c68338d4351e8fe6bf5542e7a7 Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Wed, 11 Nov 2020 21:41:10 +0100 Subject: updater: use constants from debug/pe These are nice here, but we don't want to use them for memmod, since there we need a more complete linker. Signed-off-by: Jason A. Donenfeld --- updater/syscall_windows.go | 36 ------------------------------------ updater/versions_arm.go | 9 +++++---- 2 files changed, 5 insertions(+), 40 deletions(-) (limited to 'updater') diff --git a/updater/syscall_windows.go b/updater/syscall_windows.go index 0410e708..074ec164 100644 --- a/updater/syscall_windows.go +++ b/updater/syscall_windows.go @@ -7,42 +7,6 @@ package updater import "golang.org/x/sys/windows" -const ( - // TODO: Push those constants upstream. golang.zx2c4.com/wireguard/tun/wintun/memmod is declaring them too. It will share the benefit. - IMAGE_FILE_MACHINE_UNKNOWN = 0 - IMAGE_FILE_MACHINE_TARGET_HOST = 0x0001 // Useful for indicating we want to interact with the host and not a WoW guest. - IMAGE_FILE_MACHINE_I386 = 0x014c // Intel 386. - IMAGE_FILE_MACHINE_R3000 = 0x0162 // MIPS little-endian, 0x160 big-endian - IMAGE_FILE_MACHINE_R4000 = 0x0166 // MIPS little-endian - IMAGE_FILE_MACHINE_R10000 = 0x0168 // MIPS little-endian - IMAGE_FILE_MACHINE_WCEMIPSV2 = 0x0169 // MIPS little-endian WCE v2 - IMAGE_FILE_MACHINE_ALPHA = 0x0184 // Alpha_AXP - IMAGE_FILE_MACHINE_SH3 = 0x01a2 // SH3 little-endian - IMAGE_FILE_MACHINE_SH3DSP = 0x01a3 - IMAGE_FILE_MACHINE_SH3E = 0x01a4 // SH3E little-endian - IMAGE_FILE_MACHINE_SH4 = 0x01a6 // SH4 little-endian - IMAGE_FILE_MACHINE_SH5 = 0x01a8 // SH5 - IMAGE_FILE_MACHINE_ARM = 0x01c0 // ARM Little-Endian - IMAGE_FILE_MACHINE_THUMB = 0x01c2 // ARM Thumb/Thumb-2 Little-Endian - IMAGE_FILE_MACHINE_ARMNT = 0x01c4 // ARM Thumb-2 Little-Endian - IMAGE_FILE_MACHINE_AM33 = 0x01d3 - IMAGE_FILE_MACHINE_POWERPC = 0x01F0 // IBM PowerPC Little-Endian - IMAGE_FILE_MACHINE_POWERPCFP = 0x01f1 - IMAGE_FILE_MACHINE_IA64 = 0x0200 // Intel 64 - IMAGE_FILE_MACHINE_MIPS16 = 0x0266 // MIPS - IMAGE_FILE_MACHINE_ALPHA64 = 0x0284 // ALPHA64 - IMAGE_FILE_MACHINE_MIPSFPU = 0x0366 // MIPS - IMAGE_FILE_MACHINE_MIPSFPU16 = 0x0466 // MIPS - IMAGE_FILE_MACHINE_AXP64 = IMAGE_FILE_MACHINE_ALPHA64 - IMAGE_FILE_MACHINE_TRICORE = 0x0520 // Infineon - IMAGE_FILE_MACHINE_CEF = 0x0CEF - IMAGE_FILE_MACHINE_EBC = 0x0EBC // EFI Byte Code - IMAGE_FILE_MACHINE_AMD64 = 0x8664 // AMD64 (K8) - IMAGE_FILE_MACHINE_M32R = 0x9041 // M32R little-endian - IMAGE_FILE_MACHINE_ARM64 = 0xAA64 // ARM64 Little-Endian - IMAGE_FILE_MACHINE_CEE = 0xC0EE -) - //sys isWow64Process2Internal(process windows.Handle, processMachine *uint16, nativeMachine *uint16) (err error) = kernel32.IsWow64Process2 func isWow64Process2(process windows.Handle) (processMachine, nativeMachine uint16, err error) { diff --git a/updater/versions_arm.go b/updater/versions_arm.go index 2ffb4b74..f3e43ec3 100644 --- a/updater/versions_arm.go +++ b/updater/versions_arm.go @@ -6,6 +6,7 @@ package updater import ( + "debug/pe" "errors" "golang.org/x/sys/windows" @@ -17,15 +18,15 @@ func findArch() (arch string, err error) { if err2 != nil { var isWow64 bool if windows.IsWow64Process(process, &isWow64) != nil || !isWow64 { - nativeMachine = IMAGE_FILE_MACHINE_ARMNT + nativeMachine = pe.IMAGE_FILE_MACHINE_ARMNT } else { - nativeMachine = IMAGE_FILE_MACHINE_ARM64 + nativeMachine = pe.IMAGE_FILE_MACHINE_ARM64 } } switch nativeMachine { - case IMAGE_FILE_MACHINE_ARM64: + case pe.IMAGE_FILE_MACHINE_ARM64: arch = "arm64" - case IMAGE_FILE_MACHINE_ARMNT: + case pe.IMAGE_FILE_MACHINE_ARMNT: arch = "arm" default: err = errors.New("Invalid GOARCH") -- cgit v1.2.3-59-g8ed1b