1// Copyright 2019 The Go Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style 3// license that can be found in the LICENSE file. 4 5// Minimal copy of x/sys/unix so the cpu package can make a 6// system call on AIX without depending on x/sys/unix. 7// (See golang.org/issue/32102) 8 9//go:build aix && ppc64 && gc 10// +build aix,ppc64,gc 11 12package cpu 13 14import ( 15 "syscall" 16 "unsafe" 17) 18 19//go:cgo_import_dynamic libc_getsystemcfg getsystemcfg "libc.a/shr_64.o" 20 21//go:linkname libc_getsystemcfg libc_getsystemcfg 22 23type syscallFunc uintptr 24 25var libc_getsystemcfg syscallFunc 26 27type errno = syscall.Errno 28 29// Implemented in runtime/syscall_aix.go. 30func rawSyscall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err errno) 31func syscall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err errno) 32 33func callgetsystemcfg(label int) (r1 uintptr, e1 errno) { 34 r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getsystemcfg)), 1, uintptr(label), 0, 0, 0, 0, 0) 35 return 36} 37