Browse Source

unix: add Getsystemcfg on aix

This will be used to detect POWER8/POWER9 support in x/sys/cpu

Updates golang/go#30732

Change-Id: I10ad6e440920c34c378bf6783417bc09421ff500
Reviewed-on: https://go-review.googlesource.com/c/sys/+/166465
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Clément Chigot <clement.chigot@atos.net>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Tobias Klauser 6 years ago
parent
commit
7c207b7624

+ 2 - 0
unix/syscall_aix.go

@@ -545,3 +545,5 @@ func Poll(fds []PollFd, timeout int) (n int, err error) {
 //sys	gettimeofday(tv *Timeval, tzp *Timezone) (err error)
 //sysnb	Time(t *Time_t) (tt Time_t, err error)
 //sys	Utime(path string, buf *Utimbuf) (err error)
+
+//sys	Getsystemcfg(label int) (n uint64)

+ 8 - 0
unix/zsyscall_aix_ppc64.go

@@ -1367,6 +1367,14 @@ func Utime(path string, buf *Utimbuf) (err error) {
 
 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 
+func Getsystemcfg(label int) (n uint64) {
+	r0, _ := callgetsystemcfg(label)
+	n = uint64(r0)
+	return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
 func Getrlimit(resource int, rlim *Rlimit) (err error) {
 	_, e1 := callgetrlimit(resource, uintptr(unsafe.Pointer(rlim)))
 	if e1 != 0 {

+ 10 - 0
unix/zsyscall_aix_ppc64_gc.go

@@ -120,6 +120,7 @@ import (
 //go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.a/shr_64.o"
 //go:cgo_import_dynamic libc_time time "libc.a/shr_64.o"
 //go:cgo_import_dynamic libc_utime utime "libc.a/shr_64.o"
+//go:cgo_import_dynamic libc_getsystemcfg getsystemcfg "libc.a/shr_64.o"
 //go:cgo_import_dynamic libc_getrlimit getrlimit "libc.a/shr_64.o"
 //go:cgo_import_dynamic libc_setrlimit setrlimit "libc.a/shr_64.o"
 //go:cgo_import_dynamic libc_lseek lseek "libc.a/shr_64.o"
@@ -235,6 +236,7 @@ import (
 //go:linkname libc_gettimeofday libc_gettimeofday
 //go:linkname libc_time libc_time
 //go:linkname libc_utime libc_utime
+//go:linkname libc_getsystemcfg libc_getsystemcfg
 //go:linkname libc_getrlimit libc_getrlimit
 //go:linkname libc_setrlimit libc_setrlimit
 //go:linkname libc_lseek libc_lseek
@@ -353,6 +355,7 @@ var (
 	libc_gettimeofday,
 	libc_time,
 	libc_utime,
+	libc_getsystemcfg,
 	libc_getrlimit,
 	libc_setrlimit,
 	libc_lseek,
@@ -1135,6 +1138,13 @@ func callutime(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) {
 
 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 
+func callgetsystemcfg(label int) (r1 uintptr, e1 Errno) {
+	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getsystemcfg)), 1, uintptr(label), 0, 0, 0, 0, 0)
+	return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
 func callgetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) {
 	r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getrlimit)), 2, uintptr(resource), rlim, 0, 0, 0, 0)
 	return

+ 9 - 0
unix/zsyscall_aix_ppc64_gccgo.go

@@ -118,6 +118,7 @@ int poll(uintptr_t, int, int);
 int gettimeofday(uintptr_t, uintptr_t);
 int time(uintptr_t);
 int utime(uintptr_t, uintptr_t);
+unsigned long long getsystemcfg(int);
 int getrlimit(int, uintptr_t);
 int setrlimit(int, uintptr_t);
 long long lseek(int, long long, int);
@@ -1011,6 +1012,14 @@ func callutime(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) {
 
 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 
+func callgetsystemcfg(label int) (r1 uintptr, e1 Errno) {
+	r1 = uintptr(C.getsystemcfg(C.int(label)))
+	e1 = syscall.GetErrno()
+	return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
 func callgetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) {
 	r1 = uintptr(C.getrlimit(C.int(resource), C.uintptr_t(rlim)))
 	e1 = syscall.GetErrno()