exit 1
;;
freebsd_386)
+ mkerrors="$mkerrors -f -m32"
mksyscall="./mksyscall.sh -l32"
mksysnum="./mksysnum_freebsd.sh /usr/src/sys/kern/syscalls.master"
mktypes="godefs -gsyscall -f-m32"
;;
freebsd_amd64)
+ mkerrors="$mkerrors -f -m64"
mksysnum="./mksysnum_freebsd.sh /usr/src/sys/kern/syscalls.master"
mktypes="godefs -gsyscall -f-m64"
;;
darwin_386)
+ mkerrors="$mkerrors -f -m32"
mksyscall="./mksyscall.sh -l32"
mksysnum="./mksysnum_darwin.sh /home/rsc/pub/xnu-1228/bsd/kern/syscalls.master"
mktypes="godefs -gsyscall -f-m32"
;;
darwin_amd64)
+ mkerrors="$mkerrors -f -m64"
mksysnum="./mksysnum_darwin.sh /home/rsc/pub/xnu-1228/bsd/kern/syscalls.master"
mktypes="godefs -gsyscall -f-m64"
mkerrors="./mkerrors.sh"
;;
linux_386)
+ mkerrors="$mkerrors -f -m32"
mksyscall="./mksyscall.sh -l32"
mksysnum="./mksysnum_linux.sh /usr/include/asm/unistd_32.h"
mktypes="godefs -gsyscall -f-m32"
;;
linux_amd64)
+ mkerrors="$mkerrors -f -m64"
mksysnum="./mksysnum_linux.sh /usr/include/asm/unistd_64.h"
mktypes="godefs -gsyscall -f-m64"
;;
#include <signal.h>
'
+ccflags=""
+next=false
+for i
+do
+ if $next; then
+ ccflags="$ccflags $i"
+ next=false
+ elif [ "$i" = "-f" ]; then
+ next=true
+ fi
+done
+
# Write godefs input.
(
indirect="includes_$(uname)"
# The gcc command line prints all the #defines
# it encounters while processing the input
- echo "${!indirect} $includes" | $GCC -x c - -E -dM |
+ echo "${!indirect} $includes" | $GCC -x c - -E -dM $ccflags |
awk '
$1 != "#define" || $2 ~ /\(/ {next}
# Pull out just the error names for later.
errors=$(
- echo '#include <errno.h>' | $GCC -x c - -E -dM |
+ echo '#include <errno.h>' | $GCC -x c - -E -dM $ccflags |
awk '$1=="#define" && $2 ~ /^E[A-Z0-9_]+$/ { print $2 }' |
sort
)
echo '// mkerrors.sh' "$@"
echo '// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT'
echo
-godefs -gsyscall "$@" _const.c
+godefs "$@" -gsyscall "$@" _const.c
# Run C program to print error strings.
(
'
) >_errors.c
-gcc -o _errors _errors.c && ./_errors && rm -f _errors.c _errors _const.c
+gcc $ccflags -o _errors _errors.c && ./_errors && rm -f _errors.c _errors _const.c
* Wrapped
*/
+//sys open(path string, mode int, perm int) (fd int, errno int)
+func Open(path string, mode int, perm int) (fd int, errno int) {
+ return open(path, mode|O_LARGEFILE, perm)
+}
+
//sys pipe(p *[2]_C_int) (errno int)
func Pipe(p []int) (errno int) {
if len(p) != 2 {
//sys Mknod(path string, mode int, dev int) (errno int)
//sys Mknodat(dirfd int, path string, mode int, dev int) (errno int)
//sys Nanosleep(time *Timespec, leftover *Timespec) (errno int)
-//sys Open(path string, mode int, perm int) (fd int, errno int)
//sys Openat(dirfd int, path string, flags int, mode int) (fd int, errno int)
//sys Pause() (errno int)
//sys PivotRoot(newroot string, putold string) (errno int) = SYS_PIVOT_ROOT
-// mkerrors.sh
+// mkerrors.sh -f -m32
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
-// godefs -gsyscall _const.c
+// godefs -f -m32 -gsyscall -f -m32 _const.c
// MACHINE GENERATED - DO NOT EDIT.
EAFNOSUPPORT = 0x61
EAGAIN = 0xb
EALREADY = 0x72
+ EAX = 0x6
EBADE = 0x34
EBADF = 0x9
EBADFD = 0x4d
EBADRQC = 0x38
EBADSLT = 0x39
EBFONT = 0x3b
+ EBP = 0x5
EBUSY = 0x10
+ EBX = 0
ECANCELED = 0x7d
ECHILD = 0xa
ECHRNG = 0x2c
ECONNABORTED = 0x67
ECONNREFUSED = 0x6f
ECONNRESET = 0x68
+ ECX = 0x1
EDEADLK = 0x23
EDEADLOCK = 0x23
EDESTADDRREQ = 0x59
+ EDI = 0x4
EDOM = 0x21
EDOTDOT = 0x49
EDQUOT = 0x7a
+ EDX = 0x2
EEXIST = 0x11
EFAULT = 0xe
EFBIG = 0x1b
+ EFL = 0xe
EHOSTDOWN = 0x70
EHOSTUNREACH = 0x71
EIDRM = 0x2b
EINTR = 0x4
EINVAL = 0x16
EIO = 0x5
+ EIP = 0xc
EISCONN = 0x6a
EISDIR = 0x15
EISNAM = 0x78
EREMOTEIO = 0x79
ERESTART = 0x55
EROFS = 0x1e
+ ES = 0x8
ESHUTDOWN = 0x6c
+ ESI = 0x3
ESOCKTNOSUPPORT = 0x5e
ESPIPE = 0x1d
ESRCH = 0x3
F_GETFD = 0x1
F_GETFL = 0x3
F_GETLEASE = 0x401
- F_GETLK = 0x5
- F_GETLK64 = 0x5
+ F_GETLK = 0xc
+ F_GETLK64 = 0xc
F_GETOWN = 0x9
F_GETSIG = 0xb
F_LOCK = 0x1
F_SETFD = 0x2
F_SETFL = 0x4
F_SETLEASE = 0x400
- F_SETLK = 0x6
- F_SETLK64 = 0x6
- F_SETLKW = 0x7
- F_SETLKW64 = 0x7
+ F_SETLK = 0xd
+ F_SETLK64 = 0xd
+ F_SETLKW = 0xe
+ F_SETLKW64 = 0xe
F_SETOWN = 0x8
F_SETSIG = 0xa
F_SHLCK = 0x8
O_DSYNC = 0x1000
O_EXCL = 0x80
O_FSYNC = 0x1000
- O_LARGEFILE = 0
+ O_LARGEFILE = 0x8000
O_NDELAY = 0x800
O_NOATIME = 0x40000
O_NOCTTY = 0x100
O_SYNC = 0x1000
O_TRUNC = 0x200
O_WRONLY = 0x1
- PTRACE_ARCH_PRCTL = 0x1e
PTRACE_ATTACH = 0x10
PTRACE_CONT = 0x7
PTRACE_DETACH = 0x11
PTRACE_SET_THREAD_AREA = 0x1a
PTRACE_SINGLESTEP = 0x9
PTRACE_SYSCALL = 0x18
+ PTRACE_SYSEMU = 0x1f
+ PTRACE_SYSEMU_SINGLESTEP = 0x20
PTRACE_TRACEME = 0
SHUT_RD = 0
SHUT_RDWR = 0x2
WNOHANG = 0x1
WNOTHREAD = 0x20000000
WNOWAIT = 0x1000000
- WORDSIZE = 0x40
+ WORDSIZE = 0x20
WSTOPPED = 0x2
WUNTRACED = 0x2
)
-// mkerrors.sh
+// mkerrors.sh -f -m64
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
-// godefs -gsyscall _const.c
+// godefs -f -m64 -gsyscall -f -m64 _const.c
// MACHINE GENERATED - DO NOT EDIT.
import "unsafe"
+func open(path string, mode int, perm int) (fd int, errno int) {
+ r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(StringBytePtr(path))), uintptr(mode), uintptr(perm))
+ fd = int(r0)
+ errno = int(e1)
+ return
+}
+
func pipe(p *[2]_C_int) (errno int) {
_, _, e1 := Syscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)
errno = int(e1)
return
}
-func Open(path string, mode int, perm int) (fd int, errno int) {
- r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(StringBytePtr(path))), uintptr(mode), uintptr(perm))
- fd = int(r0)
- errno = int(e1)
- return
-}
-
func Openat(dirfd int, path string, flags int, mode int) (fd int, errno int) {
r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(StringBytePtr(path))), uintptr(flags), uintptr(mode), 0, 0)
fd = int(r0)
import "unsafe"
+func open(path string, mode int, perm int) (fd int, errno int) {
+ r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(StringBytePtr(path))), uintptr(mode), uintptr(perm))
+ fd = int(r0)
+ errno = int(e1)
+ return
+}
+
func pipe(p *[2]_C_int) (errno int) {
_, _, e1 := Syscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)
errno = int(e1)
return
}
-func Open(path string, mode int, perm int) (fd int, errno int) {
- r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(StringBytePtr(path))), uintptr(mode), uintptr(perm))
- fd = int(r0)
- errno = int(e1)
- return
-}
-
func Openat(dirfd int, path string, flags int, mode int) (fd int, errno int) {
r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(StringBytePtr(path))), uintptr(flags), uintptr(mode), 0, 0)
fd = int(r0)