]> Cypherpunks repositories - gostls13.git/commitdiff
syscall: darwin/arm support
authorShenghou Ma <minux@golang.org>
Fri, 26 Dec 2014 06:09:07 +0000 (01:09 -0500)
committerMinux Ma <minux@golang.org>
Fri, 6 Feb 2015 05:49:25 +0000 (05:49 +0000)
Change-Id: Id6f7fa12084204bc3a200f423c7966ce2a0b63a0
Reviewed-on: https://go-review.googlesource.com/2123
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: David Crawshaw <crawshaw@golang.org>
src/syscall/asm_darwin_arm.s [new file with mode: 0644]
src/syscall/syscall_darwin_arm.go [new file with mode: 0644]
src/syscall/zerrors_darwin_arm.go [new file with mode: 0644]
src/syscall/zsyscall_darwin_arm.go [new file with mode: 0644]
src/syscall/zsysnum_darwin_arm.go [new file with mode: 0644]
src/syscall/ztypes_darwin_arm.go [new file with mode: 0644]

diff --git a/src/syscall/asm_darwin_arm.s b/src/syscall/asm_darwin_arm.s
new file mode 100644 (file)
index 0000000..f75aa19
--- /dev/null
@@ -0,0 +1,134 @@
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+#include "textflag.h"
+
+//
+// System call support for ARM, Darwin
+//
+
+// func Syscall(syscall uintptr, a1, a2, a3 uintptr) (r1, r2, err uintptr)
+TEXT   ·Syscall(SB),NOSPLIT,$0-32
+       BL              runtime·entersyscall(SB)
+       MOVW    4(SP), R12
+       MOVW    8(SP), R0
+       MOVW    12(SP), R1
+       MOVW    16(SP), R2
+       SWI             $0x80
+       BCC             ok
+       MOVW    $-1, R1
+       MOVW    R1, 20(SP)      // r1
+       MOVW    $0, R2
+       MOVW    R2, 24(SP)      // r2
+       MOVW    R0, 28(SP)      // errno
+       BL              runtime·exitsyscall(SB)
+       RET
+ok:
+       MOVW    R0, 20(SP) // r1
+       MOVW    R1, 24(SP)      // r2
+       MOVW    $0, R0
+       MOVW    R0, 28(SP)      // errno
+       BL              runtime·exitsyscall(SB)
+       RET
+
+// func RawSyscall(trap uintptr, a1, a2, a3 uintptr) (r1, r2, err uintptr)
+TEXT ·RawSyscall(SB),NOSPLIT,$0-32
+       MOVW    4(SP), R12      // syscall entry
+       MOVW    8(SP), R0
+       MOVW    12(SP), R1
+       MOVW    16(SP), R2
+       SWI             $0x80
+       BCC             ok1
+       MOVW    $-1, R1
+       MOVW    R1, 20(SP)      // r1
+       MOVW    $0, R2
+       MOVW    R2, 24(SP)      // r2
+       MOVW    R0, 28(SP)      // errno
+       RET
+ok1:
+       MOVW    R0, 20(SP) // r1
+       MOVW    R1, 24(SP)      // r2
+       MOVW    $0, R0
+       MOVW    R0, 28(SP)      // errno
+       RET
+
+// func Syscall6(trap uintptr, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr)
+TEXT   ·Syscall6(SB),NOSPLIT,$0-44
+       BL              runtime·entersyscall(SB)
+       MOVW    4(SP), R12      // syscall entry
+       MOVW    8(SP), R0
+       MOVW    12(SP), R1
+       MOVW    16(SP), R2
+       MOVW    20(SP), R3
+       MOVW    24(SP), R4
+       MOVW    28(SP), R5
+       SWI             $0x80
+       BCC             ok6
+       MOVW    $-1, R1
+       MOVW    R1, 32(SP)      // r1
+       MOVW    $0, R2
+       MOVW    R2, 36(SP)      // r2
+       MOVW    R0, 40(SP)      // errno
+       BL              runtime·exitsyscall(SB)
+       RET
+ok6:
+       MOVW    R0, 32(SP) // r1
+       MOVW    R1, 36(SP)      // r2
+       MOVW    $0, R0
+       MOVW    R0, 40(SP)      // errno
+       BL              runtime·exitsyscall(SB)
+       RET
+
+// func RawSyscall6(trap uintptr, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr)
+TEXT   ·RawSyscall6(SB),NOSPLIT,$0-44
+       MOVW    4(SP), R12      // syscall entry
+       MOVW    8(SP), R0
+       MOVW    12(SP), R1
+       MOVW    16(SP), R2
+       MOVW    20(SP), R3
+       MOVW    24(SP), R4
+       MOVW    28(SP), R5
+       SWI             $0x80
+       BCC             ok2
+       MOVW    $-1, R1
+       MOVW    R1, 32(SP)      // r1
+       MOVW    $0, R2
+       MOVW    R2, 36(SP)      // r2
+       MOVW    R0, 40(SP)      // errno
+       RET
+ok2:
+       MOVW    R0, 32(SP) // r1
+       MOVW    R1, 36(SP)      // r2
+       MOVW    $0, R0
+       MOVW    R0, 40(SP)      // errno
+       RET
+
+// Actually Syscall7.
+TEXT   ·Syscall9(SB),NOSPLIT,$0-56
+       BL runtime·entersyscall(SB)
+       MOVW    4(SP), R12      // syscall entry
+       MOVW    8(SP), R0
+       MOVW    12(SP), R1
+       MOVW    16(SP), R2
+       MOVW    20(SP), R3
+       MOVW    24(SP), R4
+       MOVW    28(SP), R5
+       MOVW    32(SP), R6
+       SWI             $0x80
+       BCC             ok9
+       MOVW    $-1, R1
+       MOVW    R1, 44(SP)      // r1
+       MOVW    $0, R2
+       MOVW    R2, 48(SP)      // r2
+       MOVW    R0, 52(SP)      // errno
+       BL              runtime·exitsyscall(SB)
+       RET
+ok9:
+       MOVW    R0, 44(SP) // r1
+       MOVW    R1, 48(SP)      // r2
+       MOVW    $0, R0
+       MOVW    R0, 52(SP)      // errno
+       BL      runtime·exitsyscall(SB)
+       RET
+
diff --git a/src/syscall/syscall_darwin_arm.go b/src/syscall/syscall_darwin_arm.go
new file mode 100644 (file)
index 0000000..e9d187d
--- /dev/null
@@ -0,0 +1,71 @@
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package syscall
+
+import "unsafe"
+
+func Getpagesize() int { return 4096 }
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+       ts.Sec = int32(nsec / 1e9)
+       ts.Nsec = int32(nsec % 1e9)
+       return
+}
+
+func TimevalToNsec(tv Timeval) int64 { return int64(tv.Sec)*1e9 + int64(tv.Usec)*1e3 }
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+       nsec += 999 // round up to microsecond
+       tv.Usec = int32(nsec % 1e9 / 1e3)
+       tv.Sec = int32(nsec / 1e9)
+       return
+}
+
+//sysnb        gettimeofday(tp *Timeval) (sec int32, usec int32, err error)
+func Gettimeofday(tv *Timeval) (err error) {
+       // The tv passed to gettimeofday must be non-nil
+       // but is otherwise unused.  The answers come back
+       // in the two registers.
+       sec, usec, err := gettimeofday(tv)
+       tv.Sec = int32(sec)
+       tv.Usec = int32(usec)
+       return err
+}
+
+func SetKevent(k *Kevent_t, fd, mode, flags int) {
+       k.Ident = uint32(fd)
+       k.Filter = int16(mode)
+       k.Flags = uint16(flags)
+}
+
+func (iov *Iovec) SetLen(length int) {
+       iov.Len = uint32(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+       msghdr.Controllen = uint32(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+       cmsg.Len = uint32(length)
+}
+
+func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+       var length = uint64(count)
+
+       _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(*offset>>32), uintptr(unsafe.Pointer(&length)), 0, 0, 0, 0)
+
+       written = int(length)
+
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) // sic
+
diff --git a/src/syscall/zerrors_darwin_arm.go b/src/syscall/zerrors_darwin_arm.go
new file mode 100644 (file)
index 0000000..7e800d4
--- /dev/null
@@ -0,0 +1,1349 @@
+// mkerrors.sh
+// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
+
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs -- _const.go
+
+package syscall
+
+const (
+       AF_APPLETALK                = 0x10
+       AF_CCITT                    = 0xa
+       AF_CHAOS                    = 0x5
+       AF_CNT                      = 0x15
+       AF_COIP                     = 0x14
+       AF_DATAKIT                  = 0x9
+       AF_DECnet                   = 0xc
+       AF_DLI                      = 0xd
+       AF_E164                     = 0x1c
+       AF_ECMA                     = 0x8
+       AF_HYLINK                   = 0xf
+       AF_IMPLINK                  = 0x3
+       AF_INET                     = 0x2
+       AF_INET6                    = 0x1e
+       AF_IPX                      = 0x17
+       AF_ISDN                     = 0x1c
+       AF_ISO                      = 0x7
+       AF_LAT                      = 0xe
+       AF_LINK                     = 0x12
+       AF_LOCAL                    = 0x1
+       AF_MAX                      = 0x25
+       AF_NATM                     = 0x1f
+       AF_NDRV                     = 0x1b
+       AF_NETBIOS                  = 0x21
+       AF_NS                       = 0x6
+       AF_OSI                      = 0x7
+       AF_PPP                      = 0x22
+       AF_PUP                      = 0x4
+       AF_RESERVED_36              = 0x24
+       AF_ROUTE                    = 0x11
+       AF_SIP                      = 0x18
+       AF_SNA                      = 0xb
+       AF_SYSTEM                   = 0x20
+       AF_UNIX                     = 0x1
+       AF_UNSPEC                   = 0x0
+       B0                          = 0x0
+       B110                        = 0x6e
+       B115200                     = 0x1c200
+       B1200                       = 0x4b0
+       B134                        = 0x86
+       B14400                      = 0x3840
+       B150                        = 0x96
+       B1800                       = 0x708
+       B19200                      = 0x4b00
+       B200                        = 0xc8
+       B230400                     = 0x38400
+       B2400                       = 0x960
+       B28800                      = 0x7080
+       B300                        = 0x12c
+       B38400                      = 0x9600
+       B4800                       = 0x12c0
+       B50                         = 0x32
+       B57600                      = 0xe100
+       B600                        = 0x258
+       B7200                       = 0x1c20
+       B75                         = 0x4b
+       B76800                      = 0x12c00
+       B9600                       = 0x2580
+       BIOCFLUSH                   = 0x20004268
+       BIOCGBLEN                   = 0x40044266
+       BIOCGDLT                    = 0x4004426a
+       BIOCGDLTLIST                = 0xc00c4279
+       BIOCGETIF                   = 0x4020426b
+       BIOCGHDRCMPLT               = 0x40044274
+       BIOCGRSIG                   = 0x40044272
+       BIOCGRTIMEOUT               = 0x4008426e
+       BIOCGSEESENT                = 0x40044276
+       BIOCGSTATS                  = 0x4008426f
+       BIOCIMMEDIATE               = 0x80044270
+       BIOCPROMISC                 = 0x20004269
+       BIOCSBLEN                   = 0xc0044266
+       BIOCSDLT                    = 0x80044278
+       BIOCSETF                    = 0x80084267
+       BIOCSETIF                   = 0x8020426c
+       BIOCSHDRCMPLT               = 0x80044275
+       BIOCSRSIG                   = 0x80044273
+       BIOCSRTIMEOUT               = 0x8008426d
+       BIOCSSEESENT                = 0x80044277
+       BIOCVERSION                 = 0x40044271
+       BPF_A                       = 0x10
+       BPF_ABS                     = 0x20
+       BPF_ADD                     = 0x0
+       BPF_ALIGNMENT               = 0x4
+       BPF_ALU                     = 0x4
+       BPF_AND                     = 0x50
+       BPF_B                       = 0x10
+       BPF_DIV                     = 0x30
+       BPF_H                       = 0x8
+       BPF_IMM                     = 0x0
+       BPF_IND                     = 0x40
+       BPF_JA                      = 0x0
+       BPF_JEQ                     = 0x10
+       BPF_JGE                     = 0x30
+       BPF_JGT                     = 0x20
+       BPF_JMP                     = 0x5
+       BPF_JSET                    = 0x40
+       BPF_K                       = 0x0
+       BPF_LD                      = 0x0
+       BPF_LDX                     = 0x1
+       BPF_LEN                     = 0x80
+       BPF_LSH                     = 0x60
+       BPF_MAJOR_VERSION           = 0x1
+       BPF_MAXBUFSIZE              = 0x80000
+       BPF_MAXINSNS                = 0x200
+       BPF_MEM                     = 0x60
+       BPF_MEMWORDS                = 0x10
+       BPF_MINBUFSIZE              = 0x20
+       BPF_MINOR_VERSION           = 0x1
+       BPF_MISC                    = 0x7
+       BPF_MSH                     = 0xa0
+       BPF_MUL                     = 0x20
+       BPF_NEG                     = 0x80
+       BPF_OR                      = 0x40
+       BPF_RELEASE                 = 0x30bb6
+       BPF_RET                     = 0x6
+       BPF_RSH                     = 0x70
+       BPF_ST                      = 0x2
+       BPF_STX                     = 0x3
+       BPF_SUB                     = 0x10
+       BPF_TAX                     = 0x0
+       BPF_TXA                     = 0x80
+       BPF_W                       = 0x0
+       BPF_X                       = 0x8
+       BRKINT                      = 0x2
+       CFLUSH                      = 0xf
+       CLOCAL                      = 0x8000
+       CREAD                       = 0x800
+       CS5                         = 0x0
+       CS6                         = 0x100
+       CS7                         = 0x200
+       CS8                         = 0x300
+       CSIZE                       = 0x300
+       CSTART                      = 0x11
+       CSTATUS                     = 0x14
+       CSTOP                       = 0x13
+       CSTOPB                      = 0x400
+       CSUSP                       = 0x1a
+       CTL_MAXNAME                 = 0xc
+       CTL_NET                     = 0x4
+       DLT_APPLE_IP_OVER_IEEE1394  = 0x8a
+       DLT_ARCNET                  = 0x7
+       DLT_ATM_CLIP                = 0x13
+       DLT_ATM_RFC1483             = 0xb
+       DLT_AX25                    = 0x3
+       DLT_CHAOS                   = 0x5
+       DLT_CHDLC                   = 0x68
+       DLT_C_HDLC                  = 0x68
+       DLT_EN10MB                  = 0x1
+       DLT_EN3MB                   = 0x2
+       DLT_FDDI                    = 0xa
+       DLT_IEEE802                 = 0x6
+       DLT_IEEE802_11              = 0x69
+       DLT_IEEE802_11_RADIO        = 0x7f
+       DLT_IEEE802_11_RADIO_AVS    = 0xa3
+       DLT_LINUX_SLL               = 0x71
+       DLT_LOOP                    = 0x6c
+       DLT_NULL                    = 0x0
+       DLT_PFLOG                   = 0x75
+       DLT_PFSYNC                  = 0x12
+       DLT_PPP                     = 0x9
+       DLT_PPP_BSDOS               = 0x10
+       DLT_PPP_SERIAL              = 0x32
+       DLT_PRONET                  = 0x4
+       DLT_RAW                     = 0xc
+       DLT_SLIP                    = 0x8
+       DLT_SLIP_BSDOS              = 0xf
+       DT_BLK                      = 0x6
+       DT_CHR                      = 0x2
+       DT_DIR                      = 0x4
+       DT_FIFO                     = 0x1
+       DT_LNK                      = 0xa
+       DT_REG                      = 0x8
+       DT_SOCK                     = 0xc
+       DT_UNKNOWN                  = 0x0
+       DT_WHT                      = 0xe
+       ECHO                        = 0x8
+       ECHOCTL                     = 0x40
+       ECHOE                       = 0x2
+       ECHOK                       = 0x4
+       ECHOKE                      = 0x1
+       ECHONL                      = 0x10
+       ECHOPRT                     = 0x20
+       EVFILT_AIO                  = -0x3
+       EVFILT_FS                   = -0x9
+       EVFILT_MACHPORT             = -0x8
+       EVFILT_PROC                 = -0x5
+       EVFILT_READ                 = -0x1
+       EVFILT_SIGNAL               = -0x6
+       EVFILT_SYSCOUNT             = 0x9
+       EVFILT_THREADMARKER         = 0x9
+       EVFILT_TIMER                = -0x7
+       EVFILT_VNODE                = -0x4
+       EVFILT_WRITE                = -0x2
+       EV_ADD                      = 0x1
+       EV_CLEAR                    = 0x20
+       EV_DELETE                   = 0x2
+       EV_DISABLE                  = 0x8
+       EV_ENABLE                   = 0x4
+       EV_EOF                      = 0x8000
+       EV_ERROR                    = 0x4000
+       EV_FLAG0                    = 0x1000
+       EV_FLAG1                    = 0x2000
+       EV_ONESHOT                  = 0x10
+       EV_OOBAND                   = 0x2000
+       EV_POLL                     = 0x1000
+       EV_RECEIPT                  = 0x40
+       EV_SYSFLAGS                 = 0xf000
+       EXTA                        = 0x4b00
+       EXTB                        = 0x9600
+       EXTPROC                     = 0x800
+       FD_CLOEXEC                  = 0x1
+       FD_SETSIZE                  = 0x400
+       FLUSHO                      = 0x800000
+       F_ADDSIGS                   = 0x3b
+       F_ALLOCATEALL               = 0x4
+       F_ALLOCATECONTIG            = 0x2
+       F_CHKCLEAN                  = 0x29
+       F_DUPFD                     = 0x0
+       F_DUPFD_CLOEXEC             = 0x43
+       F_FREEZE_FS                 = 0x35
+       F_FULLFSYNC                 = 0x33
+       F_GETFD                     = 0x1
+       F_GETFL                     = 0x3
+       F_GETLK                     = 0x7
+       F_GETOWN                    = 0x5
+       F_GETPATH                   = 0x32
+       F_GLOBAL_NOCACHE            = 0x37
+       F_LOG2PHYS                  = 0x31
+       F_MARKDEPENDENCY            = 0x3c
+       F_NOCACHE                   = 0x30
+       F_OK                        = 0x0
+       F_PATHPKG_CHECK             = 0x34
+       F_PEOFPOSMODE               = 0x3
+       F_PREALLOCATE               = 0x2a
+       F_RDADVISE                  = 0x2c
+       F_RDAHEAD                   = 0x2d
+       F_RDLCK                     = 0x1
+       F_READBOOTSTRAP             = 0x2e
+       F_SETFD                     = 0x2
+       F_SETFL                     = 0x4
+       F_SETLK                     = 0x8
+       F_SETLKW                    = 0x9
+       F_SETOWN                    = 0x6
+       F_SETSIZE                   = 0x2b
+       F_THAW_FS                   = 0x36
+       F_UNLCK                     = 0x2
+       F_VOLPOSMODE                = 0x4
+       F_WRITEBOOTSTRAP            = 0x2f
+       F_WRLCK                     = 0x3
+       HUPCL                       = 0x4000
+       ICANON                      = 0x100
+       ICRNL                       = 0x100
+       IEXTEN                      = 0x400
+       IFF_ALLMULTI                = 0x200
+       IFF_ALTPHYS                 = 0x4000
+       IFF_BROADCAST               = 0x2
+       IFF_DEBUG                   = 0x4
+       IFF_LINK0                   = 0x1000
+       IFF_LINK1                   = 0x2000
+       IFF_LINK2                   = 0x4000
+       IFF_LOOPBACK                = 0x8
+       IFF_MULTICAST               = 0x8000
+       IFF_NOARP                   = 0x80
+       IFF_NOTRAILERS              = 0x20
+       IFF_OACTIVE                 = 0x400
+       IFF_POINTOPOINT             = 0x10
+       IFF_PROMISC                 = 0x100
+       IFF_RUNNING                 = 0x40
+       IFF_SIMPLEX                 = 0x800
+       IFF_UP                      = 0x1
+       IFNAMSIZ                    = 0x10
+       IFT_1822                    = 0x2
+       IFT_AAL5                    = 0x31
+       IFT_ARCNET                  = 0x23
+       IFT_ARCNETPLUS              = 0x24
+       IFT_ATM                     = 0x25
+       IFT_BRIDGE                  = 0xd1
+       IFT_CARP                    = 0xf8
+       IFT_CEPT                    = 0x13
+       IFT_DS3                     = 0x1e
+       IFT_ENC                     = 0xf4
+       IFT_EON                     = 0x19
+       IFT_ETHER                   = 0x6
+       IFT_FAITH                   = 0x38
+       IFT_FDDI                    = 0xf
+       IFT_FRELAY                  = 0x20
+       IFT_FRELAYDCE               = 0x2c
+       IFT_GIF                     = 0x37
+       IFT_HDH1822                 = 0x3
+       IFT_HIPPI                   = 0x2f
+       IFT_HSSI                    = 0x2e
+       IFT_HY                      = 0xe
+       IFT_IEEE1394                = 0x90
+       IFT_IEEE8023ADLAG           = 0x88
+       IFT_ISDNBASIC               = 0x14
+       IFT_ISDNPRIMARY             = 0x15
+       IFT_ISO88022LLC             = 0x29
+       IFT_ISO88023                = 0x7
+       IFT_ISO88024                = 0x8
+       IFT_ISO88025                = 0x9
+       IFT_ISO88026                = 0xa
+       IFT_L2VLAN                  = 0x87
+       IFT_LAPB                    = 0x10
+       IFT_LOCALTALK               = 0x2a
+       IFT_LOOP                    = 0x18
+       IFT_MIOX25                  = 0x26
+       IFT_MODEM                   = 0x30
+       IFT_NSIP                    = 0x1b
+       IFT_OTHER                   = 0x1
+       IFT_P10                     = 0xc
+       IFT_P80                     = 0xd
+       IFT_PARA                    = 0x22
+       IFT_PDP                     = 0xff
+       IFT_PFLOG                   = 0xf5
+       IFT_PFSYNC                  = 0xf6
+       IFT_PPP                     = 0x17
+       IFT_PROPMUX                 = 0x36
+       IFT_PROPVIRTUAL             = 0x35
+       IFT_PTPSERIAL               = 0x16
+       IFT_RS232                   = 0x21
+       IFT_SDLC                    = 0x11
+       IFT_SIP                     = 0x1f
+       IFT_SLIP                    = 0x1c
+       IFT_SMDSDXI                 = 0x2b
+       IFT_SMDSICIP                = 0x34
+       IFT_SONET                   = 0x27
+       IFT_SONETPATH               = 0x32
+       IFT_SONETVT                 = 0x33
+       IFT_STARLAN                 = 0xb
+       IFT_STF                     = 0x39
+       IFT_T1                      = 0x12
+       IFT_ULTRA                   = 0x1d
+       IFT_V35                     = 0x2d
+       IFT_X25                     = 0x5
+       IFT_X25DDN                  = 0x4
+       IFT_X25PLE                  = 0x28
+       IFT_XETHER                  = 0x1a
+       IGNBRK                      = 0x1
+       IGNCR                       = 0x80
+       IGNPAR                      = 0x4
+       IMAXBEL                     = 0x2000
+       INLCR                       = 0x40
+       INPCK                       = 0x10
+       IN_CLASSA_HOST              = 0xffffff
+       IN_CLASSA_MAX               = 0x80
+       IN_CLASSA_NET               = 0xff000000
+       IN_CLASSA_NSHIFT            = 0x18
+       IN_CLASSB_HOST              = 0xffff
+       IN_CLASSB_MAX               = 0x10000
+       IN_CLASSB_NET               = 0xffff0000
+       IN_CLASSB_NSHIFT            = 0x10
+       IN_CLASSC_HOST              = 0xff
+       IN_CLASSC_NET               = 0xffffff00
+       IN_CLASSC_NSHIFT            = 0x8
+       IN_CLASSD_HOST              = 0xfffffff
+       IN_CLASSD_NET               = 0xf0000000
+       IN_CLASSD_NSHIFT            = 0x1c
+       IN_LINKLOCALNETNUM          = 0xa9fe0000
+       IN_LOOPBACKNET              = 0x7f
+       IPPROTO_3PC                 = 0x22
+       IPPROTO_ADFS                = 0x44
+       IPPROTO_AH                  = 0x33
+       IPPROTO_AHIP                = 0x3d
+       IPPROTO_APES                = 0x63
+       IPPROTO_ARGUS               = 0xd
+       IPPROTO_AX25                = 0x5d
+       IPPROTO_BHA                 = 0x31
+       IPPROTO_BLT                 = 0x1e
+       IPPROTO_BRSATMON            = 0x4c
+       IPPROTO_CFTP                = 0x3e
+       IPPROTO_CHAOS               = 0x10
+       IPPROTO_CMTP                = 0x26
+       IPPROTO_CPHB                = 0x49
+       IPPROTO_CPNX                = 0x48
+       IPPROTO_DDP                 = 0x25
+       IPPROTO_DGP                 = 0x56
+       IPPROTO_DIVERT              = 0xfe
+       IPPROTO_DONE                = 0x101
+       IPPROTO_DSTOPTS             = 0x3c
+       IPPROTO_EGP                 = 0x8
+       IPPROTO_EMCON               = 0xe
+       IPPROTO_ENCAP               = 0x62
+       IPPROTO_EON                 = 0x50
+       IPPROTO_ESP                 = 0x32
+       IPPROTO_ETHERIP             = 0x61
+       IPPROTO_FRAGMENT            = 0x2c
+       IPPROTO_GGP                 = 0x3
+       IPPROTO_GMTP                = 0x64
+       IPPROTO_GRE                 = 0x2f
+       IPPROTO_HELLO               = 0x3f
+       IPPROTO_HMP                 = 0x14
+       IPPROTO_HOPOPTS             = 0x0
+       IPPROTO_ICMP                = 0x1
+       IPPROTO_ICMPV6              = 0x3a
+       IPPROTO_IDP                 = 0x16
+       IPPROTO_IDPR                = 0x23
+       IPPROTO_IDRP                = 0x2d
+       IPPROTO_IGMP                = 0x2
+       IPPROTO_IGP                 = 0x55
+       IPPROTO_IGRP                = 0x58
+       IPPROTO_IL                  = 0x28
+       IPPROTO_INLSP               = 0x34
+       IPPROTO_INP                 = 0x20
+       IPPROTO_IP                  = 0x0
+       IPPROTO_IPCOMP              = 0x6c
+       IPPROTO_IPCV                = 0x47
+       IPPROTO_IPEIP               = 0x5e
+       IPPROTO_IPIP                = 0x4
+       IPPROTO_IPPC                = 0x43
+       IPPROTO_IPV4                = 0x4
+       IPPROTO_IPV6                = 0x29
+       IPPROTO_IRTP                = 0x1c
+       IPPROTO_KRYPTOLAN           = 0x41
+       IPPROTO_LARP                = 0x5b
+       IPPROTO_LEAF1               = 0x19
+       IPPROTO_LEAF2               = 0x1a
+       IPPROTO_MAX                 = 0x100
+       IPPROTO_MAXID               = 0x34
+       IPPROTO_MEAS                = 0x13
+       IPPROTO_MHRP                = 0x30
+       IPPROTO_MICP                = 0x5f
+       IPPROTO_MTP                 = 0x5c
+       IPPROTO_MUX                 = 0x12
+       IPPROTO_ND                  = 0x4d
+       IPPROTO_NHRP                = 0x36
+       IPPROTO_NONE                = 0x3b
+       IPPROTO_NSP                 = 0x1f
+       IPPROTO_NVPII               = 0xb
+       IPPROTO_OSPFIGP             = 0x59
+       IPPROTO_PGM                 = 0x71
+       IPPROTO_PIGP                = 0x9
+       IPPROTO_PIM                 = 0x67
+       IPPROTO_PRM                 = 0x15
+       IPPROTO_PUP                 = 0xc
+       IPPROTO_PVP                 = 0x4b
+       IPPROTO_RAW                 = 0xff
+       IPPROTO_RCCMON              = 0xa
+       IPPROTO_RDP                 = 0x1b
+       IPPROTO_ROUTING             = 0x2b
+       IPPROTO_RSVP                = 0x2e
+       IPPROTO_RVD                 = 0x42
+       IPPROTO_SATEXPAK            = 0x40
+       IPPROTO_SATMON              = 0x45
+       IPPROTO_SCCSP               = 0x60
+       IPPROTO_SDRP                = 0x2a
+       IPPROTO_SEP                 = 0x21
+       IPPROTO_SRPC                = 0x5a
+       IPPROTO_ST                  = 0x7
+       IPPROTO_SVMTP               = 0x52
+       IPPROTO_SWIPE               = 0x35
+       IPPROTO_TCF                 = 0x57
+       IPPROTO_TCP                 = 0x6
+       IPPROTO_TP                  = 0x1d
+       IPPROTO_TPXX                = 0x27
+       IPPROTO_TRUNK1              = 0x17
+       IPPROTO_TRUNK2              = 0x18
+       IPPROTO_TTP                 = 0x54
+       IPPROTO_UDP                 = 0x11
+       IPPROTO_VINES               = 0x53
+       IPPROTO_VISA                = 0x46
+       IPPROTO_VMTP                = 0x51
+       IPPROTO_WBEXPAK             = 0x4f
+       IPPROTO_WBMON               = 0x4e
+       IPPROTO_WSN                 = 0x4a
+       IPPROTO_XNET                = 0xf
+       IPPROTO_XTP                 = 0x24
+       IPV6_BINDV6ONLY             = 0x1b
+       IPV6_CHECKSUM               = 0x1a
+       IPV6_DEFAULT_MULTICAST_HOPS = 0x1
+       IPV6_DEFAULT_MULTICAST_LOOP = 0x1
+       IPV6_DEFHLIM                = 0x40
+       IPV6_DSTOPTS                = 0x17
+       IPV6_FAITH                  = 0x1d
+       IPV6_FLOWINFO_MASK          = 0xffffff0f
+       IPV6_FLOWLABEL_MASK         = 0xffff0f00
+       IPV6_FRAGTTL                = 0x78
+       IPV6_FW_ADD                 = 0x1e
+       IPV6_FW_DEL                 = 0x1f
+       IPV6_FW_FLUSH               = 0x20
+       IPV6_FW_GET                 = 0x22
+       IPV6_FW_ZERO                = 0x21
+       IPV6_HLIMDEC                = 0x1
+       IPV6_HOPLIMIT               = 0x14
+       IPV6_HOPOPTS                = 0x16
+       IPV6_IPSEC_POLICY           = 0x1c
+       IPV6_JOIN_GROUP             = 0xc
+       IPV6_LEAVE_GROUP            = 0xd
+       IPV6_MAXHLIM                = 0xff
+       IPV6_MAXPACKET              = 0xffff
+       IPV6_MMTU                   = 0x500
+       IPV6_MULTICAST_HOPS         = 0xa
+       IPV6_MULTICAST_IF           = 0x9
+       IPV6_MULTICAST_LOOP         = 0xb
+       IPV6_NEXTHOP                = 0x15
+       IPV6_PKTINFO                = 0x13
+       IPV6_PKTOPTIONS             = 0x19
+       IPV6_PORTRANGE              = 0xe
+       IPV6_PORTRANGE_DEFAULT      = 0x0
+       IPV6_PORTRANGE_HIGH         = 0x1
+       IPV6_PORTRANGE_LOW          = 0x2
+       IPV6_RTHDR                  = 0x18
+       IPV6_RTHDR_LOOSE            = 0x0
+       IPV6_RTHDR_STRICT           = 0x1
+       IPV6_RTHDR_TYPE_0           = 0x0
+       IPV6_SOCKOPT_RESERVED1      = 0x3
+       IPV6_UNICAST_HOPS           = 0x4
+       IPV6_V6ONLY                 = 0x1b
+       IPV6_VERSION                = 0x60
+       IPV6_VERSION_MASK           = 0xf0
+       IP_ADD_MEMBERSHIP           = 0xc
+       IP_DEFAULT_MULTICAST_LOOP   = 0x1
+       IP_DEFAULT_MULTICAST_TTL    = 0x1
+       IP_DF                       = 0x4000
+       IP_DROP_MEMBERSHIP          = 0xd
+       IP_DUMMYNET_CONFIGURE       = 0x3c
+       IP_DUMMYNET_DEL             = 0x3d
+       IP_DUMMYNET_FLUSH           = 0x3e
+       IP_DUMMYNET_GET             = 0x40
+       IP_FAITH                    = 0x16
+       IP_FW_ADD                   = 0x28
+       IP_FW_DEL                   = 0x29
+       IP_FW_FLUSH                 = 0x2a
+       IP_FW_GET                   = 0x2c
+       IP_FW_RESETLOG              = 0x2d
+       IP_FW_ZERO                  = 0x2b
+       IP_HDRINCL                  = 0x2
+       IP_IPSEC_POLICY             = 0x15
+       IP_MAXPACKET                = 0xffff
+       IP_MAX_MEMBERSHIPS          = 0x14
+       IP_MF                       = 0x2000
+       IP_MSS                      = 0x240
+       IP_MULTICAST_IF             = 0x9
+       IP_MULTICAST_LOOP           = 0xb
+       IP_MULTICAST_TTL            = 0xa
+       IP_MULTICAST_VIF            = 0xe
+       IP_NAT__XXX                 = 0x37
+       IP_OFFMASK                  = 0x1fff
+       IP_OLD_FW_ADD               = 0x32
+       IP_OLD_FW_DEL               = 0x33
+       IP_OLD_FW_FLUSH             = 0x34
+       IP_OLD_FW_GET               = 0x36
+       IP_OLD_FW_RESETLOG          = 0x38
+       IP_OLD_FW_ZERO              = 0x35
+       IP_OPTIONS                  = 0x1
+       IP_PKTINFO                  = 0x1a
+       IP_PORTRANGE                = 0x13
+       IP_PORTRANGE_DEFAULT        = 0x0
+       IP_PORTRANGE_HIGH           = 0x1
+       IP_PORTRANGE_LOW            = 0x2
+       IP_RECVDSTADDR              = 0x7
+       IP_RECVIF                   = 0x14
+       IP_RECVOPTS                 = 0x5
+       IP_RECVPKTINFO              = 0x1a
+       IP_RECVRETOPTS              = 0x6
+       IP_RECVTTL                  = 0x18
+       IP_RETOPTS                  = 0x8
+       IP_RF                       = 0x8000
+       IP_RSVP_OFF                 = 0x10
+       IP_RSVP_ON                  = 0xf
+       IP_RSVP_VIF_OFF             = 0x12
+       IP_RSVP_VIF_ON              = 0x11
+       IP_STRIPHDR                 = 0x17
+       IP_TOS                      = 0x3
+       IP_TRAFFIC_MGT_BACKGROUND   = 0x41
+       IP_TTL                      = 0x4
+       ISIG                        = 0x80
+       ISTRIP                      = 0x20
+       IUTF8                       = 0x4000
+       IXANY                       = 0x800
+       IXOFF                       = 0x400
+       IXON                        = 0x200
+       LOCK_EX                     = 0x2
+       LOCK_NB                     = 0x4
+       LOCK_SH                     = 0x1
+       LOCK_UN                     = 0x8
+       MADV_DONTNEED               = 0x4
+       MADV_FREE                   = 0x5
+       MADV_NORMAL                 = 0x0
+       MADV_RANDOM                 = 0x1
+       MADV_SEQUENTIAL             = 0x2
+       MADV_WILLNEED               = 0x3
+       MAP_ANON                    = 0x1000
+       MAP_COPY                    = 0x2
+       MAP_FILE                    = 0x0
+       MAP_FIXED                   = 0x10
+       MAP_HASSEMAPHORE            = 0x200
+       MAP_NOCACHE                 = 0x400
+       MAP_NOEXTEND                = 0x100
+       MAP_NORESERVE               = 0x40
+       MAP_PRIVATE                 = 0x2
+       MAP_RENAME                  = 0x20
+       MAP_RESERVED0080            = 0x80
+       MAP_SHARED                  = 0x1
+       MCL_CURRENT                 = 0x1
+       MCL_FUTURE                  = 0x2
+       MSG_CTRUNC                  = 0x20
+       MSG_DONTROUTE               = 0x4
+       MSG_DONTWAIT                = 0x80
+       MSG_EOF                     = 0x100
+       MSG_EOR                     = 0x8
+       MSG_FLUSH                   = 0x400
+       MSG_HAVEMORE                = 0x2000
+       MSG_HOLD                    = 0x800
+       MSG_NEEDSA                  = 0x10000
+       MSG_OOB                     = 0x1
+       MSG_PEEK                    = 0x2
+       MSG_RCVMORE                 = 0x4000
+       MSG_SEND                    = 0x1000
+       MSG_TRUNC                   = 0x10
+       MSG_WAITALL                 = 0x40
+       MSG_WAITSTREAM              = 0x200
+       MS_ASYNC                    = 0x1
+       MS_DEACTIVATE               = 0x8
+       MS_INVALIDATE               = 0x2
+       MS_KILLPAGES                = 0x4
+       MS_SYNC                     = 0x10
+       NAME_MAX                    = 0xff
+       NET_RT_DUMP                 = 0x1
+       NET_RT_DUMP2                = 0x7
+       NET_RT_FLAGS                = 0x2
+       NET_RT_IFLIST               = 0x3
+       NET_RT_IFLIST2              = 0x6
+       NET_RT_MAXID                = 0x8
+       NET_RT_STAT                 = 0x4
+       NET_RT_TRASH                = 0x5
+       NOFLSH                      = 0x80000000
+       NOTE_ABSOLUTE               = 0x8
+       NOTE_ATTRIB                 = 0x8
+       NOTE_CHILD                  = 0x4
+       NOTE_DELETE                 = 0x1
+       NOTE_EXEC                   = 0x20000000
+       NOTE_EXIT                   = 0x80000000
+       NOTE_EXTEND                 = 0x4
+       NOTE_FORK                   = 0x40000000
+       NOTE_LINK                   = 0x10
+       NOTE_LOWAT                  = 0x1
+       NOTE_NSECONDS               = 0x4
+       NOTE_PCTRLMASK              = -0x100000
+       NOTE_PDATAMASK              = 0xfffff
+       NOTE_REAP                   = 0x10000000
+       NOTE_RENAME                 = 0x20
+       NOTE_REVOKE                 = 0x40
+       NOTE_SECONDS                = 0x1
+       NOTE_SIGNAL                 = 0x8000000
+       NOTE_TRACK                  = 0x1
+       NOTE_TRACKERR               = 0x2
+       NOTE_USECONDS               = 0x2
+       NOTE_WRITE                  = 0x2
+       OCRNL                       = 0x10
+       OFDEL                       = 0x20000
+       OFILL                       = 0x80
+       ONLCR                       = 0x2
+       ONLRET                      = 0x40
+       ONOCR                       = 0x20
+       ONOEOT                      = 0x8
+       OPOST                       = 0x1
+       O_ACCMODE                   = 0x3
+       O_ALERT                     = 0x20000000
+       O_APPEND                    = 0x8
+       O_ASYNC                     = 0x40
+       O_CLOEXEC                   = 0x1000000
+       O_CREAT                     = 0x200
+       O_DIRECTORY                 = 0x100000
+       O_EVTONLY                   = 0x8000
+       O_EXCL                      = 0x800
+       O_EXLOCK                    = 0x20
+       O_FSYNC                     = 0x80
+       O_NDELAY                    = 0x4
+       O_NOCTTY                    = 0x20000
+       O_NOFOLLOW                  = 0x100
+       O_NONBLOCK                  = 0x4
+       O_POPUP                     = 0x80000000
+       O_RDONLY                    = 0x0
+       O_RDWR                      = 0x2
+       O_SHLOCK                    = 0x10
+       O_SYMLINK                   = 0x200000
+       O_SYNC                      = 0x80
+       O_TRUNC                     = 0x400
+       O_WRONLY                    = 0x1
+       PARENB                      = 0x1000
+       PARMRK                      = 0x8
+       PARODD                      = 0x2000
+       PENDIN                      = 0x20000000
+       PRIO_PGRP                   = 0x1
+       PRIO_PROCESS                = 0x0
+       PRIO_USER                   = 0x2
+       PROT_EXEC                   = 0x4
+       PROT_NONE                   = 0x0
+       PROT_READ                   = 0x1
+       PROT_WRITE                  = 0x2
+       PT_ATTACH                   = 0xa
+       PT_ATTACHEXC                = 0xe
+       PT_CONTINUE                 = 0x7
+       PT_DENY_ATTACH              = 0x1f
+       PT_DETACH                   = 0xb
+       PT_FIRSTMACH                = 0x20
+       PT_FORCEQUOTA               = 0x1e
+       PT_KILL                     = 0x8
+       PT_READ_D                   = 0x2
+       PT_READ_I                   = 0x1
+       PT_READ_U                   = 0x3
+       PT_SIGEXC                   = 0xc
+       PT_STEP                     = 0x9
+       PT_THUPDATE                 = 0xd
+       PT_TRACE_ME                 = 0x0
+       PT_WRITE_D                  = 0x5
+       PT_WRITE_I                  = 0x4
+       PT_WRITE_U                  = 0x6
+       RLIMIT_AS                   = 0x5
+       RLIMIT_CORE                 = 0x4
+       RLIMIT_CPU                  = 0x0
+       RLIMIT_DATA                 = 0x2
+       RLIMIT_FSIZE                = 0x1
+       RLIMIT_NOFILE               = 0x8
+       RLIMIT_STACK                = 0x3
+       RLIM_INFINITY               = 0x7fffffffffffffff
+       RTAX_AUTHOR                 = 0x6
+       RTAX_BRD                    = 0x7
+       RTAX_DST                    = 0x0
+       RTAX_GATEWAY                = 0x1
+       RTAX_GENMASK                = 0x3
+       RTAX_IFA                    = 0x5
+       RTAX_IFP                    = 0x4
+       RTAX_MAX                    = 0x8
+       RTAX_NETMASK                = 0x2
+       RTA_AUTHOR                  = 0x40
+       RTA_BRD                     = 0x80
+       RTA_DST                     = 0x1
+       RTA_GATEWAY                 = 0x2
+       RTA_GENMASK                 = 0x8
+       RTA_IFA                     = 0x20
+       RTA_IFP                     = 0x10
+       RTA_NETMASK                 = 0x4
+       RTF_BLACKHOLE               = 0x1000
+       RTF_BROADCAST               = 0x400000
+       RTF_CLONING                 = 0x100
+       RTF_CONDEMNED               = 0x2000000
+       RTF_DELCLONE                = 0x80
+       RTF_DONE                    = 0x40
+       RTF_DYNAMIC                 = 0x10
+       RTF_GATEWAY                 = 0x2
+       RTF_HOST                    = 0x4
+       RTF_IFREF                   = 0x4000000
+       RTF_IFSCOPE                 = 0x1000000
+       RTF_LLINFO                  = 0x400
+       RTF_LOCAL                   = 0x200000
+       RTF_MODIFIED                = 0x20
+       RTF_MULTICAST               = 0x800000
+       RTF_PINNED                  = 0x100000
+       RTF_PRCLONING               = 0x10000
+       RTF_PROTO1                  = 0x8000
+       RTF_PROTO2                  = 0x4000
+       RTF_PROTO3                  = 0x40000
+       RTF_REJECT                  = 0x8
+       RTF_STATIC                  = 0x800
+       RTF_UP                      = 0x1
+       RTF_WASCLONED               = 0x20000
+       RTF_XRESOLVE                = 0x200
+       RTM_ADD                     = 0x1
+       RTM_CHANGE                  = 0x3
+       RTM_DELADDR                 = 0xd
+       RTM_DELETE                  = 0x2
+       RTM_DELMADDR                = 0x10
+       RTM_GET                     = 0x4
+       RTM_GET2                    = 0x14
+       RTM_IFINFO                  = 0xe
+       RTM_IFINFO2                 = 0x12
+       RTM_LOCK                    = 0x8
+       RTM_LOSING                  = 0x5
+       RTM_MISS                    = 0x7
+       RTM_NEWADDR                 = 0xc
+       RTM_NEWMADDR                = 0xf
+       RTM_NEWMADDR2               = 0x13
+       RTM_OLDADD                  = 0x9
+       RTM_OLDDEL                  = 0xa
+       RTM_REDIRECT                = 0x6
+       RTM_RESOLVE                 = 0xb
+       RTM_RTTUNIT                 = 0xf4240
+       RTM_VERSION                 = 0x5
+       RTV_EXPIRE                  = 0x4
+       RTV_HOPCOUNT                = 0x2
+       RTV_MTU                     = 0x1
+       RTV_RPIPE                   = 0x8
+       RTV_RTT                     = 0x40
+       RTV_RTTVAR                  = 0x80
+       RTV_SPIPE                   = 0x10
+       RTV_SSTHRESH                = 0x20
+       RUSAGE_CHILDREN             = -0x1
+       RUSAGE_SELF                 = 0x0
+       SCM_CREDS                   = 0x3
+       SCM_RIGHTS                  = 0x1
+       SCM_TIMESTAMP               = 0x2
+       SHUT_RD                     = 0x0
+       SHUT_RDWR                   = 0x2
+       SHUT_WR                     = 0x1
+       SIOCADDMULTI                = 0x80206931
+       SIOCAIFADDR                 = 0x8040691a
+       SIOCALIFADDR                = 0x8118691d
+       SIOCARPIPLL                 = 0xc0206928
+       SIOCATMARK                  = 0x40047307
+       SIOCAUTOADDR                = 0xc0206926
+       SIOCAUTONETMASK             = 0x80206927
+       SIOCDELMULTI                = 0x80206932
+       SIOCDIFADDR                 = 0x80206919
+       SIOCDIFPHYADDR              = 0x80206941
+       SIOCDLIFADDR                = 0x8118691f
+       SIOCGETSGCNT                = 0xc014721c
+       SIOCGETVIFCNT               = 0xc014721b
+       SIOCGETVLAN                 = 0xc020697f
+       SIOCGHIWAT                  = 0x40047301
+       SIOCGIFADDR                 = 0xc0206921
+       SIOCGIFALTMTU               = 0xc0206948
+       SIOCGIFASYNCMAP             = 0xc020697c
+       SIOCGIFBOND                 = 0xc0206947
+       SIOCGIFBRDADDR              = 0xc0206923
+       SIOCGIFCONF                 = 0xc0086924
+       SIOCGIFDEVMTU               = 0xc0206944
+       SIOCGIFDSTADDR              = 0xc0206922
+       SIOCGIFFLAGS                = 0xc0206911
+       SIOCGIFGENERIC              = 0xc020693a
+       SIOCGIFKPI                  = 0xc0206987
+       SIOCGIFMAC                  = 0xc0206982
+       SIOCGIFMEDIA                = 0xc0286938
+       SIOCGIFMETRIC               = 0xc0206917
+       SIOCGIFMTU                  = 0xc0206933
+       SIOCGIFNETMASK              = 0xc0206925
+       SIOCGIFPDSTADDR             = 0xc0206940
+       SIOCGIFPHYS                 = 0xc0206935
+       SIOCGIFPSRCADDR             = 0xc020693f
+       SIOCGIFSTATUS               = 0xc331693d
+       SIOCGIFVLAN                 = 0xc020697f
+       SIOCGLIFADDR                = 0xc118691e
+       SIOCGLIFPHYADDR             = 0xc1186943
+       SIOCGLOWAT                  = 0x40047303
+       SIOCGPGRP                   = 0x40047309
+       SIOCIFCREATE                = 0xc0206978
+       SIOCIFDESTROY               = 0x80206979
+       SIOCRSLVMULTI               = 0xc008693b
+       SIOCSETVLAN                 = 0x8020697e
+       SIOCSHIWAT                  = 0x80047300
+       SIOCSIFADDR                 = 0x8020690c
+       SIOCSIFALTMTU               = 0x80206945
+       SIOCSIFASYNCMAP             = 0x8020697d
+       SIOCSIFBOND                 = 0x80206946
+       SIOCSIFBRDADDR              = 0x80206913
+       SIOCSIFDSTADDR              = 0x8020690e
+       SIOCSIFFLAGS                = 0x80206910
+       SIOCSIFGENERIC              = 0x80206939
+       SIOCSIFKPI                  = 0x80206986
+       SIOCSIFLLADDR               = 0x8020693c
+       SIOCSIFMAC                  = 0x80206983
+       SIOCSIFMEDIA                = 0xc0206937
+       SIOCSIFMETRIC               = 0x80206918
+       SIOCSIFMTU                  = 0x80206934
+       SIOCSIFNETMASK              = 0x80206916
+       SIOCSIFPHYADDR              = 0x8040693e
+       SIOCSIFPHYS                 = 0x80206936
+       SIOCSIFVLAN                 = 0x8020697e
+       SIOCSLIFPHYADDR             = 0x81186942
+       SIOCSLOWAT                  = 0x80047302
+       SIOCSPGRP                   = 0x80047308
+       SOCK_DGRAM                  = 0x2
+       SOCK_MAXADDRLEN             = 0xff
+       SOCK_RAW                    = 0x3
+       SOCK_RDM                    = 0x4
+       SOCK_SEQPACKET              = 0x5
+       SOCK_STREAM                 = 0x1
+       SOL_SOCKET                  = 0xffff
+       SOMAXCONN                   = 0x80
+       SO_ACCEPTCONN               = 0x2
+       SO_BROADCAST                = 0x20
+       SO_DEBUG                    = 0x1
+       SO_DONTROUTE                = 0x10
+       SO_DONTTRUNC                = 0x2000
+       SO_ERROR                    = 0x1007
+       SO_KEEPALIVE                = 0x8
+       SO_LABEL                    = 0x1010
+       SO_LINGER                   = 0x80
+       SO_LINGER_SEC               = 0x1080
+       SO_NKE                      = 0x1021
+       SO_NOADDRERR                = 0x1023
+       SO_NOSIGPIPE                = 0x1022
+       SO_NOTIFYCONFLICT           = 0x1026
+       SO_NREAD                    = 0x1020
+       SO_NWRITE                   = 0x1024
+       SO_OOBINLINE                = 0x100
+       SO_PEERLABEL                = 0x1011
+       SO_RCVBUF                   = 0x1002
+       SO_RCVLOWAT                 = 0x1004
+       SO_RCVTIMEO                 = 0x1006
+       SO_RESTRICTIONS             = 0x1081
+       SO_RESTRICT_DENYIN          = 0x1
+       SO_RESTRICT_DENYOUT         = 0x2
+       SO_RESTRICT_DENYSET         = 0x80000000
+       SO_REUSEADDR                = 0x4
+       SO_REUSEPORT                = 0x200
+       SO_REUSESHAREUID            = 0x1025
+       SO_SNDBUF                   = 0x1001
+       SO_SNDLOWAT                 = 0x1003
+       SO_SNDTIMEO                 = 0x1005
+       SO_TIMESTAMP                = 0x400
+       SO_TYPE                     = 0x1008
+       SO_UPCALLCLOSEWAIT          = 0x1027
+       SO_USELOOPBACK              = 0x40
+       SO_WANTMORE                 = 0x4000
+       SO_WANTOOBFLAG              = 0x8000
+       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_IFWHT                     = 0xe000
+       S_IFXATTR                   = 0x10000
+       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_ISTXT                     = 0x200
+       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
+       TCIFLUSH                    = 0x1
+       TCIOFLUSH                   = 0x3
+       TCOFLUSH                    = 0x2
+       TCP_KEEPALIVE               = 0x10
+       TCP_MAXBURST                = 0x4
+       TCP_MAXHLEN                 = 0x3c
+       TCP_MAXOLEN                 = 0x28
+       TCP_MAXSEG                  = 0x2
+       TCP_MAXWIN                  = 0xffff
+       TCP_MAX_SACK                = 0x3
+       TCP_MAX_WINSHIFT            = 0xe
+       TCP_MINMSS                  = 0xd8
+       TCP_MINMSSOVERLOAD          = 0x3e8
+       TCP_MSS                     = 0x200
+       TCP_NODELAY                 = 0x1
+       TCP_NOOPT                   = 0x8
+       TCP_NOPUSH                  = 0x4
+       TCSAFLUSH                   = 0x2
+       TIOCCBRK                    = 0x2000747a
+       TIOCCDTR                    = 0x20007478
+       TIOCCONS                    = 0x80047462
+       TIOCDCDTIMESTAMP            = 0x40087458
+       TIOCDRAIN                   = 0x2000745e
+       TIOCDSIMICROCODE            = 0x20007455
+       TIOCEXCL                    = 0x2000740d
+       TIOCEXT                     = 0x80047460
+       TIOCFLUSH                   = 0x80047410
+       TIOCGDRAINWAIT              = 0x40047456
+       TIOCGETA                    = 0x402c7413
+       TIOCGETD                    = 0x4004741a
+       TIOCGPGRP                   = 0x40047477
+       TIOCGWINSZ                  = 0x40087468
+       TIOCIXOFF                   = 0x20007480
+       TIOCIXON                    = 0x20007481
+       TIOCMBIC                    = 0x8004746b
+       TIOCMBIS                    = 0x8004746c
+       TIOCMGDTRWAIT               = 0x4004745a
+       TIOCMGET                    = 0x4004746a
+       TIOCMODG                    = 0x40047403
+       TIOCMODS                    = 0x80047404
+       TIOCMSDTRWAIT               = 0x8004745b
+       TIOCMSET                    = 0x8004746d
+       TIOCM_CAR                   = 0x40
+       TIOCM_CD                    = 0x40
+       TIOCM_CTS                   = 0x20
+       TIOCM_DSR                   = 0x100
+       TIOCM_DTR                   = 0x2
+       TIOCM_LE                    = 0x1
+       TIOCM_RI                    = 0x80
+       TIOCM_RNG                   = 0x80
+       TIOCM_RTS                   = 0x4
+       TIOCM_SR                    = 0x10
+       TIOCM_ST                    = 0x8
+       TIOCNOTTY                   = 0x20007471
+       TIOCNXCL                    = 0x2000740e
+       TIOCOUTQ                    = 0x40047473
+       TIOCPKT                     = 0x80047470
+       TIOCPKT_DATA                = 0x0
+       TIOCPKT_DOSTOP              = 0x20
+       TIOCPKT_FLUSHREAD           = 0x1
+       TIOCPKT_FLUSHWRITE          = 0x2
+       TIOCPKT_IOCTL               = 0x40
+       TIOCPKT_NOSTOP              = 0x10
+       TIOCPKT_START               = 0x8
+       TIOCPKT_STOP                = 0x4
+       TIOCPTYGNAME                = 0x40807453
+       TIOCPTYGRANT                = 0x20007454
+       TIOCPTYUNLK                 = 0x20007452
+       TIOCREMOTE                  = 0x80047469
+       TIOCSBRK                    = 0x2000747b
+       TIOCSCONS                   = 0x20007463
+       TIOCSCTTY                   = 0x20007461
+       TIOCSDRAINWAIT              = 0x80047457
+       TIOCSDTR                    = 0x20007479
+       TIOCSETA                    = 0x802c7414
+       TIOCSETAF                   = 0x802c7416
+       TIOCSETAW                   = 0x802c7415
+       TIOCSETD                    = 0x8004741b
+       TIOCSIG                     = 0x2000745f
+       TIOCSPGRP                   = 0x80047476
+       TIOCSTART                   = 0x2000746e
+       TIOCSTAT                    = 0x20007465
+       TIOCSTI                     = 0x80017472
+       TIOCSTOP                    = 0x2000746f
+       TIOCSWINSZ                  = 0x80087467
+       TIOCTIMESTAMP               = 0x40087459
+       TIOCUCNTL                   = 0x80047466
+       TOSTOP                      = 0x400000
+       VDISCARD                    = 0xf
+       VDSUSP                      = 0xb
+       VEOF                        = 0x0
+       VEOL                        = 0x1
+       VEOL2                       = 0x2
+       VERASE                      = 0x3
+       VINTR                       = 0x8
+       VKILL                       = 0x5
+       VLNEXT                      = 0xe
+       VMIN                        = 0x10
+       VQUIT                       = 0x9
+       VREPRINT                    = 0x6
+       VSTART                      = 0xc
+       VSTATUS                     = 0x12
+       VSTOP                       = 0xd
+       VSUSP                       = 0xa
+       VT0                         = 0x0
+       VT1                         = 0x10000
+       VTDLY                       = 0x10000
+       VTIME                       = 0x11
+       VWERASE                     = 0x4
+       WCONTINUED                  = 0x10
+       WCOREFLAG                   = 0x80
+       WEXITED                     = 0x4
+       WNOHANG                     = 0x1
+       WNOWAIT                     = 0x20
+       WORDSIZE                    = 0x20
+       WSTOPPED                    = 0x8
+       WUNTRACED                   = 0x2
+)
+
+// Errors
+const (
+       E2BIG           = Errno(0x7)
+       EACCES          = Errno(0xd)
+       EADDRINUSE      = Errno(0x30)
+       EADDRNOTAVAIL   = Errno(0x31)
+       EAFNOSUPPORT    = Errno(0x2f)
+       EAGAIN          = Errno(0x23)
+       EALREADY        = Errno(0x25)
+       EAUTH           = Errno(0x50)
+       EBADARCH        = Errno(0x56)
+       EBADEXEC        = Errno(0x55)
+       EBADF           = Errno(0x9)
+       EBADMACHO       = Errno(0x58)
+       EBADMSG         = Errno(0x5e)
+       EBADRPC         = Errno(0x48)
+       EBUSY           = Errno(0x10)
+       ECANCELED       = Errno(0x59)
+       ECHILD          = Errno(0xa)
+       ECONNABORTED    = Errno(0x35)
+       ECONNREFUSED    = Errno(0x3d)
+       ECONNRESET      = Errno(0x36)
+       EDEADLK         = Errno(0xb)
+       EDESTADDRREQ    = Errno(0x27)
+       EDEVERR         = Errno(0x53)
+       EDOM            = Errno(0x21)
+       EDQUOT          = Errno(0x45)
+       EEXIST          = Errno(0x11)
+       EFAULT          = Errno(0xe)
+       EFBIG           = Errno(0x1b)
+       EFTYPE          = Errno(0x4f)
+       EHOSTDOWN       = Errno(0x40)
+       EHOSTUNREACH    = Errno(0x41)
+       EIDRM           = Errno(0x5a)
+       EILSEQ          = Errno(0x5c)
+       EINPROGRESS     = Errno(0x24)
+       EINTR           = Errno(0x4)
+       EINVAL          = Errno(0x16)
+       EIO             = Errno(0x5)
+       EISCONN         = Errno(0x38)
+       EISDIR          = Errno(0x15)
+       ELAST           = Errno(0x67)
+       ELOOP           = Errno(0x3e)
+       EMFILE          = Errno(0x18)
+       EMLINK          = Errno(0x1f)
+       EMSGSIZE        = Errno(0x28)
+       EMULTIHOP       = Errno(0x5f)
+       ENAMETOOLONG    = Errno(0x3f)
+       ENEEDAUTH       = Errno(0x51)
+       ENETDOWN        = Errno(0x32)
+       ENETRESET       = Errno(0x34)
+       ENETUNREACH     = Errno(0x33)
+       ENFILE          = Errno(0x17)
+       ENOATTR         = Errno(0x5d)
+       ENOBUFS         = Errno(0x37)
+       ENODATA         = Errno(0x60)
+       ENODEV          = Errno(0x13)
+       ENOENT          = Errno(0x2)
+       ENOEXEC         = Errno(0x8)
+       ENOLCK          = Errno(0x4d)
+       ENOLINK         = Errno(0x61)
+       ENOMEM          = Errno(0xc)
+       ENOMSG          = Errno(0x5b)
+       ENOPOLICY       = Errno(0x67)
+       ENOPROTOOPT     = Errno(0x2a)
+       ENOSPC          = Errno(0x1c)
+       ENOSR           = Errno(0x62)
+       ENOSTR          = Errno(0x63)
+       ENOSYS          = Errno(0x4e)
+       ENOTBLK         = Errno(0xf)
+       ENOTCONN        = Errno(0x39)
+       ENOTDIR         = Errno(0x14)
+       ENOTEMPTY       = Errno(0x42)
+       ENOTSOCK        = Errno(0x26)
+       ENOTSUP         = Errno(0x2d)
+       ENOTTY          = Errno(0x19)
+       ENXIO           = Errno(0x6)
+       EOPNOTSUPP      = Errno(0x66)
+       EOVERFLOW       = Errno(0x54)
+       EPERM           = Errno(0x1)
+       EPFNOSUPPORT    = Errno(0x2e)
+       EPIPE           = Errno(0x20)
+       EPROCLIM        = Errno(0x43)
+       EPROCUNAVAIL    = Errno(0x4c)
+       EPROGMISMATCH   = Errno(0x4b)
+       EPROGUNAVAIL    = Errno(0x4a)
+       EPROTO          = Errno(0x64)
+       EPROTONOSUPPORT = Errno(0x2b)
+       EPROTOTYPE      = Errno(0x29)
+       EPWROFF         = Errno(0x52)
+       ERANGE          = Errno(0x22)
+       EREMOTE         = Errno(0x47)
+       EROFS           = Errno(0x1e)
+       ERPCMISMATCH    = Errno(0x49)
+       ESHLIBVERS      = Errno(0x57)
+       ESHUTDOWN       = Errno(0x3a)
+       ESOCKTNOSUPPORT = Errno(0x2c)
+       ESPIPE          = Errno(0x1d)
+       ESRCH           = Errno(0x3)
+       ESTALE          = Errno(0x46)
+       ETIME           = Errno(0x65)
+       ETIMEDOUT       = Errno(0x3c)
+       ETOOMANYREFS    = Errno(0x3b)
+       ETXTBSY         = Errno(0x1a)
+       EUSERS          = Errno(0x44)
+       EWOULDBLOCK     = Errno(0x23)
+       EXDEV           = Errno(0x12)
+)
+
+// Signals
+const (
+       SIGABRT   = Signal(0x6)
+       SIGALRM   = Signal(0xe)
+       SIGBUS    = Signal(0xa)
+       SIGCHLD   = Signal(0x14)
+       SIGCONT   = Signal(0x13)
+       SIGEMT    = Signal(0x7)
+       SIGFPE    = Signal(0x8)
+       SIGHUP    = Signal(0x1)
+       SIGILL    = Signal(0x4)
+       SIGINFO   = Signal(0x1d)
+       SIGINT    = Signal(0x2)
+       SIGIO     = Signal(0x17)
+       SIGIOT    = Signal(0x6)
+       SIGKILL   = Signal(0x9)
+       SIGPIPE   = Signal(0xd)
+       SIGPROF   = Signal(0x1b)
+       SIGQUIT   = Signal(0x3)
+       SIGSEGV   = Signal(0xb)
+       SIGSTOP   = Signal(0x11)
+       SIGSYS    = Signal(0xc)
+       SIGTERM   = Signal(0xf)
+       SIGTRAP   = Signal(0x5)
+       SIGTSTP   = Signal(0x12)
+       SIGTTIN   = Signal(0x15)
+       SIGTTOU   = Signal(0x16)
+       SIGURG    = Signal(0x10)
+       SIGUSR1   = Signal(0x1e)
+       SIGUSR2   = Signal(0x1f)
+       SIGVTALRM = Signal(0x1a)
+       SIGWINCH  = Signal(0x1c)
+       SIGXCPU   = Signal(0x18)
+       SIGXFSZ   = Signal(0x19)
+)
+
+// Error table
+var errors = [...]string{
+       1:   "operation not permitted",
+       2:   "no such file or directory",
+       3:   "no such process",
+       4:   "interrupted system call",
+       5:   "input/output error",
+       6:   "device not configured",
+       7:   "argument list too long",
+       8:   "exec format error",
+       9:   "bad file descriptor",
+       10:  "no child processes",
+       11:  "resource deadlock avoided",
+       12:  "cannot allocate memory",
+       13:  "permission denied",
+       14:  "bad address",
+       15:  "block device required",
+       16:  "resource busy",
+       17:  "file exists",
+       18:  "cross-device link",
+       19:  "operation not supported by device",
+       20:  "not a directory",
+       21:  "is a directory",
+       22:  "invalid argument",
+       23:  "too many open files in system",
+       24:  "too many open files",
+       25:  "inappropriate ioctl for device",
+       26:  "text file busy",
+       27:  "file too large",
+       28:  "no space left on device",
+       29:  "illegal seek",
+       30:  "read-only file system",
+       31:  "too many links",
+       32:  "broken pipe",
+       33:  "numerical argument out of domain",
+       34:  "result too large",
+       35:  "resource temporarily unavailable",
+       36:  "operation now in progress",
+       37:  "operation already in progress",
+       38:  "socket operation on non-socket",
+       39:  "destination address required",
+       40:  "message too long",
+       41:  "protocol wrong type for socket",
+       42:  "protocol not available",
+       43:  "protocol not supported",
+       44:  "socket type not supported",
+       45:  "operation not supported",
+       46:  "protocol family not supported",
+       47:  "address family not supported by protocol family",
+       48:  "address already in use",
+       49:  "can't assign requested address",
+       50:  "network is down",
+       51:  "network is unreachable",
+       52:  "network dropped connection on reset",
+       53:  "software caused connection abort",
+       54:  "connection reset by peer",
+       55:  "no buffer space available",
+       56:  "socket is already connected",
+       57:  "socket is not connected",
+       58:  "can't send after socket shutdown",
+       59:  "too many references: can't splice",
+       60:  "operation timed out",
+       61:  "connection refused",
+       62:  "too many levels of symbolic links",
+       63:  "file name too long",
+       64:  "host is down",
+       65:  "no route to host",
+       66:  "directory not empty",
+       67:  "too many processes",
+       68:  "too many users",
+       69:  "disc quota exceeded",
+       70:  "stale NFS file handle",
+       71:  "too many levels of remote in path",
+       72:  "RPC struct is bad",
+       73:  "RPC version wrong",
+       74:  "RPC prog. not avail",
+       75:  "program version wrong",
+       76:  "bad procedure for program",
+       77:  "no locks available",
+       78:  "function not implemented",
+       79:  "inappropriate file type or format",
+       80:  "authentication error",
+       81:  "need authenticator",
+       82:  "device power is off",
+       83:  "device error",
+       84:  "value too large to be stored in data type",
+       85:  "bad executable (or shared library)",
+       86:  "bad CPU type in executable",
+       87:  "shared library version mismatch",
+       88:  "malformed Mach-o file",
+       89:  "operation canceled",
+       90:  "identifier removed",
+       91:  "no message of desired type",
+       92:  "illegal byte sequence",
+       93:  "attribute not found",
+       94:  "bad message",
+       95:  "EMULTIHOP (Reserved)",
+       96:  "no message available on STREAM",
+       97:  "ENOLINK (Reserved)",
+       98:  "no STREAM resources",
+       99:  "not a STREAM",
+       100: "protocol error",
+       101: "STREAM ioctl timeout",
+       102: "operation not supported on socket",
+       103: "policy not found",
+}
+
+// Signal table
+var signals = [...]string{
+       1:  "hangup",
+       2:  "interrupt",
+       3:  "quit",
+       4:  "illegal instruction",
+       5:  "trace/BPT trap",
+       6:  "abort trap",
+       7:  "EMT trap",
+       8:  "floating point exception",
+       9:  "killed",
+       10: "bus error",
+       11: "segmentation fault",
+       12: "bad system call",
+       13: "broken pipe",
+       14: "alarm clock",
+       15: "terminated",
+       16: "urgent I/O condition",
+       17: "suspended (signal)",
+       18: "suspended",
+       19: "continued",
+       20: "child exited",
+       21: "stopped (tty input)",
+       22: "stopped (tty output)",
+       23: "I/O possible",
+       24: "cputime limit exceeded",
+       25: "filesize limit exceeded",
+       26: "virtual timer expired",
+       27: "profiling timer expired",
+       28: "window size changes",
+       29: "information request",
+       30: "user defined signal 1",
+       31: "user defined signal 2",
+}
diff --git a/src/syscall/zsyscall_darwin_arm.go b/src/syscall/zsyscall_darwin_arm.go
new file mode 100644 (file)
index 0000000..d851d69
--- /dev/null
@@ -0,0 +1,1324 @@
+// mksyscall.pl -l32 syscall_bsd.go syscall_darwin.go syscall_darwin_arm.go
+// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
+
+package syscall
+
+import "unsafe"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getgroups(ngid int, gid *_Gid_t) (n int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setgroups(ngid int, gid *_Gid_t) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {
+       r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
+       wpid = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+       r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       fd = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socket(domain int, typ int, proto int) (fd int, err error) {
+       r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))
+       fd = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
+       _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
+       _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Shutdown(s int, how int) (err error) {
+       _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
+       _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
+       n = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
+       var _p0 unsafe.Pointer
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {
+       r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))
+       n = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
+       var _p0 unsafe.Pointer
+       if len(mib) > 0 {
+               _p0 = unsafe.Pointer(&mib[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func utimes(path string, timeval *[2]Timeval) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func futimes(fd int, timeval *[2]Timeval) (err error) {
+       _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// 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, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+       val = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
+       _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pipe() (r int, w int, err error) {
+       r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)
+       r = int(r0)
+       w = int(r1)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func kill(pid int, signum int, posix int) (err error) {
+       _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix))
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Access(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Adjtime(delta *Timeval, olddelta *Timeval) (err error) {
+       _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chdir(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chflags(path string, flags int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chmod(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chroot(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Close(fd int) (err error) {
+       _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Dup(fd int) (nfd int, err error) {
+       r0, _, e1 := RawSyscall(SYS_DUP, uintptr(fd), 0, 0)
+       nfd = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Dup2(from int, to int) (err error) {
+       _, _, e1 := RawSyscall(SYS_DUP2, uintptr(from), uintptr(to), 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Exchangedata(path1 string, path2 string, options int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path1)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(path2)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Exit(code int) {
+       Syscall(SYS_EXIT, uintptr(code), 0, 0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchdir(fd int) (err error) {
+       _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchflags(path string, flags int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchmod(fd int, mode uint32) (err error) {
+       _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchown(fd int, uid int, gid int) (err error) {
+       _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Flock(fd int, how int) (err error) {
+       _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fpathconf(fd int, name int) (val int, err error) {
+       r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)
+       val = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstat(fd int, stat *Stat_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstatfs(fd int, stat *Statfs_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTATFS64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fsync(fd int) (err error) {
+       _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ftruncate(fd int, length int64) (err error) {
+       _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), uintptr(length>>32))
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getdtablesize() (size int) {
+       r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)
+       size = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getegid() (egid int) {
+       r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
+       egid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Geteuid() (uid int) {
+       r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getgid() (gid int) {
+       r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
+       gid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpgid(pid int) (pgid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)
+       pgid = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpgrp() (pgrp int) {
+       r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)
+       pgrp = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpid() (pid int) {
+       r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
+       pid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getppid() (ppid int) {
+       r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)
+       ppid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpriority(which int, who int) (prio int, err error) {
+       r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)
+       prio = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrlimit(which int, lim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrusage(who int, rusage *Rusage) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getsid(pid int) (sid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)
+       sid = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getuid() (uid int) {
+       r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Issetugid() (tainted bool) {
+       r0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0)
+       tainted = bool(r0 != 0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Kqueue() (fd int, err error) {
+       r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)
+       fd = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lchown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Link(path string, link string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Listen(s int, backlog int) (err error) {
+       _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lstat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mkdir(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mkfifo(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mknod(path string, mode uint32, dev int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Open(path string, mode int, perm uint32) (fd int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
+       fd = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pathconf(path string, name int) (val int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
+       val = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pread(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func read(fd int, p []byte) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+       n = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Readlink(path string, buf []byte) (n int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 unsafe.Pointer
+       if len(buf) > 0 {
+               _p1 = unsafe.Pointer(&buf[0])
+       } else {
+               _p1 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
+       n = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Rename(from string, to string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(from)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(to)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Revoke(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Rmdir(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+       r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0)
+       newoffset = int64(int64(r1)<<32 | int64(r0))
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+       _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setegid(egid int) (err error) {
+       _, _, e1 := Syscall(SYS_SETEGID, uintptr(egid), 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seteuid(euid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setgid(gid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setlogin(name string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(name)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpgid(pid int, pgid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpriority(which int, who int, prio int) (err error) {
+       _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setprivexec(flag int) (err error) {
+       _, _, e1 := Syscall(SYS_SETPRIVEXEC, uintptr(flag), 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setregid(rgid int, egid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setreuid(ruid int, euid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setrlimit(which int, lim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setsid() (pid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)
+       pid = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Settimeofday(tp *Timeval) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setuid(uid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Stat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Statfs(path string, stat *Statfs_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Symlink(path string, link string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Sync() (err error) {
+       _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Truncate(path string, length int64) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32))
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Umask(newmask int) (oldmask int) {
+       r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)
+       oldmask = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Undelete(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Unlink(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Unmount(path string, flags int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func write(fd int, p []byte) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+       n = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {
+       r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0)
+       ret = uintptr(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func munmap(addr uintptr, length uintptr) (err error) {
+       _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func readlen(fd int, buf *byte, nbuf int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+       n = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+       n = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func gettimeofday(tp *Timeval) (sec int32, usec int32, err error) {
+       r0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)
+       sec = int32(r0)
+       usec = int32(r1)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
diff --git a/src/syscall/zsysnum_darwin_arm.go b/src/syscall/zsysnum_darwin_arm.go
new file mode 100644 (file)
index 0000000..1a53f13
--- /dev/null
@@ -0,0 +1,345 @@
+// mksysnum_darwin.pl /usr/include/sys/syscall.h
+// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
+
+package syscall
+
+const (
+       SYS_SYSCALL                   = 0
+       SYS_EXIT                      = 1
+       SYS_FORK                      = 2
+       SYS_READ                      = 3
+       SYS_WRITE                     = 4
+       SYS_OPEN                      = 5
+       SYS_CLOSE                     = 6
+       SYS_WAIT4                     = 7
+       SYS_LINK                      = 9
+       SYS_UNLINK                    = 10
+       SYS_CHDIR                     = 12
+       SYS_FCHDIR                    = 13
+       SYS_MKNOD                     = 14
+       SYS_CHMOD                     = 15
+       SYS_CHOWN                     = 16
+       SYS_OBREAK                    = 17
+       SYS_OGETFSSTAT                = 18
+       SYS_GETFSSTAT                 = 18
+       SYS_GETPID                    = 20
+       SYS_SETUID                    = 23
+       SYS_GETUID                    = 24
+       SYS_GETEUID                   = 25
+       SYS_PTRACE                    = 26
+       SYS_RECVMSG                   = 27
+       SYS_SENDMSG                   = 28
+       SYS_RECVFROM                  = 29
+       SYS_ACCEPT                    = 30
+       SYS_GETPEERNAME               = 31
+       SYS_GETSOCKNAME               = 32
+       SYS_ACCESS                    = 33
+       SYS_CHFLAGS                   = 34
+       SYS_FCHFLAGS                  = 35
+       SYS_SYNC                      = 36
+       SYS_KILL                      = 37
+       SYS_GETPPID                   = 39
+       SYS_DUP                       = 41
+       SYS_PIPE                      = 42
+       SYS_GETEGID                   = 43
+       SYS_PROFIL                    = 44
+       SYS_SIGACTION                 = 46
+       SYS_GETGID                    = 47
+       SYS_SIGPROCMASK               = 48
+       SYS_GETLOGIN                  = 49
+       SYS_SETLOGIN                  = 50
+       SYS_ACCT                      = 51
+       SYS_SIGPENDING                = 52
+       SYS_SIGALTSTACK               = 53
+       SYS_IOCTL                     = 54
+       SYS_REBOOT                    = 55
+       SYS_REVOKE                    = 56
+       SYS_SYMLINK                   = 57
+       SYS_READLINK                  = 58
+       SYS_EXECVE                    = 59
+       SYS_UMASK                     = 60
+       SYS_CHROOT                    = 61
+       SYS_MSYNC                     = 65
+       SYS_VFORK                     = 66
+       SYS_SBRK                      = 69
+       SYS_SSTK                      = 70
+       SYS_OVADVISE                  = 72
+       SYS_MUNMAP                    = 73
+       SYS_MPROTECT                  = 74
+       SYS_MADVISE                   = 75
+       SYS_MINCORE                   = 78
+       SYS_GETGROUPS                 = 79
+       SYS_SETGROUPS                 = 80
+       SYS_GETPGRP                   = 81
+       SYS_SETPGID                   = 82
+       SYS_SETITIMER                 = 83
+       SYS_SWAPON                    = 85
+       SYS_GETITIMER                 = 86
+       SYS_GETDTABLESIZE             = 89
+       SYS_DUP2                      = 90
+       SYS_FCNTL                     = 92
+       SYS_SELECT                    = 93
+       SYS_FSYNC                     = 95
+       SYS_SETPRIORITY               = 96
+       SYS_SOCKET                    = 97
+       SYS_CONNECT                   = 98
+       SYS_GETPRIORITY               = 100
+       SYS_BIND                      = 104
+       SYS_SETSOCKOPT                = 105
+       SYS_LISTEN                    = 106
+       SYS_SIGSUSPEND                = 111
+       SYS_GETTIMEOFDAY              = 116
+       SYS_GETRUSAGE                 = 117
+       SYS_GETSOCKOPT                = 118
+       SYS_READV                     = 120
+       SYS_WRITEV                    = 121
+       SYS_SETTIMEOFDAY              = 122
+       SYS_FCHOWN                    = 123
+       SYS_FCHMOD                    = 124
+       SYS_SETREUID                  = 126
+       SYS_SETREGID                  = 127
+       SYS_RENAME                    = 128
+       SYS_FLOCK                     = 131
+       SYS_MKFIFO                    = 132
+       SYS_SENDTO                    = 133
+       SYS_SHUTDOWN                  = 134
+       SYS_SOCKETPAIR                = 135
+       SYS_MKDIR                     = 136
+       SYS_RMDIR                     = 137
+       SYS_UTIMES                    = 138
+       SYS_FUTIMES                   = 139
+       SYS_ADJTIME                   = 140
+       SYS_GETHOSTUUID               = 142
+       SYS_SETSID                    = 147
+       SYS_GETPGID                   = 151
+       SYS_SETPRIVEXEC               = 152
+       SYS_PREAD                     = 153
+       SYS_PWRITE                    = 154
+       SYS_NFSSVC                    = 155
+       SYS_STATFS                    = 157
+       SYS_FSTATFS                   = 158
+       SYS_UNMOUNT                   = 159
+       SYS_GETFH                     = 161
+       SYS_QUOTACTL                  = 165
+       SYS_MOUNT                     = 167
+       SYS_CSOPS                     = 169
+       SYS_TABLE                     = 170
+       SYS_WAITID                    = 173
+       SYS_ADD_PROFIL                = 176
+       SYS_KDEBUG_TRACE              = 180
+       SYS_SETGID                    = 181
+       SYS_SETEGID                   = 182
+       SYS_SETEUID                   = 183
+       SYS_SIGRETURN                 = 184
+       SYS_CHUD                      = 185
+       SYS_STAT                      = 188
+       SYS_FSTAT                     = 189
+       SYS_LSTAT                     = 190
+       SYS_PATHCONF                  = 191
+       SYS_FPATHCONF                 = 192
+       SYS_GETRLIMIT                 = 194
+       SYS_SETRLIMIT                 = 195
+       SYS_GETDIRENTRIES             = 196
+       SYS_MMAP                      = 197
+       SYS_LSEEK                     = 199
+       SYS_TRUNCATE                  = 200
+       SYS_FTRUNCATE                 = 201
+       SYS___SYSCTL                  = 202
+       SYS_MLOCK                     = 203
+       SYS_MUNLOCK                   = 204
+       SYS_UNDELETE                  = 205
+       SYS_ATSOCKET                  = 206
+       SYS_ATGETMSG                  = 207
+       SYS_ATPUTMSG                  = 208
+       SYS_ATPSNDREQ                 = 209
+       SYS_ATPSNDRSP                 = 210
+       SYS_ATPGETREQ                 = 211
+       SYS_ATPGETRSP                 = 212
+       SYS_KQUEUE_FROM_PORTSET_NP    = 214
+       SYS_KQUEUE_PORTSET_NP         = 215
+       SYS_MKCOMPLEX                 = 216
+       SYS_STATV                     = 217
+       SYS_LSTATV                    = 218
+       SYS_FSTATV                    = 219
+       SYS_GETATTRLIST               = 220
+       SYS_SETATTRLIST               = 221
+       SYS_GETDIRENTRIESATTR         = 222
+       SYS_EXCHANGEDATA              = 223
+       SYS_SEARCHFS                  = 225
+       SYS_DELETE                    = 226
+       SYS_COPYFILE                  = 227
+       SYS_POLL                      = 230
+       SYS_WATCHEVENT                = 231
+       SYS_WAITEVENT                 = 232
+       SYS_MODWATCH                  = 233
+       SYS_GETXATTR                  = 234
+       SYS_FGETXATTR                 = 235
+       SYS_SETXATTR                  = 236
+       SYS_FSETXATTR                 = 237
+       SYS_REMOVEXATTR               = 238
+       SYS_FREMOVEXATTR              = 239
+       SYS_LISTXATTR                 = 240
+       SYS_FLISTXATTR                = 241
+       SYS_FSCTL                     = 242
+       SYS_INITGROUPS                = 243
+       SYS_POSIX_SPAWN               = 244
+       SYS_NFSCLNT                   = 247
+       SYS_FHOPEN                    = 248
+       SYS_MINHERIT                  = 250
+       SYS_SEMSYS                    = 251
+       SYS_MSGSYS                    = 252
+       SYS_SHMSYS                    = 253
+       SYS_SEMCTL                    = 254
+       SYS_SEMGET                    = 255
+       SYS_SEMOP                     = 256
+       SYS_MSGCTL                    = 258
+       SYS_MSGGET                    = 259
+       SYS_MSGSND                    = 260
+       SYS_MSGRCV                    = 261
+       SYS_SHMAT                     = 262
+       SYS_SHMCTL                    = 263
+       SYS_SHMDT                     = 264
+       SYS_SHMGET                    = 265
+       SYS_SHM_OPEN                  = 266
+       SYS_SHM_UNLINK                = 267
+       SYS_SEM_OPEN                  = 268
+       SYS_SEM_CLOSE                 = 269
+       SYS_SEM_UNLINK                = 270
+       SYS_SEM_WAIT                  = 271
+       SYS_SEM_TRYWAIT               = 272
+       SYS_SEM_POST                  = 273
+       SYS_SEM_GETVALUE              = 274
+       SYS_SEM_INIT                  = 275
+       SYS_SEM_DESTROY               = 276
+       SYS_OPEN_EXTENDED             = 277
+       SYS_UMASK_EXTENDED            = 278
+       SYS_STAT_EXTENDED             = 279
+       SYS_LSTAT_EXTENDED            = 280
+       SYS_FSTAT_EXTENDED            = 281
+       SYS_CHMOD_EXTENDED            = 282
+       SYS_FCHMOD_EXTENDED           = 283
+       SYS_ACCESS_EXTENDED           = 284
+       SYS_SETTID                    = 285
+       SYS_GETTID                    = 286
+       SYS_SETSGROUPS                = 287
+       SYS_GETSGROUPS                = 288
+       SYS_SETWGROUPS                = 289
+       SYS_GETWGROUPS                = 290
+       SYS_MKFIFO_EXTENDED           = 291
+       SYS_MKDIR_EXTENDED            = 292
+       SYS_IDENTITYSVC               = 293
+       SYS_SHARED_REGION_CHECK_NP    = 294
+       SYS_SHARED_REGION_MAP_NP      = 295
+       SYS___PTHREAD_MUTEX_DESTROY   = 301
+       SYS___PTHREAD_MUTEX_INIT      = 302
+       SYS___PTHREAD_MUTEX_LOCK      = 303
+       SYS___PTHREAD_MUTEX_TRYLOCK   = 304
+       SYS___PTHREAD_MUTEX_UNLOCK    = 305
+       SYS___PTHREAD_COND_INIT       = 306
+       SYS___PTHREAD_COND_DESTROY    = 307
+       SYS___PTHREAD_COND_BROADCAST  = 308
+       SYS___PTHREAD_COND_SIGNAL     = 309
+       SYS_GETSID                    = 310
+       SYS_SETTID_WITH_PID           = 311
+       SYS___PTHREAD_COND_TIMEDWAIT  = 312
+       SYS_AIO_FSYNC                 = 313
+       SYS_AIO_RETURN                = 314
+       SYS_AIO_SUSPEND               = 315
+       SYS_AIO_CANCEL                = 316
+       SYS_AIO_ERROR                 = 317
+       SYS_AIO_READ                  = 318
+       SYS_AIO_WRITE                 = 319
+       SYS_LIO_LISTIO                = 320
+       SYS___PTHREAD_COND_WAIT       = 321
+       SYS_IOPOLICYSYS               = 322
+       SYS_MLOCKALL                  = 324
+       SYS_MUNLOCKALL                = 325
+       SYS_ISSETUGID                 = 327
+       SYS___PTHREAD_KILL            = 328
+       SYS___PTHREAD_SIGMASK         = 329
+       SYS___SIGWAIT                 = 330
+       SYS___DISABLE_THREADSIGNAL    = 331
+       SYS___PTHREAD_MARKCANCEL      = 332
+       SYS___PTHREAD_CANCELED        = 333
+       SYS___SEMWAIT_SIGNAL          = 334
+       SYS_PROC_INFO                 = 336
+       SYS_SENDFILE                  = 337
+       SYS_STAT64                    = 338
+       SYS_FSTAT64                   = 339
+       SYS_LSTAT64                   = 340
+       SYS_STAT64_EXTENDED           = 341
+       SYS_LSTAT64_EXTENDED          = 342
+       SYS_FSTAT64_EXTENDED          = 343
+       SYS_GETDIRENTRIES64           = 344
+       SYS_STATFS64                  = 345
+       SYS_FSTATFS64                 = 346
+       SYS_GETFSSTAT64               = 347
+       SYS___PTHREAD_CHDIR           = 348
+       SYS___PTHREAD_FCHDIR          = 349
+       SYS_AUDIT                     = 350
+       SYS_AUDITON                   = 351
+       SYS_GETAUID                   = 353
+       SYS_SETAUID                   = 354
+       SYS_GETAUDIT                  = 355
+       SYS_SETAUDIT                  = 356
+       SYS_GETAUDIT_ADDR             = 357
+       SYS_SETAUDIT_ADDR             = 358
+       SYS_AUDITCTL                  = 359
+       SYS_BSDTHREAD_CREATE          = 360
+       SYS_BSDTHREAD_TERMINATE       = 361
+       SYS_KQUEUE                    = 362
+       SYS_KEVENT                    = 363
+       SYS_LCHOWN                    = 364
+       SYS_STACK_SNAPSHOT            = 365
+       SYS_BSDTHREAD_REGISTER        = 366
+       SYS_WORKQ_OPEN                = 367
+       SYS_WORKQ_OPS                 = 368
+       SYS___MAC_EXECVE              = 380
+       SYS___MAC_SYSCALL             = 381
+       SYS___MAC_GET_FILE            = 382
+       SYS___MAC_SET_FILE            = 383
+       SYS___MAC_GET_LINK            = 384
+       SYS___MAC_SET_LINK            = 385
+       SYS___MAC_GET_PROC            = 386
+       SYS___MAC_SET_PROC            = 387
+       SYS___MAC_GET_FD              = 388
+       SYS___MAC_SET_FD              = 389
+       SYS___MAC_GET_PID             = 390
+       SYS___MAC_GET_LCID            = 391
+       SYS___MAC_GET_LCTX            = 392
+       SYS___MAC_SET_LCTX            = 393
+       SYS_SETLCID                   = 394
+       SYS_GETLCID                   = 395
+       SYS_READ_NOCANCEL             = 396
+       SYS_WRITE_NOCANCEL            = 397
+       SYS_OPEN_NOCANCEL             = 398
+       SYS_CLOSE_NOCANCEL            = 399
+       SYS_WAIT4_NOCANCEL            = 400
+       SYS_RECVMSG_NOCANCEL          = 401
+       SYS_SENDMSG_NOCANCEL          = 402
+       SYS_RECVFROM_NOCANCEL         = 403
+       SYS_ACCEPT_NOCANCEL           = 404
+       SYS_MSYNC_NOCANCEL            = 405
+       SYS_FCNTL_NOCANCEL            = 406
+       SYS_SELECT_NOCANCEL           = 407
+       SYS_FSYNC_NOCANCEL            = 408
+       SYS_CONNECT_NOCANCEL          = 409
+       SYS_SIGSUSPEND_NOCANCEL       = 410
+       SYS_READV_NOCANCEL            = 411
+       SYS_WRITEV_NOCANCEL           = 412
+       SYS_SENDTO_NOCANCEL           = 413
+       SYS_PREAD_NOCANCEL            = 414
+       SYS_PWRITE_NOCANCEL           = 415
+       SYS_WAITID_NOCANCEL           = 416
+       SYS_POLL_NOCANCEL             = 417
+       SYS_MSGSND_NOCANCEL           = 418
+       SYS_MSGRCV_NOCANCEL           = 419
+       SYS_SEM_WAIT_NOCANCEL         = 420
+       SYS_AIO_SUSPEND_NOCANCEL      = 421
+       SYS___SIGWAIT_NOCANCEL        = 422
+       SYS___SEMWAIT_SIGNAL_NOCANCEL = 423
+       SYS___MAC_MOUNT               = 424
+       SYS___MAC_GET_MOUNT           = 425
+       SYS___MAC_GETFSSTAT           = 426
+       SYS_MAXSYSCALL                = 427
+)
diff --git a/src/syscall/ztypes_darwin_arm.go b/src/syscall/ztypes_darwin_arm.go
new file mode 100644 (file)
index 0000000..ec87f54
--- /dev/null
@@ -0,0 +1,447 @@
+// NOTE: cgo can't generate struct Stat_t and struct Statfs_t yet
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs types_darwin.go
+
+package syscall
+
+const (
+       sizeofPtr      = 0x4
+       sizeofShort    = 0x2
+       sizeofInt      = 0x4
+       sizeofLong     = 0x4
+       sizeofLongLong = 0x8
+)
+
+type (
+       _C_short     int16
+       _C_int       int32
+       _C_long      int32
+       _C_long_long int64
+)
+
+type Timespec struct {
+       Sec  int32
+       Nsec int32
+}
+
+type Timeval struct {
+       Sec  int32
+       Usec int32
+}
+
+type Timeval32 [0]byte
+
+type Rusage struct {
+       Utime    Timeval
+       Stime    Timeval
+       Maxrss   int32
+       Ixrss    int32
+       Idrss    int32
+       Isrss    int32
+       Minflt   int32
+       Majflt   int32
+       Nswap    int32
+       Inblock  int32
+       Oublock  int32
+       Msgsnd   int32
+       Msgrcv   int32
+       Nsignals int32
+       Nvcsw    int32
+       Nivcsw   int32
+}
+
+type Rlimit struct {
+       Cur uint64
+       Max uint64
+}
+
+type _Gid_t uint32
+
+type Stat_t struct {
+       Dev           int32
+       Mode          uint16
+       Nlink         uint16
+       Ino           uint64
+       Uid           uint32
+       Gid           uint32
+       Rdev          int32
+       Atimespec     Timespec
+       Mtimespec     Timespec
+       Ctimespec     Timespec
+       Birthtimespec Timespec
+       Size          int64
+       Blocks        int64
+       Blksize       int32
+       Flags         uint32
+       Gen           uint32
+       Lspare        int32
+       Qspare        [2]int64
+}
+
+type Statfs_t struct {
+       Bsize       uint32
+       Iosize      int32
+       Blocks      uint64
+       Bfree       uint64
+       Bavail      uint64
+       Files       uint64
+       Ffree       uint64
+       Fsid        Fsid
+       Owner       uint32
+       Type        uint32
+       Flags       uint32
+       Fssubtype   uint32
+       Fstypename  [16]int8
+       Mntonname   [1024]int8
+       Mntfromname [1024]int8
+       Reserved    [8]uint32
+}
+
+type Flock_t struct {
+       Start  int64
+       Len    int64
+       Pid    int32
+       Type   int16
+       Whence int16
+}
+
+type Fstore_t struct {
+       Flags      uint32
+       Posmode    int32
+       Offset     int64
+       Length     int64
+       Bytesalloc int64
+}
+
+type Radvisory_t struct {
+       Offset int64
+       Count  int32
+}
+
+type Fbootstraptransfer_t struct {
+       Offset int64
+       Length uint32
+       Buffer *byte
+}
+
+type Log2phys_t struct {
+       Flags       uint32
+       Contigbytes int64
+       Devoffset   int64
+}
+
+type Fsid struct {
+       Val [2]int32
+}
+
+type Dirent struct {
+       Ino       uint64
+       Seekoff   uint64
+       Reclen    uint16
+       Namlen    uint16
+       Type      uint8
+       Name      [1024]int8
+       Pad_cgo_0 [3]byte
+}
+
+type RawSockaddrInet4 struct {
+       Len    uint8
+       Family uint8
+       Port   uint16
+       Addr   [4]byte /* in_addr */
+       Zero   [8]int8
+}
+
+type RawSockaddrInet6 struct {
+       Len      uint8
+       Family   uint8
+       Port     uint16
+       Flowinfo uint32
+       Addr     [16]byte /* in6_addr */
+       Scope_id uint32
+}
+
+type RawSockaddrUnix struct {
+       Len    uint8
+       Family uint8
+       Path   [104]int8
+}
+
+type RawSockaddrDatalink struct {
+       Len    uint8
+       Family uint8
+       Index  uint16
+       Type   uint8
+       Nlen   uint8
+       Alen   uint8
+       Slen   uint8
+       Data   [12]int8
+}
+
+type RawSockaddr struct {
+       Len    uint8
+       Family uint8
+       Data   [14]int8
+}
+
+type RawSockaddrAny struct {
+       Addr RawSockaddr
+       Pad  [92]int8
+}
+
+type _Socklen uint32
+
+type Linger struct {
+       Onoff  int32
+       Linger int32
+}
+
+type Iovec struct {
+       Base *byte
+       Len  uint32
+}
+
+type IPMreq struct {
+       Multiaddr [4]byte /* in_addr */
+       Interface [4]byte /* in_addr */
+}
+
+type IPv6Mreq struct {
+       Multiaddr [16]byte /* in6_addr */
+       Interface uint32
+}
+
+type Msghdr struct {
+       Name       *byte
+       Namelen    uint32
+       Iov        *Iovec
+       Iovlen     int32
+       Control    *byte
+       Controllen uint32
+       Flags      int32
+}
+
+type Cmsghdr struct {
+       Len   uint32
+       Level int32
+       Type  int32
+}
+
+type Inet4Pktinfo struct {
+       Ifindex  uint32
+       Spec_dst [4]byte /* in_addr */
+       Addr     [4]byte /* in_addr */
+}
+
+type Inet6Pktinfo struct {
+       Addr    [16]byte /* in6_addr */
+       Ifindex uint32
+}
+
+type IPv6MTUInfo struct {
+       Addr RawSockaddrInet6
+       Mtu  uint32
+}
+
+type ICMPv6Filter struct {
+       Filt [8]uint32
+}
+
+const (
+       SizeofSockaddrInet4    = 0x10
+       SizeofSockaddrInet6    = 0x1c
+       SizeofSockaddrAny      = 0x6c
+       SizeofSockaddrUnix     = 0x6a
+       SizeofSockaddrDatalink = 0x14
+       SizeofLinger           = 0x8
+       SizeofIPMreq           = 0x8
+       SizeofIPv6Mreq         = 0x14
+       SizeofMsghdr           = 0x1c
+       SizeofCmsghdr          = 0xc
+       SizeofInet4Pktinfo     = 0xc
+       SizeofInet6Pktinfo     = 0x14
+       SizeofIPv6MTUInfo      = 0x20
+       SizeofICMPv6Filter     = 0x20
+)
+
+const (
+       PTRACE_TRACEME = 0x0
+       PTRACE_CONT    = 0x7
+       PTRACE_KILL    = 0x8
+)
+
+type Kevent_t struct {
+       Ident  uint32
+       Filter int16
+       Flags  uint16
+       Fflags uint32
+       Data   int32
+       Udata  *byte
+}
+
+type FdSet struct {
+       Bits [32]int32
+}
+
+const (
+       SizeofIfMsghdr    = 0x70
+       SizeofIfData      = 0x60
+       SizeofIfaMsghdr   = 0x14
+       SizeofIfmaMsghdr  = 0x10
+       SizeofIfmaMsghdr2 = 0x14
+       SizeofRtMsghdr    = 0x5c
+       SizeofRtMetrics   = 0x38
+)
+
+type IfMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Data      IfData
+}
+
+type IfData struct {
+       Type       uint8
+       Typelen    uint8
+       Physical   uint8
+       Addrlen    uint8
+       Hdrlen     uint8
+       Recvquota  uint8
+       Xmitquota  uint8
+       Unused1    uint8
+       Mtu        uint32
+       Metric     uint32
+       Baudrate   uint32
+       Ipackets   uint32
+       Ierrors    uint32
+       Opackets   uint32
+       Oerrors    uint32
+       Collisions uint32
+       Ibytes     uint32
+       Obytes     uint32
+       Imcasts    uint32
+       Omcasts    uint32
+       Iqdrops    uint32
+       Noproto    uint32
+       Recvtiming uint32
+       Xmittiming uint32
+       Lastchange Timeval
+       Unused2    uint32
+       Hwassist   uint32
+       Reserved1  uint32
+       Reserved2  uint32
+}
+
+type IfaMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Metric    int32
+}
+
+type IfmaMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Index     uint16
+       Pad_cgo_0 [2]byte
+}
+
+type IfmaMsghdr2 struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Refcount  int32
+}
+
+type RtMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Flags     int32
+       Addrs     int32
+       Pid       int32
+       Seq       int32
+       Errno     int32
+       Use       int32
+       Inits     uint32
+       Rmx       RtMetrics
+}
+
+type RtMetrics struct {
+       Locks    uint32
+       Mtu      uint32
+       Hopcount uint32
+       Expire   int32
+       Recvpipe uint32
+       Sendpipe uint32
+       Ssthresh uint32
+       Rtt      uint32
+       Rttvar   uint32
+       Pksent   uint32
+       Filler   [4]uint32
+}
+
+const (
+       SizeofBpfVersion = 0x4
+       SizeofBpfStat    = 0x8
+       SizeofBpfProgram = 0x8
+       SizeofBpfInsn    = 0x8
+       SizeofBpfHdr     = 0x14
+)
+
+type BpfVersion struct {
+       Major uint16
+       Minor uint16
+}
+
+type BpfStat struct {
+       Recv uint32
+       Drop uint32
+}
+
+type BpfProgram struct {
+       Len   uint32
+       Insns *BpfInsn
+}
+
+type BpfInsn struct {
+       Code uint16
+       Jt   uint8
+       Jf   uint8
+       K    uint32
+}
+
+type BpfHdr struct {
+       Tstamp    Timeval
+       Caplen    uint32
+       Datalen   uint32
+       Hdrlen    uint16
+       Pad_cgo_0 [2]byte
+}
+
+type Termios struct {
+       Iflag  uint32
+       Oflag  uint32
+       Cflag  uint32
+       Lflag  uint32
+       Cc     [20]uint8
+       Ispeed uint32
+       Ospeed uint32
+}