mirror of
https://github.com/rwinkhart/sys.git
synced 2026-09-03 07:37:34 -04:00
unix: add support for aix/ppc64, gc implementation
This commit ports unix package for aix/ppc64 with gc implementation. In order to merge as much as possible gc and gccgo implementation, the mksyscall_aix_ppc64.pl creates three files. zsyscall_aix_ppc64.go is common for both implementation. It has the main syscall function and handles the pointer creations, type conversions and the error if needed. It calls a function "call..." which is available for each implementation. zsyscall_aix_ppc64_gc.go is the gc part. It implements "call..." functions using //go:cgo_import_dynamic and //go:linkname. It is based on syscall.syscall6 function. zsyscall_aix_ppc64_gccgo.go is the gccgo part. It implements "call..." functions using cgo and C functions. Some unavailable syscalls were also removed from the previous implementation. For aix/ppc, the script is left unchanged as aix/ppc won't be implemented inside gc. Change-Id: I3701095df31517c66f95874ba8e682967993090b Reviewed-on: https://go-review.googlesource.com/c/143117 Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
This commit is contained in:
+14
-83
@@ -1,4 +1,4 @@
|
||||
// mksyscall_aix.pl -aix -tags aix,ppc syscall_aix.go syscall_aix_ppc.go
|
||||
// mksyscall_aix_ppc.pl -aix -tags aix,ppc syscall_aix.go syscall_aix_ppc.go
|
||||
// Code generated by the command above; see README.md. DO NOT EDIT.
|
||||
|
||||
// +build aix,ppc
|
||||
@@ -7,6 +7,7 @@ package unix
|
||||
|
||||
/*
|
||||
#include <stdint.h>
|
||||
#include <stddef.h>
|
||||
int utimes(uintptr_t, uintptr_t);
|
||||
int utimensat(int, uintptr_t, uintptr_t, int);
|
||||
int getcwd(uintptr_t, size_t);
|
||||
@@ -20,10 +21,8 @@ int chdir(uintptr_t);
|
||||
int chroot(uintptr_t);
|
||||
int close(int);
|
||||
int dup(int);
|
||||
int dup3(int, int, int);
|
||||
void exit(int);
|
||||
int faccessat(int, uintptr_t, unsigned int, int);
|
||||
int fallocate(int, unsigned int, long long, long long);
|
||||
int fchdir(int);
|
||||
int fchmod(int, unsigned int);
|
||||
int fchmodat(int, uintptr_t, unsigned int, int);
|
||||
@@ -49,7 +48,6 @@ int open64(uintptr_t, int, unsigned int);
|
||||
int openat(int, uintptr_t, int, unsigned int);
|
||||
int read(int, uintptr_t, size_t);
|
||||
int readlink(uintptr_t, uintptr_t, size_t);
|
||||
int removexattr(uintptr_t, uintptr_t);
|
||||
int renameat(int, uintptr_t, int, uintptr_t);
|
||||
int setdomainname(uintptr_t, size_t);
|
||||
int sethostname(uintptr_t, size_t);
|
||||
@@ -61,13 +59,11 @@ int setgid(int);
|
||||
int setpriority(int, int, int);
|
||||
int statx(int, uintptr_t, int, int, uintptr_t);
|
||||
int sync();
|
||||
long long tee(int, int, int, int);
|
||||
uintptr_t times(uintptr_t);
|
||||
int umask(int);
|
||||
int uname(uintptr_t);
|
||||
int unlink(uintptr_t);
|
||||
int unlinkat(int, uintptr_t, int);
|
||||
int unshare(int);
|
||||
int ustat(int, uintptr_t);
|
||||
int write(int, uintptr_t, size_t);
|
||||
int dup2(int, int);
|
||||
@@ -118,7 +114,6 @@ int msync(uintptr_t, size_t, int);
|
||||
int munlock(uintptr_t, size_t);
|
||||
int munlockall();
|
||||
int pipe(uintptr_t);
|
||||
int pipe2(uintptr_t, int);
|
||||
int poll(uintptr_t, int, int);
|
||||
int gettimeofday(uintptr_t, uintptr_t);
|
||||
int time(uintptr_t);
|
||||
@@ -131,7 +126,6 @@ uintptr_t mmap(uintptr_t, uintptr_t, int, int, int, long long);
|
||||
*/
|
||||
import "C"
|
||||
import (
|
||||
"syscall"
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
@@ -245,6 +239,17 @@ func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) (err error) {
|
||||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
func fcntl(fd int, cmd int, arg int) (val int, err error) {
|
||||
r0, er := C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(arg))
|
||||
val = int(r0)
|
||||
if r0 == -1 && er != nil {
|
||||
err = er
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
func Acct(path string) (err error) {
|
||||
_p0 := uintptr(unsafe.Pointer(C.CString(path)))
|
||||
r0, er := C.acct(C.uintptr_t(_p0))
|
||||
@@ -299,16 +304,6 @@ func Dup(oldfd int) (fd int, err error) {
|
||||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
func Dup3(oldfd int, newfd int, flags int) (err error) {
|
||||
r0, er := C.dup3(C.int(oldfd), C.int(newfd), C.int(flags))
|
||||
if r0 == -1 && er != nil {
|
||||
err = er
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
func Exit(code int) {
|
||||
C.exit(C.int(code))
|
||||
return
|
||||
@@ -327,16 +322,6 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
|
||||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
func Fallocate(fd int, mode uint32, off int64, len int64) (err error) {
|
||||
r0, er := C.fallocate(C.int(fd), C.uint(mode), C.longlong(off), C.longlong(len))
|
||||
if r0 == -1 && er != nil {
|
||||
err = er
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
func Fchdir(fd int) (err error) {
|
||||
r0, er := C.fchdir(C.int(fd))
|
||||
if r0 == -1 && er != nil {
|
||||
@@ -379,17 +364,6 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
|
||||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
func fcntl(fd int, cmd int, arg int) (val int, err error) {
|
||||
r0, er := C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(arg))
|
||||
val = int(r0)
|
||||
if r0 == -1 && er != nil {
|
||||
err = er
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
func Fdatasync(fd int) (err error) {
|
||||
r0, er := C.fdatasync(C.int(fd))
|
||||
if r0 == -1 && er != nil {
|
||||
@@ -477,7 +451,7 @@ func Getsid(pid int) (sid int, err error) {
|
||||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
func Kill(pid int, sig syscall.Signal) (err error) {
|
||||
func Kill(pid int, sig Signal) (err error) {
|
||||
r0, er := C.kill(C.int(pid), C.int(sig))
|
||||
if r0 == -1 && er != nil {
|
||||
err = er
|
||||
@@ -628,18 +602,6 @@ func Readlink(path string, buf []byte) (n int, err error) {
|
||||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
func Removexattr(path string, attr string) (err error) {
|
||||
_p0 := uintptr(unsafe.Pointer(C.CString(path)))
|
||||
_p1 := uintptr(unsafe.Pointer(C.CString(attr)))
|
||||
r0, er := C.removexattr(C.uintptr_t(_p0), C.uintptr_t(_p1))
|
||||
if r0 == -1 && er != nil {
|
||||
err = er
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
|
||||
_p0 := uintptr(unsafe.Pointer(C.CString(oldpath)))
|
||||
_p1 := uintptr(unsafe.Pointer(C.CString(newpath)))
|
||||
@@ -763,17 +725,6 @@ func Sync() {
|
||||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {
|
||||
r0, er := C.tee(C.int(rfd), C.int(wfd), C.int(len), C.int(flags))
|
||||
n = int64(r0)
|
||||
if r0 == -1 && er != nil {
|
||||
err = er
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
func Times(tms *Tms) (ticks uintptr, err error) {
|
||||
r0, er := C.times(C.uintptr_t(uintptr(unsafe.Pointer(tms))))
|
||||
ticks = uintptr(r0)
|
||||
@@ -825,16 +776,6 @@ func Unlinkat(dirfd int, path string, flags int) (err error) {
|
||||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
func Unshare(flags int) (err error) {
|
||||
r0, er := C.unshare(C.int(flags))
|
||||
if r0 == -1 && er != nil {
|
||||
err = er
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
func Ustat(dev int, ubuf *Ustat_t) (err error) {
|
||||
r0, er := C.ustat(C.int(dev), C.uintptr_t(uintptr(unsafe.Pointer(ubuf))))
|
||||
if r0 == -1 && er != nil {
|
||||
@@ -1425,16 +1366,6 @@ func pipe(p *[2]_C_int) (err error) {
|
||||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
func pipe2(p *[2]_C_int, flags int) (err error) {
|
||||
r0, er := C.pipe2(C.uintptr_t(uintptr(unsafe.Pointer(p))), C.int(flags))
|
||||
if r0 == -1 && er != nil {
|
||||
err = er
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
|
||||
r0, er := C.poll(C.uintptr_t(uintptr(unsafe.Pointer(fds))), C.int(nfds), C.int(timeout))
|
||||
n = int(r0)
|
||||
|
||||
Reference in New Issue
Block a user