]> Cypherpunks repositories - gostls13.git/commitdiff
syscall: fix arm build (fix bugs in generator, to add O_LARGEFILE)
authorRuss Cox <rsc@golang.org>
Mon, 3 May 2010 18:11:01 +0000 (11:11 -0700)
committerRuss Cox <rsc@golang.org>
Mon, 3 May 2010 18:11:01 +0000 (11:11 -0700)
R=r
CC=golang-dev
https://golang.org/cl/1021043

src/pkg/syscall/mkall.sh
src/pkg/syscall/mkerrors.sh
src/pkg/syscall/syscall_linux.go
src/pkg/syscall/syscall_linux_arm.go
src/pkg/syscall/zerrors_linux_386.go
src/pkg/syscall/zerrors_linux_arm.go
src/pkg/syscall/zsyscall_linux_386.go
src/pkg/syscall/zsyscall_linux_amd64.go
src/pkg/syscall/zsyscall_linux_arm.go
src/pkg/syscall/ztypes_linux_arm.go

index 06c18987200ca56cf8f71ce8d1dbe7db95006a33..0b4519adf5353f6097d2cd990312cc6fb78d0f96 100755 (executable)
@@ -146,9 +146,9 @@ linux_arm)
        ARM="/home/kaib/public/linux-2.6.28"
        mksyscall="./mksyscall.sh -l32"
        mksysnum="./mksysnum_linux.sh $ARM/arch/arm/include/asm/unistd.h"
-//     mktypes="godefs -gsyscall -carm-gcc -f-I$ARM/arch/arm/include -f-I$ARM/include -f-D__deprecated='' -f-I$ARM/arch/arm/mach-at91/include -f-DCONFIG_ARCH_AT91SAM9260 "
+     mktypes="godefs -gsyscall -carm-gcc -f-I$ARM/arch/arm/include -f-I$ARM/include -f-D__deprecated='' -f-I$ARM/arch/arm/mach-at91/include -f-DCONFIG_ARCH_AT91SAM9260 "
        mktypes="godefs -gsyscall -carm-gcc"
-       mkerrors="./mkerrors.sh"
+       mkerrors='GORUN="qemu-arm -cpu cortex-a8" ./mkerrors.sh'
        ;;
 windows_386)
        mksyscall="./mksyscall_windows.sh -l32"
