...
Run Format

Source file src/cmd/dist/sys_windows.go

Documentation: cmd/dist

  // Copyright 2015 The Go Authors. All rights reserved.
  // Use of this source code is governed by a BSD-style
  // license that can be found in the LICENSE file.
  
  package main
  
  import (
  	"syscall"
  	"unsafe"
  )
  
  var (
  	modkernel32       = syscall.NewLazyDLL("kernel32.dll")
  	procGetSystemInfo = modkernel32.NewProc("GetSystemInfo")
  )
  
  // see http://msdn.microsoft.com/en-us/library/windows/desktop/ms724958(v=vs.85).aspx
  type systeminfo struct {
  	wProcessorArchitecture      uint16
  	wReserved                   uint16
  	dwPageSize                  uint32
  	lpMinimumApplicationAddress uintptr
  	lpMaximumApplicationAddress uintptr
  	dwActiveProcessorMask       uintptr
  	dwNumberOfProcessors        uint32
  	dwProcessorType             uint32
  	dwAllocationGranularity     uint32
  	wProcessorLevel             uint16
  	wProcessorRevision          uint16
  }
  
  const (
  	PROCESSOR_ARCHITECTURE_AMD64 = 9
  	PROCESSOR_ARCHITECTURE_INTEL = 0
  )
  
  var sysinfo systeminfo
  
  func sysinit() {
  	syscall.Syscall(procGetSystemInfo.Addr(), 1, uintptr(unsafe.Pointer(&sysinfo)), 0, 0)
  	switch sysinfo.wProcessorArchitecture {
  	case PROCESSOR_ARCHITECTURE_AMD64:
  		gohostarch = "amd64"
  	case PROCESSOR_ARCHITECTURE_INTEL:
  		gohostarch = "386"
  	default:
  		fatal("unknown processor architecture")
  	}
  }
  

View as plain text