github.com/neonyo/sys@v0.0.0-20230720094341-b1ee14be3ce8/cpu/syscall_aix_ppc64_gc.go (about)

     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  
    12  package cpu
    13  
    14  import (
    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  
    23  type syscallFunc uintptr
    24  
    25  var libc_getsystemcfg syscallFunc
    26  
    27  type errno = syscall.Errno
    28  
    29  // Implemented in runtime/syscall_aix.go.
    30  func rawSyscall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err errno)
    31  func syscall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err errno)
    32  
    33  func 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  }