index 467ebe38cb5eacb8804c718916a9bb86f48a40d3..3e55ea7702271358a2c6f5054d11c514d9e99e64 100755 (executable)
@@ -86,6 +86,7 @@ done
        awk '
                $1 != "#define" || $2 ~ /\(/ {next}
                
+               $2 ~ /^E([ABCD]X|[BIS]P|[SD]I|S|FL)$/ {next}  # 386 registers
                $2 ~ /^(SIGEV_|SIGSTKSZ|SIGRT(MIN|MAX))/ {next}
 
                $2 ~ /^E[A-Z0-9_]+$/ ||
@@ -95,7 +96,7 @@ done
                $2 == "NAME_MAX" ||
                $2 ~ /^(O|F|FD|NAME|S|PTRACE)_/ ||
                $2 ~ /^W[A-Z0-9]+$/ {printf("\t$%s = %s,\n", $2, $2)}
-               
+               $2 ~ /^__WCOREFLAG$/ {next}
                $2 ~ /^__W[A-Z0-9]+$/ {printf("\t$%s = %s,\n", substr($2,3), $2)}
                
                {next}
@@ -114,7 +115,7 @@ errors=$(
 echo '// mkerrors.sh' "$@"
 echo '// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT'
 echo
-godefs "$@" -gsyscall "$@" _const.c
+godefs -c $GCC "$@" -gsyscall "$@" _const.c
 
 # Run C program to print error strings.
 (
@@ -167,4 +168,4 @@ main(void)
 '
 ) >_errors.c
 
-gcc $ccflags -o _errors _errors.c && ./_errors && rm -f _errors.c _errors _const.c
+$GCC $ccflags -static -o _errors _errors.c && $GORUN ./_errors && rm -f _errors.c _errors _const.c
index 8ea1aa59d2cbfca8cd7342bec2e849947d0bf87a..f98b4cb7a8f08e394fd384ad0651fe38ea28349a 100644 (file)
@@ -24,6 +24,11 @@ func Open(path string, mode int, perm int) (fd int, errno int) {
        return open(path, mode|O_LARGEFILE, perm)
 }
 
+//sys  openat(dirfd int, path string, flags int, mode int) (fd int, errno int)
+func Openat(dirfd int, path string, flags int, mode int) (fd int, errno int) {
+       return openat(dirfd, path, flags|O_LARGEFILE, mode)
+}
+
 //sys  pipe(p *[2]_C_int) (errno int)
 func Pipe(p []int) (errno int) {
        if len(p) != 2 {
@@ -581,7 +586,6 @@ func PtraceDetach(pid int) (errno int) { return ptrace(PTRACE_DETACH, pid, 0, 0)
 //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  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
 //sys  Pread(fd int, p []byte, offset int64) (n int, errno int) = SYS_PREAD64
index 390f8a853311c6387b9a413ad604af3f3138b633..06052f4093bbf85c1268c14238dffaeda532a1b1 100644 (file)
@@ -4,6 +4,15 @@
 
 package syscall
 
+// These seem not to be defined in our gcc's ARM headers
+// and are thus missing from zerrors_linux_arm.go.
+const (
+       WSTOPPED     = 0x7f
+       O_CLOEXEC    = 0
+       EPOLLRDHUP   = EPOLLHUP
+       EPOLLONESHOT = 0x40000000
+)
+
 func Getpagesize() int { return 4096 }
 
 func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
index d7cb66cb2a69507d4382c9b5ed6c79106b642c29..ae3e7597389e3a818b0fdfa30ed53bd1d910d2e9 100644 (file)
@@ -1,7 +1,7 @@
 // mkerrors.sh -f -m32
 // MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
 
-// godefs -f -m32 -gsyscall -f -m32 _const.c
+// godefs -c gcc -f -m32 -gsyscall -f -m32 _const.c
 
 // MACHINE GENERATED - DO NOT EDIT.
 
@@ -49,7 +49,6 @@ const (
        EAFNOSUPPORT                     = 0x61
        EAGAIN                           = 0xb
        EALREADY                         = 0x72
-       EAX                              = 0x6
        EBADE                            = 0x34
        EBADF                            = 0x9
        EBADFD                           = 0x4d
@@ -58,9 +57,7 @@ const (
        EBADRQC                          = 0x38
        EBADSLT                          = 0x39
        EBFONT                           = 0x3b
-       EBP                              = 0x5
        EBUSY                            = 0x10
-       EBX                              = 0
        ECANCELED                        = 0x7d
        ECHILD                           = 0xa
        ECHRNG                           = 0x2c
@@ -68,19 +65,15 @@ const (
        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
@@ -89,7 +82,6 @@ const (
        EINTR                            = 0x4
        EINVAL                           = 0x16
        EIO                              = 0x5
-       EIP                              = 0xc
        EISCONN                          = 0x6a
        EISDIR                           = 0x15
        EISNAM                           = 0x78
@@ -180,9 +172,7 @@ const (
        EREMOTEIO                        = 0x79
        ERESTART                         = 0x55
        EROFS                            = 0x1e
-       ES                               = 0x8
        ESHUTDOWN                        = 0x6c
-       ESI                              = 0x3
        ESOCKTNOSUPPORT                  = 0x5e
        ESPIPE                           = 0x1d
        ESRCH                            = 0x3
index b768daa098dd7874a1413561a1376444770aa1c3..c706eed3508c0199d2b6e732c38e5b3b6a08dac6 100644 (file)
@@ -1,7 +1,7 @@
 // mkerrors.sh
 // MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
 
-// godefs -gsyscall _errors.c
+// godefs -c arm-gcc -gsyscall _const.c
 
 // MACHINE GENERATED - DO NOT EDIT.
 
@@ -9,177 +9,498 @@ package syscall
 
 // Constants
 const (
-       EMULTIHOP       = 0x48
-       EUNATCH         = 0x31
-       EAFNOSUPPORT    = 0x61
-       EREMCHG         = 0x4e
-       EACCES          = 0xd
-       EL3RST          = 0x2f
-       EDESTADDRREQ    = 0x59
-       EILSEQ          = 0x54
-       ESPIPE          = 0x1d
-       EMLINK          = 0x1f
-       EOWNERDEAD      = 0x82
-       ENOTTY          = 0x19
-       EBADE           = 0x34
-       EBADF           = 0x9
-       EBADR           = 0x35
-       EADV            = 0x44
-       ERANGE          = 0x22
-       ECANCELED       = 0x7d
-       ETXTBSY         = 0x1a
-       ENOMEM          = 0xc
-       EINPROGRESS     = 0x73
-       ENOTEMPTY       = 0x27
-       ENOTBLK         = 0xf
-       EPROTOTYPE      = 0x5b
-       ERESTART        = 0x55
-       EISNAM          = 0x78
-       ENOMSG          = 0x2a
-       EALREADY        = 0x72
-       ETIMEDOUT       = 0x6e
-       ENODATA         = 0x3d
-       EINTR           = 0x4
-       ENOLINK         = 0x43
-       EPERM           = 0x1
-       ELOOP           = 0x28
-       ENETDOWN        = 0x64
-       ESTALE          = 0x74
-       ENOTSOCK        = 0x58
-       ENOSR           = 0x3f
-       ECHILD          = 0xa
-       ELNRNG          = 0x30
-       EPIPE           = 0x20
-       EBADMSG         = 0x4a
-       EBFONT          = 0x3b
-       EREMOTE         = 0x42
-       ETOOMANYREFS    = 0x6d
-       EPFNOSUPPORT    = 0x60
-       ENONET          = 0x40
-       EXFULL          = 0x36
-       EBADSLT         = 0x39
-       ENOTNAM         = 0x76
-       ENOCSI          = 0x32
-       EADDRINUSE      = 0x62
-       ENETRESET       = 0x66
-       EISDIR          = 0x15
-       EIDRM           = 0x2b
-       ECOMM           = 0x46
-       EBADFD          = 0x4d
-       EL2HLT          = 0x33
-       ENOKEY          = 0x7e
-       EINVAL          = 0x16
-       ESHUTDOWN       = 0x6c
-       EKEYREJECTED    = 0x81
-       ELIBSCN         = 0x51
-       ENAVAIL         = 0x77
-       EOVERFLOW       = 0x4b
-       EUCLEAN         = 0x75
-       ENOMEDIUM       = 0x7b
-       EBUSY           = 0x10
-       EPROTO          = 0x47
-       ENODEV          = 0x13
-       EKEYEXPIRED     = 0x7f
-       EROFS           = 0x1e
-       ELIBACC         = 0x4f
-       E2BIG           = 0x7
-       EDEADLK         = 0x23
-       ENOTDIR         = 0x14
-       ECONNRESET      = 0x68
-       ENXIO           = 0x6
-       EBADRQC         = 0x38
-       ENAMETOOLONG    = 0x24
-       ESOCKTNOSUPPORT = 0x5e
-       ELIBEXEC        = 0x53
-       EDOTDOT         = 0x49
-       EADDRNOTAVAIL   = 0x63
-       ETIME           = 0x3e
-       EPROTONOSUPPORT = 0x5d
-       ENOTRECOVERABLE = 0x83
-       EIO             = 0x5
-       ENETUNREACH     = 0x65
-       EXDEV           = 0x12
-       EDQUOT          = 0x7a
-       EREMOTEIO       = 0x79
-       ENOSPC          = 0x1c
-       ENOEXEC         = 0x8
-       EMSGSIZE        = 0x5a
-       EDOM            = 0x21
-       ENOSTR          = 0x3c
-       EFBIG           = 0x1b
-       ESRCH           = 0x3
-       ECHRNG          = 0x2c
-       EHOSTDOWN       = 0x70
-       ENOLCK          = 0x25
-       ENFILE          = 0x17
-       ENOSYS          = 0x26
-       ENOTCONN        = 0x6b
-       ENOTSUP         = 0x5f
-       ESRMNT          = 0x45
-       EDEADLOCK       = 0x23
-       ECONNABORTED    = 0x67
-       ENOANO          = 0x37
-       EISCONN         = 0x6a
-       EUSERS          = 0x57
-       ENOPROTOOPT     = 0x5c
-       EMFILE          = 0x18
-       ENOBUFS         = 0x69
-       EL3HLT          = 0x2e
-       EFAULT          = 0xe
-       EWOULDBLOCK     = 0xb
-       ELIBBAD         = 0x50
-       ESTRPIPE        = 0x56
-       ECONNREFUSED    = 0x6f
-       EAGAIN          = 0xb
-       ELIBMAX         = 0x52
-       EEXIST          = 0x11
-       EL2NSYNC        = 0x2d
-       ENOENT          = 0x2
-       ENOPKG          = 0x41
-       EKEYREVOKED     = 0x80
-       EHOSTUNREACH    = 0x71
-       ENOTUNIQ        = 0x4c
-       EOPNOTSUPP      = 0x5f
-       EMEDIUMTYPE     = 0x7c
-       SIGBUS          = 0x7
-       SIGTTIN         = 0x15
-       SIGPROF         = 0x1b
-       SIGFPE          = 0x8
-       SIGHUP          = 0x1
-       SIGTTOU         = 0x16
-       SIGSTKFLT       = 0x10
-       SIGUSR1         = 0xa
-       SIGURG          = 0x17
-       SIGIO           = 0x1d
-       SIGQUIT         = 0x3
-       SIGCLD          = 0x11
-       SHUT_RD         = 0
-       SHUT_RDWR       = 0x2
-       SHUT_WR         = 0x1
-       SIGABRT         = 0x6
-       SIGTRAP         = 0x5
-       SIGVTALRM       = 0x1a
-       SIGPOLL         = 0x1d
-       SIGSEGV         = 0xb
-       SIGCONT         = 0x12
-       SIGPIPE         = 0xd
-       SIGWINCH        = 0x1c
-       SIGXFSZ         = 0x19
-       SIGCHLD         = 0x11
-       SIGSYS          = 0x1f
-       SIGSTOP         = 0x13
-       SIGALRM         = 0xe
-       SIGUSR2         = 0xc
-       SIGTSTP         = 0x14
-       SIGKILL         = 0x9
-       SIGXCPU         = 0x18
-       SIGUNUSED       = 0x1f
-       SIGPWR          = 0x1e
-       SIGILL          = 0x4
-       SIGINT          = 0x2
-       SIGIOT          = 0x6
-       SIGTERM         = 0xf
-       O_EXCL          = 0x80
+       AF_APPLETALK                     = 0x5
+       AF_ASH                           = 0x12
+       AF_ATMPVC                        = 0x8
+       AF_ATMSVC                        = 0x14
+       AF_AX25                          = 0x3
+       AF_BLUETOOTH                     = 0x1f
+       AF_BRIDGE                        = 0x7
+       AF_DECnet                        = 0xc
+       AF_ECONET                        = 0x13
+       AF_FILE                          = 0x1
+       AF_INET                          = 0x2
+       AF_INET6                         = 0xa
+       AF_IPX                           = 0x4
+       AF_IRDA                          = 0x17
+       AF_KEY                           = 0xf
+       AF_LOCAL                         = 0x1
+       AF_MAX                           = 0x20
+       AF_NETBEUI                       = 0xd
+       AF_NETLINK                       = 0x10
+       AF_NETROM                        = 0x6
+       AF_PACKET                        = 0x11
+       AF_PPPOX                         = 0x18
+       AF_ROSE                          = 0xb
+       AF_ROUTE                         = 0x10
+       AF_SECURITY                      = 0xe
+       AF_SNA                           = 0x16
+       AF_UNIX                          = 0x1
+       AF_UNSPEC                        = 0
+       AF_WANPIPE                       = 0x19
+       AF_X25                           = 0x9
+       E2BIG                            = 0x7
+       EACCES                           = 0xd
+       EADDRINUSE                       = 0x62
+       EADDRNOTAVAIL                    = 0x63
+       EADV                             = 0x44
+       EAFNOSUPPORT                     = 0x61
+       EAGAIN                           = 0xb
+       EALREADY                         = 0x72
+       EBADE                            = 0x34
+       EBADF                            = 0x9
+       EBADFD                           = 0x4d
+       EBADMSG                          = 0x4a
+       EBADR                            = 0x35
+       EBADRQC                          = 0x38
+       EBADSLT                          = 0x39
+       EBFONT                           = 0x3b
+       EBUSY                            = 0x10
+       ECANCELED                        = 0x7d
+       ECHILD                           = 0xa
+       ECHRNG                           = 0x2c
+       ECOMM                            = 0x46
+       ECONNABORTED                     = 0x67
+       ECONNREFUSED                     = 0x6f
+       ECONNRESET                       = 0x68
+       EDEADLK                          = 0x23
+       EDEADLOCK                        = 0x23
+       EDESTADDRREQ                     = 0x59
+       EDOM                             = 0x21
+       EDOTDOT                          = 0x49
+       EDQUOT                           = 0x7a
+       EEXIST                           = 0x11
+       EFAULT                           = 0xe
+       EFBIG                            = 0x1b
+       EHOSTDOWN                        = 0x70
+       EHOSTUNREACH                     = 0x71
+       EIDRM                            = 0x2b
+       EILSEQ                           = 0x54
+       EINPROGRESS                      = 0x73
+       EINTR                            = 0x4
+       EINVAL                           = 0x16
+       EIO                              = 0x5
+       EISCONN                          = 0x6a
+       EISDIR                           = 0x15
+       EISNAM                           = 0x78
+       EKEYEXPIRED                      = 0x7f
+       EKEYREJECTED                     = 0x81
+       EKEYREVOKED                      = 0x80
+       EL2HLT                           = 0x33
+       EL2NSYNC                         = 0x2d
+       EL3HLT                           = 0x2e
+       EL3RST                           = 0x2f
+       ELF_NGREG                        = 0x12
+       ELF_PRARGSZ                      = 0x50
+       ELIBACC                          = 0x4f
+       ELIBBAD                          = 0x50
+       ELIBEXEC                         = 0x53
+       ELIBMAX                          = 0x52
+       ELIBSCN                          = 0x51
+       ELNRNG                           = 0x30
+       ELOOP                            = 0x28
+       EMEDIUMTYPE                      = 0x7c
+       EMFILE                           = 0x18
+       EMLINK                           = 0x1f
+       EMSGSIZE                         = 0x5a
+       EMULTIHOP                        = 0x48
+       ENAMETOOLONG                     = 0x24
+       ENAVAIL                          = 0x77
+       ENETDOWN                         = 0x64
+       ENETRESET                        = 0x66
+       ENETUNREACH                      = 0x65
+       ENFILE                           = 0x17
+       ENOANO                           = 0x37
+       ENOBUFS                          = 0x69
+       ENOCSI                           = 0x32
+       ENODATA                          = 0x3d
+       ENODEV                           = 0x13
+       ENOENT                           = 0x2
+       ENOEXEC                          = 0x8
+       ENOKEY                           = 0x7e
+       ENOLCK                           = 0x25
+       ENOLINK                          = 0x43
+       ENOMEDIUM                        = 0x7b
+       ENOMEM                           = 0xc
+       ENOMSG                           = 0x2a
+       ENONET                           = 0x40
+       ENOPKG                           = 0x41
+       ENOPROTOOPT                      = 0x5c
+       ENOSPC                           = 0x1c
+       ENOSR                            = 0x3f
+       ENOSTR                           = 0x3c
+       ENOSYS                           = 0x26
+       ENOTBLK                          = 0xf
+       ENOTCONN                         = 0x6b
+       ENOTDIR                          = 0x14
+       ENOTEMPTY                        = 0x27
+       ENOTNAM                          = 0x76
+       ENOTRECOVERABLE                  = 0x83
+       ENOTSOCK                         = 0x58
+       ENOTSUP                          = 0x5f
+       ENOTTY                           = 0x19
+       ENOTUNIQ                         = 0x4c
+       ENXIO                            = 0x6
+       EOPNOTSUPP                       = 0x5f
+       EOVERFLOW                        = 0x4b
+       EOWNERDEAD                       = 0x82
+       EPERM                            = 0x1
+       EPFNOSUPPORT                     = 0x60
+       EPIPE                            = 0x20
+       EPOLLERR                         = 0x8
+       EPOLLET                          = -0x80000000
+       EPOLLHUP                         = 0x10
+       EPOLLIN                          = 0x1
+       EPOLLMSG                         = 0x400
+       EPOLLOUT                         = 0x4
+       EPOLLPRI                         = 0x2
+       EPOLLRDBAND                      = 0x80
+       EPOLLRDNORM                      = 0x40
+       EPOLLWRBAND                      = 0x200
+       EPOLLWRNORM                      = 0x100
+       EPOLL_CTL_ADD                    = 0x1
+       EPOLL_CTL_DEL                    = 0x2
+       EPOLL_CTL_MOD                    = 0x3
+       EPROTO                           = 0x47
+       EPROTONOSUPPORT                  = 0x5d
+       EPROTOTYPE                       = 0x5b
+       ERANGE                           = 0x22
+       EREMCHG                          = 0x4e
+       EREMOTE                          = 0x42
+       EREMOTEIO                        = 0x79
+       ERESTART                         = 0x55
+       EROFS                            = 0x1e
+       ESHUTDOWN                        = 0x6c
+       ESOCKTNOSUPPORT                  = 0x5e
+       ESPIPE                           = 0x1d
+       ESRCH                            = 0x3
+       ESRMNT                           = 0x45
+       ESTALE                           = 0x74
+       ESTRPIPE                         = 0x56
+       ETIME                            = 0x3e
+       ETIMEDOUT                        = 0x6e
+       ETOOMANYREFS                     = 0x6d
+       ETXTBSY                          = 0x1a
+       EUCLEAN                          = 0x75
+       EUNATCH                          = 0x31
+       EUSERS                           = 0x57
+       EWOULDBLOCK                      = 0xb
+       EXDEV                            = 0x12
+       EXFULL                           = 0x36
+       EXPR_NEST_MAX                    = 0x20
+       FD_CLOEXEC                       = 0x1
+       FD_SETSIZE                       = 0x400
+       F_DUPFD                          = 0
+       F_EXLCK                          = 0x4
+       F_GETFD                          = 0x1
+       F_GETFL                          = 0x3
+       F_GETLEASE                       = 0x401
+       F_GETLK                          = 0xc
+       F_GETLK64                        = 0xc
+       F_GETOWN                         = 0x9
+       F_GETSIG                         = 0xb
+       F_LOCK                           = 0x1
+       F_NOTIFY                         = 0x402
+       F_OK                             = 0
+       F_RDLCK                          = 0
+       F_SETFD                          = 0x2
+       F_SETFL                          = 0x4
+       F_SETLEASE                       = 0x400
+       F_SETLK                          = 0xd
+       F_SETLK64                        = 0xd
+       F_SETLKW                         = 0xe
+       F_SETLKW64                       = 0xe
+       F_SETOWN                         = 0x8
+       F_SETSIG                         = 0xa
+       F_SHLCK                          = 0x8
+       F_TEST                           = 0x3
+       F_TLOCK                          = 0x2
+       F_ULOCK                          = 0
+       F_UNLCK                          = 0x2
+       F_WRLCK                          = 0x1
+       IPPROTO_AH                       = 0x33
+       IPPROTO_COMP                     = 0x6c
+       IPPROTO_DSTOPTS                  = 0x3c
+       IPPROTO_EGP                      = 0x8
+       IPPROTO_ENCAP                    = 0x62
+       IPPROTO_ESP                      = 0x32
+       IPPROTO_FRAGMENT                 = 0x2c
+       IPPROTO_GRE                      = 0x2f
+       IPPROTO_HOPOPTS                  = 0
+       IPPROTO_ICMP                     = 0x1
+       IPPROTO_ICMPV6                   = 0x3a
+       IPPROTO_IDP                      = 0x16
+       IPPROTO_IGMP                     = 0x2
+       IPPROTO_IP                       = 0
+       IPPROTO_IPIP                     = 0x4
+       IPPROTO_IPV6                     = 0x29
+       IPPROTO_MTP                      = 0x5c
+       IPPROTO_NONE                     = 0x3b
+       IPPROTO_PIM                      = 0x67
+       IPPROTO_PUP                      = 0xc
+       IPPROTO_RAW                      = 0xff
+       IPPROTO_ROUTING                  = 0x2b
+       IPPROTO_RSVP                     = 0x2e
+       IPPROTO_TCP                      = 0x6
+       IPPROTO_TP                       = 0x1d
+       IPPROTO_UDP                      = 0x11
+       IPV6_ADDRFORM                    = 0x1
+       IPV6_ADD_MEMBERSHIP              = 0x14
+       IPV6_AUTHHDR                     = 0xa
+       IPV6_CHECKSUM                    = 0x7
+       IPV6_DROP_MEMBERSHIP             = 0x15
+       IPV6_DSTOPTS                     = 0x4
+       IPV6_HOPLIMIT                    = 0x8
+       IPV6_HOPOPTS                     = 0x3
+       IPV6_JOIN_GROUP                  = 0x14
+       IPV6_LEAVE_GROUP                 = 0x15
+       IPV6_MTU                         = 0x18
+       IPV6_MTU_DISCOVER                = 0x17
+       IPV6_MULTICAST_HOPS              = 0x12
+       IPV6_MULTICAST_IF                = 0x11
+       IPV6_MULTICAST_LOOP              = 0x13
+       IPV6_NEXTHOP                     = 0x9
+       IPV6_PKTINFO                     = 0x2
+       IPV6_PKTOPTIONS                  = 0x6
+       IPV6_PMTUDISC_DO                 = 0x2
+       IPV6_PMTUDISC_DONT               = 0
+       IPV6_PMTUDISC_WANT               = 0x1
+       IPV6_RECVERR                     = 0x19
+       IPV6_ROUTER_ALERT                = 0x16
+       IPV6_RTHDR                       = 0x5
+       IPV6_RTHDR_LOOSE                 = 0
+       IPV6_RTHDR_STRICT                = 0x1
+       IPV6_RTHDR_TYPE_0                = 0
+       IPV6_RXDSTOPTS                   = 0x4
+       IPV6_RXHOPOPTS                   = 0x3
+       IPV6_UNICAST_HOPS                = 0x10
+       IP_ADD_MEMBERSHIP                = 0x23
+       IP_DEFAULT_MULTICAST_LOOP        = 0x1
+       IP_DEFAULT_MULTICAST_TTL         = 0x1
+       IP_DF                            = 0x4000
+       IP_DROP_MEMBERSHIP               = 0x24
+       IP_HDRINCL                       = 0x3
+       IP_MAXPACKET                     = 0xffff
+       IP_MAX_MEMBERSHIPS               = 0x14
+       IP_MF                            = 0x2000
+       IP_MSS                           = 0x240
+       IP_MTU_DISCOVER                  = 0xa
+       IP_MULTICAST_IF                  = 0x20
+       IP_MULTICAST_LOOP                = 0x22
+       IP_MULTICAST_TTL                 = 0x21
+       IP_OFFMASK                       = 0x1fff
+       IP_OPTIONS                       = 0x4
+       IP_PKTINFO                       = 0x8
+       IP_PKTOPTIONS                    = 0x9
+       IP_PMTUDISC                      = 0xa
+       IP_PMTUDISC_DO                   = 0x2
+       IP_PMTUDISC_DONT                 = 0
+       IP_PMTUDISC_WANT                 = 0x1
+       IP_RECVERR                       = 0xb
+       IP_RECVOPTS                      = 0x6
+       IP_RECVRETOPTS                   = 0x7
+       IP_RECVTOS                       = 0xd
+       IP_RECVTTL                       = 0xc
+       IP_RETOPTS                       = 0x7
+       IP_RF                            = 0x8000
+       IP_ROUTER_ALERT                  = 0x5
+       IP_TOS                           = 0x1
+       IP_TTL                           = 0x2
+       NAME_MAX                         = 0xff
+       O_ACCMODE                        = 0x3
+       O_APPEND                         = 0x400
+       O_ASYNC                          = 0x2000
+       O_CREAT                          = 0x40
+       O_DIRECT                         = 0x10000
+       O_DIRECTORY                      = 0x4000
+       O_DSYNC                          = 0x1000
+       O_EXCL                           = 0x80
+       O_FSYNC                          = 0x1000
+       O_LARGEFILE                      = 0x20000
+       O_NDELAY                         = 0x800
+       O_NOCTTY                         = 0x100
+       O_NOFOLLOW                       = 0x8000
+       O_NONBLOCK                       = 0x800
+       O_RDONLY                         = 0
+       O_RDWR                           = 0x2
+       O_RSYNC                          = 0x1000
+       O_SYNC                           = 0x1000
+       O_TRUNC                          = 0x200
+       O_WRONLY                         = 0x1
+       PTRACE_ATTACH                    = 0x10
+       PTRACE_CONT                      = 0x7
+       PTRACE_DETACH                    = 0x11
+       PTRACE_EVENT_CLONE               = 0x3
+       PTRACE_EVENT_EXEC                = 0x4
+       PTRACE_EVENT_EXIT                = 0x6
+       PTRACE_EVENT_FORK                = 0x1
+       PTRACE_EVENT_VFORK               = 0x2
+       PTRACE_EVENT_VFORK_DONE          = 0x5
+       PTRACE_GETEVENTMSG               = 0x4201
+       PTRACE_GETFPREGS                 = 0xe
+       PTRACE_GETREGS                   = 0xc
+       PTRACE_GETSIGINFO                = 0x4202
+       PTRACE_GETWMMXREGS               = 0x12
+       PTRACE_GET_THREAD_AREA           = 0x16
+       PTRACE_KILL                      = 0x8
+       PTRACE_OLDSETOPTIONS             = 0x15
+       PTRACE_O_MASK                    = 0x7f
+       PTRACE_O_TRACECLONE              = 0x8
+       PTRACE_O_TRACEEXEC               = 0x10
+       PTRACE_O_TRACEEXIT               = 0x40
+       PTRACE_O_TRACEFORK               = 0x2
+       PTRACE_O_TRACESYSGOOD            = 0x1
+       PTRACE_O_TRACEVFORK              = 0x4
+       PTRACE_O_TRACEVFORKDONE          = 0x20
+       PTRACE_PEEKDATA                  = 0x2
+       PTRACE_PEEKTEXT                  = 0x1
+       PTRACE_PEEKUSR                   = 0x3
+       PTRACE_POKEDATA                  = 0x5
+       PTRACE_POKETEXT                  = 0x4
+       PTRACE_POKEUSR                   = 0x6
+       PTRACE_SETFPREGS                 = 0xf
+       PTRACE_SETOPTIONS                = 0x4200
+       PTRACE_SETREGS                   = 0xd
+       PTRACE_SETSIGINFO                = 0x4203
+       PTRACE_SETWMMXREGS               = 0x13
+       PTRACE_SINGLESTEP                = 0x9
+       PTRACE_SYSCALL                   = 0x18
+       PTRACE_TRACEME                   = 0
+       SHUT_RD                          = 0
+       SHUT_RDWR                        = 0x2
+       SHUT_WR                          = 0x1
+       SIGABRT                          = 0x6
+       SIGALRM                          = 0xe
+       SIGBUS                           = 0x7
+       SIGCHLD                          = 0x11
+       SIGCLD                           = 0x11
+       SIGCONT                          = 0x12
+       SIGFPE                           = 0x8
+       SIGHUP                           = 0x1
+       SIGILL                           = 0x4
+       SIGINT                           = 0x2
+       SIGIO                            = 0x1d
+       SIGIOT                           = 0x6
+       SIGKILL                          = 0x9
+       SIGPIPE                          = 0xd
+       SIGPOLL                          = 0x1d
+       SIGPROF                          = 0x1b
+       SIGPWR                           = 0x1e
+       SIGQUIT                          = 0x3
+       SIGSEGV                          = 0xb
+       SIGSTKFLT                        = 0x10
+       SIGSTOP                          = 0x13
+       SIGSYS                           = 0x1f
+       SIGTERM                          = 0xf
+       SIGTRAP                          = 0x5
+       SIGTSTP                          = 0x14
+       SIGTTIN                          = 0x15
+       SIGTTOU                          = 0x16
+       SIGUNUSED                        = 0x1f
+       SIGURG                           = 0x17
+       SIGUSR1                          = 0xa
+       SIGUSR2                          = 0xc
+       SIGVTALRM                        = 0x1a
+       SIGWINCH                         = 0x1c
+       SIGXCPU                          = 0x18
+       SIGXFSZ                          = 0x19
+       SOCK_DGRAM                       = 0x2
+       SOCK_PACKET                      = 0xa
+       SOCK_RAW                         = 0x3
+       SOCK_RDM                         = 0x4
+       SOCK_SEQPACKET                   = 0x5
+       SOCK_STREAM                      = 0x1
+       SOL_AAL                          = 0x109
+       SOL_ATM                          = 0x108
+       SOL_DECNET                       = 0x105
+       SOL_ICMPV6                       = 0x3a
+       SOL_IP                           = 0
+       SOL_IPV6                         = 0x29
+       SOL_IRDA                         = 0x10a
+       SOL_PACKET                       = 0x107
+       SOL_RAW                          = 0xff
+       SOL_SOCKET                       = 0x1
+       SOL_TCP                          = 0x6
+       SOL_X25                          = 0x106
+       SOMAXCONN                        = 0x80
+       SO_ACCEPTCONN                    = 0x1e
+       SO_ATTACH_FILTER                 = 0x1a
+       SO_BINDTODEVICE                  = 0x19
+       SO_BROADCAST                     = 0x6
+       SO_BSDCOMPAT                     = 0xe
+       SO_DEBUG                         = 0x1
+       SO_DETACH_FILTER                 = 0x1b
+       SO_DONTROUTE                     = 0x5
+       SO_ERROR                         = 0x4
+       SO_KEEPALIVE                     = 0x9
+       SO_LINGER                        = 0xd
+       SO_NO_CHECK                      = 0xb
+       SO_OOBINLINE                     = 0xa
+       SO_PASSCRED                      = 0x10
+       SO_PEERCRED                      = 0x11
+       SO_PEERNAME                      = 0x1c
+       SO_PEERSEC                       = 0x1f
+       SO_PRIORITY                      = 0xc
+       SO_RCVBUF                        = 0x8
+       SO_RCVLOWAT                      = 0x12
+       SO_RCVTIMEO                      = 0x14
+       SO_REUSEADDR                     = 0x2
+       SO_SECURITY_AUTHENTICATION       = 0x16
+       SO_SECURITY_ENCRYPTION_NETWORK   = 0x18
+       SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
+       SO_SNDBUF                        = 0x7
+       SO_SNDLOWAT                      = 0x13
+       SO_SNDTIMEO                      = 0x15
+       SO_TIMESTAMP                     = 0x1d
+       SO_TYPE                          = 0x3
+       S_BLKSIZE                        = 0x200
+       S_IEXEC                          = 0x40
+       S_IFBLK                          = 0x6000
+       S_IFCHR                          = 0x2000
+       S_IFDIR                          = 0x4000
+       S_IFIFO                          = 0x1000
+       S_IFLNK                          = 0xa000
+       S_IFMT                           = 0xf000
+       S_IFREG                          = 0x8000
+       S_IFSOCK                         = 0xc000
+       S_IREAD                          = 0x100
+       S_IRGRP                          = 0x20
+       S_IROTH                          = 0x4
+       S_IRUSR                          = 0x100
+       S_IRWXG                          = 0x38
+       S_IRWXO                          = 0x7
+       S_IRWXU                          = 0x1c0
+       S_ISGID                          = 0x400
+       S_ISUID                          = 0x800
+       S_ISVTX                          = 0x200
+       S_IWGRP                          = 0x10
+       S_IWOTH                          = 0x2
+       S_IWRITE                         = 0x80
+       S_IWUSR                          = 0x80
+       S_IXGRP                          = 0x8
+       S_IXOTH                          = 0x1
+       S_IXUSR                          = 0x40
+       TCP_CORK                         = 0x3
+       TCP_DEFER_ACCEPT                 = 0x9
+       TCP_INFO                         = 0xb
+       TCP_KEEPCNT                      = 0x6
+       TCP_KEEPIDLE                     = 0x4
+       TCP_KEEPINTVL                    = 0x5
+       TCP_LINGER2                      = 0x8
+       TCP_MAXSEG                       = 0x2
+       TCP_MAXWIN                       = 0xffff
+       TCP_MAX_WINSHIFT                 = 0xe
+       TCP_MSS                          = 0x200
+       TCP_NODELAY                      = 0x1
+       TCP_QUICKACK                     = 0xc
+       TCP_SYNCNT                       = 0x7
+       TCP_WINDOW_CLAMP                 = 0xa
+       WALL                             = 0x40000000
+       WCLONE                           = 0x80000000
+       WCOREFLAG                        = 0x80
+       WNOHANG                          = 0x1
+       WORDSIZE                         = 0x20
+       WUNTRACED                        = 0x2
 )
 
 // Types
@@ -187,133 +508,133 @@ const (
 
 // Error table
 var errors = [...]string{
-       72:  "multihop attempted",
-       49:  "protocol driver not attached",
-       97:  "address family not supported by protocol",
-       78:  "remote address changed",
+       7:   "argument list too long",
        13:  "permission denied",
-       47:  "level 3 reset",
-       89:  "destination address required",
-       84:  "invalid or incomplete multibyte or wide character",
-       29:  "illegal seek",
-       31:  "too many links",
-       130: "owner died",
-       25:  "inappropriate ioctl for device",
+       98:  "address already in use",
+       99:  "cannot assign requested address",
+       68:  "advertise error",
+       97:  "address family not supported by protocol",
+       11:  "resource temporarily unavailable",
+       114: "operation already in progress",
        52:  "invalid exchange",
        9:   "bad file descriptor",
+       77:  "file descriptor in bad state",
+       74:  "bad message",
        53:  "invalid request descriptor",
-       68:  "advertise error",
-       34:  "numerical result out of range",
+       56:  "invalid request code",
+       57:  "invalid slot",
+       59:  "bad font file format",
+       16:  "device or resource busy",
        125: "operation canceled",
-       26:  "text file busy",
-       12:  "cannot allocate memory",
-       115: "operation now in progress",
-       39:  "directory not empty",
-       15:  "block device required",
-       91:  "protocol wrong type for socket",
-       85:  "interrupted system call should be restarted",
-       120: "is a named type file",
-       42:  "no message of desired type",
-       114: "operation already in progress",
-       110: "connection timed out",
-       61:  "no data available",
-       4:   "interrupted system call",
-       67:  "link has been severed",
-       1:   "operation not permitted",
-       40:  "too many levels of symbolic links",
-       100: "network is down",
-       116: "stale NFS file handle",
-       88:  "socket operation on non-socket",
-       63:  "out of streams resources",
        10:  "no child processes",
-       48:  "link number out of range",
-       32:  "broken pipe",
-       74:  "bad message",
-       59:  "bad font file format",
-       66:  "object is remote",
-       109: "too many references: cannot splice",
-       96:  "protocol family not supported",
-       64:  "machine is not on the network",
-       54:  "exchange full",
-       57:  "invalid slot",
-       118: "not a XENIX named type file",
-       50:  "no CSI structure available",
-       98:  "address already in use",
-       102: "network dropped connection on reset",
-       21:  "is a directory",
-       43:  "identifier removed",
+       44:  "channel number out of range",
        70:  "communication error on send",
-       77:  "file descriptor in bad state",
-       51:  "level 2 halted",
-       126: "required key not available",
-       22:  "invalid argument",
-       108: "cannot send after transport endpoint shutdown",
-       129: "key was rejected by service",
-       81:  ".lib section in a.out corrupted",
-       119: "no XENIX semaphores available",
-       75:  "value too large for defined data type",
-       117: "structure needs cleaning",
-       123: "no medium found",
-       16:  "device or resource busy",
-       71:  "protocol error",
-       19:  "no such device",
-       127: "key has expired",
-       30:  "read-only file system",
-       79:  "can not access a needed shared library",
-       7:   "argument list too long",
-       35:  "resource deadlock avoided",
-       20:  "not a directory",
+       103: "software caused connection abort",
+       111: "connection refused",
        104: "connection reset by peer",
-       6:   "no such device or address",
-       56:  "invalid request code",
-       36:  "file name too long",
-       94:  "socket type not supported",
-       83:  "cannot exec a shared library directly",
+       35:  "resource deadlock avoided",
+       89:  "destination address required",
+       33:  "numerical argument out of domain",
        73:  "RFS specific error",
-       99:  "cannot assign requested address",
-       62:  "timer expired",
-       93:  "protocol not supported",
-       131: "state not recoverable",
-       5:   "input/output error",
-       101: "network is unreachable",
-       18:  "invalid cross-device link",
        122: "disk quota exceeded",
-       121: "remote I/O error",
-       28:  "no space left on device",
-       8:   "exec format error",
-       90:  "message too long",
-       33:  "numerical argument out of domain",
-       60:  "device not a stream",
+       17:  "file exists",
+       14:  "bad address",
        27:  "file too large",
-       3:   "no such process",
-       44:  "channel number out of range",
        112: "host is down",
-       37:  "no locks available",
-       23:  "too many open files in system",
-       38:  "function not implemented",
-       107: "transport endpoint is not connected",
-       95:  "operation not supported",
-       69:  "srmount error",
-       103: "software caused connection abort",
-       55:  "no anode",
+       113: "no route to host",
+       43:  "identifier removed",
+       84:  "invalid or incomplete multibyte or wide character",
+       115: "operation now in progress",
+       4:   "interrupted system call",
+       22:  "invalid argument",
+       5:   "input/output error",
        106: "transport endpoint is already connected",
-       87:  "too many users",
-       92:  "protocol not available",
-       24:  "too many open files",
-       105: "no buffer space available",
+       21:  "is a directory",
+       120: "is a named type file",
+       127: "unknown error 127",
+       129: "unknown error 129",
+       128: "unknown error 128",
+       51:  "level 2 halted",
+       45:  "level 2 not synchronized",
        46:  "level 3 halted",
-       14:  "bad address",
-       11:  "resource temporarily unavailable",
+       47:  "level 3 reset",
+       79:  "can not access a needed shared library",
        80:  "accessing a corrupted shared library",
-       86:  "streams pipe error",
-       111: "connection refused",
+       83:  "cannot exec a shared library directly",
        82:  "attempting to link in too many shared libraries",
-       17:  "file exists",
-       45:  "level 2 not synchronized",
+       81:  ".lib section in a.out corrupted",
+       48:  "link number out of range",
+       40:  "too many levels of symbolic links",
+       124: "wrong medium type",
+       24:  "too many open files",
+       31:  "too many links",
+       90:  "message too long",
+       72:  "multihop attempted",
+       36:  "file name too long",
+       119: "no XENIX semaphores available",
+       100: "network is down",
+       102: "network dropped connection on reset",
+       101: "network is unreachable",
+       23:  "too many open files in system",
+       55:  "no anode",
+       105: "no buffer space available",
+       50:  "no CSI structure available",
+       61:  "no data available",
+       19:  "no such device",
        2:   "no such file or directory",
+       8:   "exec format error",
+       126: "unknown error 126",
+       37:  "no locks available",
+       67:  "link has been severed",
+       123: "no medium found",
+       12:  "cannot allocate memory",
+       42:  "no message of desired type",
+       64:  "machine is not on the network",
        65:  "package not installed",
-       128: "key has been revoked",
-       113: "no route to host",
+       92:  "protocol not available",
+       28:  "no space left on device",
+       63:  "out of streams resources",
+       60:  "device not a stream",
+       38:  "function not implemented",
+       15:  "block device required",
+       107: "transport endpoint is not connected",
+       20:  "not a directory",
+       39:  "directory not empty",
+       118: "not a XENIX named type file",
+       131: "unknown error 131",
+       88:  "socket operation on non-socket",
+       95:  "operation not supported",
+       25:  "inappropriate ioctl for device",
        76:  "name not unique on network",
-       124: "wrong medium type",
+       6:   "no such device or address",
+       75:  "value too large for defined data type",
+       130: "unknown error 130",
+       1:   "operation not permitted",
+       96:  "protocol family not supported",
+       32:  "broken pipe",
+       71:  "protocol error",
+       93:  "protocol not supported",
+       91:  "protocol wrong type for socket",
+       34:  "numerical result out of range",
+       78:  "remote address changed",
+       66:  "object is remote",
+       121: "remote I/O error",
+       85:  "interrupted system call should be restarted",
+       30:  "read-only file system",
+       108: "cannot send after transport endpoint shutdown",
+       94:  "socket type not supported",
+       29:  "illegal seek",
+       3:   "no such process",
+       69:  "srmount error",
+       116: "stale NFS file handle",
+       86:  "streams pipe error",
+       62:  "timer expired",
+       110: "connection timed out",
+       109: "too many references: cannot splice",
+       26:  "text file busy",
+       117: "structure needs cleaning",
+       49:  "protocol driver not attached",
+       87:  "too many users",
+       18:  "invalid cross-device link",
+       54:  "exchange full",
 }
index 58b2979fcb246e5750220eecd661f1e0ae648517..4f63864ce478390eeb2fec5d23e5683154c088f5 100644 (file)
@@ -12,6 +12,13 @@ func open(path string, mode int, perm int) (fd int, errno int) {
        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)
+       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)
@@ -321,13 +328,6 @@ func Nanosleep(time *Timespec, leftover *Timespec) (errno int) {
        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)
-       errno = int(e1)
-       return
-}
-
 func Pause() (errno int) {
        _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)
        errno = int(e1)
index c5daf0d9ab4a4b8dcd5519910276199c93971ea1..f16cf0a2468e77f6eb542f5d6285e16e5c5c2aa6 100644 (file)
@@ -12,6 +12,13 @@ func open(path string, mode int, perm int) (fd int, errno int) {
        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)
+       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)
@@ -321,13 +328,6 @@ func Nanosleep(time *Timespec, leftover *Timespec) (errno int) {
        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)
-       errno = int(e1)
-       return
-}
-
 func Pause() (errno int) {
        _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)
        errno = int(e1)
index d2ffe6907d3a981ed781c4ac96c1ea42182f97c6..7ad4e6ed01d0c32cd33272350efcc7dda029077f 100644 (file)
@@ -5,6 +5,20 @@ package syscall
 
 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 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)
+       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)
@@ -314,20 +328,6 @@ func Nanosleep(time *Timespec, leftover *Timespec) (errno int) {
        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)
-       errno = int(e1)
-       return
-}
-
 func Pause() (errno int) {
        _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)
        errno = int(e1)
index ffac446aed35a8a2d4e4f9958164aa78c0b8a7df..0bf608f4d67b207848cda4d04db0f765fd02eda6 100644 (file)
@@ -6,121 +6,16 @@ package syscall
 
 // Constants
 const (
-       sizeofPtr               = 0x4
-       sizeofShort             = 0x2
-       sizeofInt               = 0x4
-       sizeofLong              = 0x4
-       sizeofLongLong          = 0x8
-       PathMax                 = 0x1000
-       O_RDONLY                = 0
-       O_WRONLY                = 0x1
-       O_RDWR                  = 0x2
-       O_APPEND                = 0x400
-       O_ASYNC                 = 0x2000
-       O_CREAT                 = 0x40
-       O_NOCTTY                = 0x100
-       O_NONBLOCK              = 0x800
-       O_SYNC                  = 0x1000
-       O_TRUNC                 = 0x200
-       O_CLOEXEC               = 0
-       F_GETFD                 = 0x1
-       F_SETFD                 = 0x2
-       F_GETFL                 = 0x3
-       F_SETFL                 = 0x4
-       FD_CLOEXEC              = 0x1
-       NAME_MAX                = 0xff
-       S_IFMT                  = 0xf000
-       S_IFIFO                 = 0x1000
-       S_IFCHR                 = 0x2000
-       S_IFDIR                 = 0x4000
-       S_IFBLK                 = 0x6000
-       S_IFREG                 = 0x8000
-       S_IFLNK                 = 0xa000
-       S_IFSOCK                = 0xc000
-       S_ISUID                 = 0x800
-       S_ISGID                 = 0x400
-       S_ISVTX                 = 0x200
-       S_IRUSR                 = 0x100
-       S_IWUSR                 = 0x80
-       S_IXUSR                 = 0x40
-       WNOHANG                 = 0x1
-       WUNTRACED               = 0x2
-       WEXITED                 = 0x4
-       WSTOPPED                = 0x2
-       WCONTINUED              = 0x8
-       WNOWAIT                 = 0x1000000
-       WCLONE                  = 0x80000000
-       WALL                    = 0x40000000
-       WNOTHREAD               = 0x20000000
-       AF_UNIX                 = 0x1
-       AF_INET                 = 0x2
-       AF_INET6                = 0xa
-       SOCK_STREAM             = 0x1
-       SOCK_DGRAM              = 0x2
-       SOCK_RAW                = 0x3
-       SOCK_SEQPACKET          = 0x5
-       SOL_SOCKET              = 0x1
-       SO_REUSEADDR            = 0x2
-       SO_KEEPALIVE            = 0x9
-       SO_DONTROUTE            = 0x5
-       SO_BROADCAST            = 0x6
-       SO_LINGER               = 0xd
-       SO_SNDBUF               = 0x7
-       SO_RCVBUF               = 0x8
-       SO_SNDTIMEO             = 0x15
-       SO_RCVTIMEO             = 0x14
-       IPPROTO_TCP             = 0x6
-       IPPROTO_UDP             = 0x11
-       TCP_NODELAY             = 0x1
-       SOMAXCONN               = 0x80
-       SizeofSockaddrInet4     = 0x10
-       SizeofSockaddrInet6     = 0x1c
-       SizeofSockaddrAny       = 0x1c
-       SizeofSockaddrUnix      = 0x6e
-       PTRACE_TRACEME          = 0
-       PTRACE_PEEKTEXT         = 0x1
-       PTRACE_PEEKDATA         = 0x2
-       PTRACE_PEEKUSER         = 0x3
-       PTRACE_POKETEXT         = 0x4
-       PTRACE_POKEDATA         = 0x5
-       PTRACE_POKEUSER         = 0x6
-       PTRACE_CONT             = 0x7
-       PTRACE_KILL             = 0x8
-       PTRACE_SINGLESTEP       = 0x9
-       PTRACE_GETREGS          = 0xc
-       PTRACE_SETREGS          = 0xd
-       PTRACE_GETFPREGS        = 0xe
-       PTRACE_SETFPREGS        = 0xf
-       PTRACE_ATTACH           = 0x10
-       PTRACE_DETACH           = 0x11
-       PTRACE_GETFPXREGS       = 0x12
-       PTRACE_SETFPXREGS       = 0x13
-       PTRACE_SYSCALL          = 0x18
-       PTRACE_SETOPTIONS       = 0x4200
-       PTRACE_GETEVENTMSG      = 0x4201
-       PTRACE_GETSIGINFO       = 0x4202
-       PTRACE_SETSIGINFO       = 0x4203
-       PTRACE_O_TRACESYSGOOD   = 0x1
-       PTRACE_O_TRACEFORK      = 0x2
-       PTRACE_O_TRACEVFORK     = 0x4
-       PTRACE_O_TRACECLONE     = 0x8
-       PTRACE_O_TRACEEXEC      = 0x10
-       PTRACE_O_TRACEVFORKDONE = 0x20
-       PTRACE_O_TRACEEXIT      = 0x40
-       PTRACE_O_MASK           = 0x7f
-       PTRACE_EVENT_FORK       = 0x1
-       PTRACE_EVENT_VFORK      = 0x2
-       PTRACE_EVENT_CLONE      = 0x3
-       PTRACE_EVENT_EXEC       = 0x4
-       PTRACE_EVENT_VFORK_DONE = 0x5
-       PTRACE_EVENT_EXIT       = 0x6
-       EPOLLIN                 = 0x1
-       EPOLLRDHUP              = 0x2000
-       EPOLLOUT                = 0x4
-       EPOLLONESHOT            = 0x40000000
-       EPOLL_CTL_MOD           = 0x3
-       EPOLL_CTL_ADD           = 0x1
-       EPOLL_CTL_DEL           = 0x2
+       sizeofPtr           = 0x4
+       sizeofShort         = 0x2
+       sizeofInt           = 0x4
+       sizeofLong          = 0x4
+       sizeofLongLong      = 0x8
+       PathMax             = 0x1000
+       SizeofSockaddrInet4 = 0x10
+       SizeofSockaddrInet6 = 0x1c
+       SizeofSockaddrAny   = 0x1c
+       SizeofSockaddrUnix  = 0x6e
 )
 
 // Types