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>
diff --git a/unix/syscall_aix.go b/unix/syscall_aix.go
index a76826f..fd83d87 100644
--- a/unix/syscall_aix.go
+++ b/unix/syscall_aix.go
@@ -545,3 +545,5 @@
 //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)
diff --git a/unix/zsyscall_aix_ppc64.go b/unix/zsyscall_aix_ppc64.go
index e645a05..52802bf 100644
--- a/unix/zsyscall_aix_ppc64.go
+++ b/unix/zsyscall_aix_ppc64.go
@@ -1367,6 +1367,14 @@
 
 // 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 {
diff --git a/unix/zsyscall_aix_ppc64_gc.go b/unix/zsyscall_aix_ppc64_gc.go
index 0b8eb72..a2b24e4 100644
--- a/unix/zsyscall_aix_ppc64_gc.go
+++ b/unix/zsyscall_aix_ppc64_gc.go
@@ -120,6 +120,7 @@
 //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 @@
 //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 @@
 	libc_gettimeofday,
 	libc_time,
 	libc_utime,
+	libc_getsystemcfg,
 	libc_getrlimit,
 	libc_setrlimit,
 	libc_lseek,
@@ -1135,6 +1138,13 @@
 
 // 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
diff --git a/unix/zsyscall_aix_ppc64_gccgo.go b/unix/zsyscall_aix_ppc64_gccgo.go
index e88a442..5491c89 100644
--- a/unix/zsyscall_aix_ppc64_gccgo.go
+++ b/unix/zsyscall_aix_ppc64_gccgo.go
@@ -118,6 +118,7 @@
 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 @@
 
 // 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()