aboutsummaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2017-10-17 13:50:05 +0200
committerDmitry Vyukov <dvyukov@google.com>2017-10-17 13:50:05 +0200
commit3d5e81e280c27fbcfaa25603feeebec89672928d (patch)
tree8942b847cbde72912e0c2795f68fd788d2495618 /sys
parent766bfcfdd0158b0fe1acd1999b3249bef9a3aff4 (diff)
sys/freebsd: more syscall descriptions
This is mostly copied form linux. We probably need better support for sharing descriptions between multiple OSes. But there are lots of differences, so this is not trivial.
Diffstat (limited to 'sys')
-rw-r--r--sys/freebsd/amd64.go2415
-rw-r--r--sys/freebsd/init.go50
-rw-r--r--sys/freebsd/ipc.txt132
-rw-r--r--sys/freebsd/ipc_amd64.const49
-rw-r--r--sys/freebsd/posix_fs.txt72
-rw-r--r--sys/freebsd/posix_fs_amd64.const46
-rw-r--r--sys/freebsd/posix_mm.txt21
-rw-r--r--sys/freebsd/posix_mm_amd64.const30
-rw-r--r--sys/freebsd/socket.txt119
-rw-r--r--sys/freebsd/socket_amd64.const112
-rw-r--r--sys/freebsd/socket_inet.txt131
-rw-r--r--sys/freebsd/socket_inet6.txt127
-rw-r--r--sys/freebsd/socket_inet6_amd64.const79
-rw-r--r--sys/freebsd/socket_inet_amd64.const42
-rw-r--r--sys/freebsd/socket_inet_icmp.txt34
-rw-r--r--sys/freebsd/socket_inet_icmp_amd64.const13
-rw-r--r--sys/freebsd/socket_inet_tcp.txt59
-rw-r--r--sys/freebsd/socket_inet_tcp_amd64.const21
-rw-r--r--sys/freebsd/socket_inet_udp.txt30
-rw-r--r--sys/freebsd/socket_inet_udp_amd64.const9
-rw-r--r--sys/freebsd/socket_unix.txt80
-rw-r--r--sys/freebsd/socket_unix_amd64.const27
-rw-r--r--sys/freebsd/sys.txt414
-rw-r--r--sys/freebsd/sys_amd64.const216
-rw-r--r--sys/freebsd/vnet.txt75
-rw-r--r--sys/syz-extract/extract.go5
-rw-r--r--sys/syz-extract/freebsd.go13
27 files changed, 4397 insertions, 24 deletions
diff --git a/sys/freebsd/amd64.go b/sys/freebsd/amd64.go
index 81422e6c7..d863013bf 100644
--- a/sys/freebsd/amd64.go
+++ b/sys/freebsd/amd64.go
@@ -8,38 +8,2435 @@ func init() {
}
var resources_amd64 = []*ResourceDesc{
- {Name: "fd", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd"}, Values: []uint64{18446744073709551615}},
+ {Name: "fd", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
+ {Name: "fd_dir", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_dir"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
+ {Name: "gid", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"gid"}, Values: []uint64{0, 18446744073709551615}},
+ {Name: "ifindex", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"ifindex"}, Values: []uint64{0}},
+ {Name: "ipc", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"ipc"}, Values: []uint64{0, 18446744073709551615}},
+ {Name: "ipc_msq", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"ipc", "ipc_msq"}, Values: []uint64{0, 18446744073709551615}},
+ {Name: "ipc_sem", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"ipc", "ipc_sem"}, Values: []uint64{0, 18446744073709551615}},
+ {Name: "ipc_shm", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"ipc", "ipc_shm"}, Values: []uint64{0, 18446744073709551615}},
+ {Name: "pid", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"pid"}, Values: []uint64{0, 18446744073709551615}},
+ {Name: "shmaddr", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", TypeSize: 8}}}, Kind: []string{"shmaddr"}, Values: []uint64{0}},
+ {Name: "sock", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "sock"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
+ {Name: "sock_icmp", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "sock", "sock_in", "sock_icmp"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
+ {Name: "sock_icmp6", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "sock", "sock_in6", "sock_icmp6"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
+ {Name: "sock_in", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "sock", "sock_in"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
+ {Name: "sock_in6", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "sock", "sock_in6"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
+ {Name: "sock_tcp", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "sock", "sock_in", "sock_tcp"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
+ {Name: "sock_tcp6", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "sock", "sock_in6", "sock_tcp6"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
+ {Name: "sock_udp", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "sock", "sock_in", "sock_udp"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
+ {Name: "sock_udp6", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "sock", "sock_in6", "sock_udp6"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
+ {Name: "sock_unix", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "sock", "sock_unix"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
+ {Name: "uid", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"uid"}, Values: []uint64{0, 18446744073709551615}},
}
var structDescs_amd64 = []*KeyedStruct{
+ {Key: StructKey{Name: "cmsghdr"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "cmsghdr"}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "cmsg_len", TypeSize: 8}}, Buf: "parent"},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "cmsg_levels", FldName: "cmsg_level", TypeSize: 4}}, Vals: []uint64{65535, 1, 0, 6, 17, 41, 256, 257}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "cmsg_type", TypeSize: 4}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data"}},
+ }, AlignAttr: 8}},
+ {Key: StructKey{Name: "cmsghdr_un"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "cmsghdr_un"}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "cmsghdr_un_rights"}, FldName: "rights"},
+ &StructType{Key: StructKey{Name: "cmsghdr_un_cred"}, FldName: "cred"},
+ }}},
+ {Key: StructKey{Name: "cmsghdr_un_cred"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "cmsghdr_un_cred", TypeSize: 32}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 8}}, Buf: "parent"},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 4}}, Val: 65535},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 4}}, Val: 2},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "pid", FldName: "pid", TypeSize: 4}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "uid", FldName: "uid", TypeSize: 4}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "gid", FldName: "gid", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 4}}, IsPad: true},
+ }, AlignAttr: 8}},
+ {Key: StructKey{Name: "cmsghdr_un_rights"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "cmsghdr_un_rights"}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 8}}, Buf: "parent"},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 4}}, Val: 65535},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 4}}, Val: 1},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "fds"}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", TypeSize: 4}}},
+ }, AlignAttr: 8}},
+ {Key: StructKey{Name: "fd_set", Dir: 2}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fd_set", TypeSize: 64, ArgDir: 2}, Fields: []Type{
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "mask0", TypeSize: 8, ArgDir: 2}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "mask1", TypeSize: 8, ArgDir: 2}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "mask2", TypeSize: 8, ArgDir: 2}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "mask3", TypeSize: 8, ArgDir: 2}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "mask4", TypeSize: 8, ArgDir: 2}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "mask5", TypeSize: 8, ArgDir: 2}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "mask6", TypeSize: 8, ArgDir: 2}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "mask7", TypeSize: 8, ArgDir: 2}}},
+ }}},
+ {Key: StructKey{Name: "flock"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "flock", TypeSize: 32}, Fields: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "flock_type", FldName: "type", TypeSize: 2}}, Vals: []uint64{1, 3, 2}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "seek_whence", FldName: "whence", TypeSize: 2}}, Vals: []uint64{0, 1, 2, 3, 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 4}}, IsPad: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "start", TypeSize: 8}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "len", TypeSize: 8}}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "pid", FldName: "pid", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 4}}, IsPad: true},
+ }}},
+ {Key: StructKey{Name: "group_req_in"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "group_req_in", TypeSize: 144}, Fields: []Type{
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "gr_interface", TypeSize: 4}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 4}}, IsPad: true},
+ &StructType{Key: StructKey{Name: "sockaddr_storage_in"}, FldName: "gr_group"},
+ }}},
+ {Key: StructKey{Name: "group_req_in6"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "group_req_in6", TypeSize: 136}, Fields: []Type{
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "gr_interface", TypeSize: 4}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 4}}, IsPad: true},
+ &StructType{Key: StructKey{Name: "sockaddr_storage_in6"}, FldName: "gr_group"},
+ }}},
+ {Key: StructKey{Name: "group_source_req_in"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "group_source_req_in", TypeSize: 280}, Fields: []Type{
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "gsr_interface", TypeSize: 4}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 4}}, IsPad: true},
+ &StructType{Key: StructKey{Name: "sockaddr_storage_in"}, FldName: "gsr_group"},
+ &StructType{Key: StructKey{Name: "sockaddr_storage_in"}, FldName: "gsr_source"},
+ }}},
+ {Key: StructKey{Name: "group_source_req_in6"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "group_source_req_in6", TypeSize: 264}, Fields: []Type{
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "gsr_interface", TypeSize: 4}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 4}}, IsPad: true},
+ &StructType{Key: StructKey{Name: "sockaddr_storage_in6"}, FldName: "gsr_group"},
+ &StructType{Key: StructKey{Name: "sockaddr_storage_in6"}, FldName: "gsr_source"},
+ }}},
+ {Key: StructKey{Name: "icmp6_pair", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "icmp6_pair", TypeSize: 8, ArgDir: 1}, Fields: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_icmp6", FldName: "f0", TypeSize: 4, ArgDir: 1}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_icmp6", FldName: "f1", TypeSize: 4, ArgDir: 1}},
+ }}},
+ {Key: StructKey{Name: "icmp_pair", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "icmp_pair", TypeSize: 8, ArgDir: 1}, Fields: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_icmp", FldName: "f0", TypeSize: 4, ArgDir: 1}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_icmp", FldName: "f1", TypeSize: 4, ArgDir: 1}},
+ }}},
+ {Key: StructKey{Name: "in6_pktinfo"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "in6_pktinfo", TypeSize: 20}, Fields: []Type{
+ &UnionType{Key: StructKey{Name: "ipv6_addr"}, FldName: "ipi6_addr"},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex", FldName: "ipi6_ifindex", TypeSize: 4}},
+ }}},
+ {Key: StructKey{Name: "iovec_in"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "iovec_in", TypeSize: 16}, Fields: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "addr", TypeSize: 8}, Type: &BufferType{}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 8}}, Buf: "addr"},
+ }}},
+ {Key: StructKey{Name: "iovec_out"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "iovec_out", TypeSize: 16}, Fields: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "addr", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{ArgDir: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 8}}, Buf: "addr"},
+ }}},
+ {Key: StructKey{Name: "ip_mreq"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ip_mreq", TypeSize: 8}, Fields: []Type{
+ &UnionType{Key: StructKey{Name: "ipv4_addr"}, FldName: "imr_multiaddr"},
+ &UnionType{Key: StructKey{Name: "ipv4_addr"}, FldName: "imr_interface"},
+ }}},
+ {Key: StructKey{Name: "ip_mreq", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ip_mreq", TypeSize: 8, ArgDir: 1}, Fields: []Type{
+ &UnionType{Key: StructKey{Name: "ipv4_addr", Dir: 1}, FldName: "imr_multiaddr"},
+ &UnionType{Key: StructKey{Name: "ipv4_addr", Dir: 1}, FldName: "imr_interface"},
+ }}},
+ {Key: StructKey{Name: "ip_mreq_source"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ip_mreq_source", TypeSize: 12}, Fields: []Type{
+ &UnionType{Key: StructKey{Name: "ipv4_addr"}, FldName: "imr_multiaddr"},
+ &UnionType{Key: StructKey{Name: "ipv4_addr"}, FldName: "imr_interface"},
+ &UnionType{Key: StructKey{Name: "ipv4_addr"}, FldName: "imr_sourceaddr"},
+ }}},
+ {Key: StructKey{Name: "ip_mreq_source", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ip_mreq_source", TypeSize: 12, ArgDir: 1}, Fields: []Type{
+ &UnionType{Key: StructKey{Name: "ipv4_addr", Dir: 1}, FldName: "imr_multiaddr"},
+ &UnionType{Key: StructKey{Name: "ipv4_addr", Dir: 1}, FldName: "imr_interface"},
+ &UnionType{Key: StructKey{Name: "ipv4_addr", Dir: 1}, FldName: "imr_sourceaddr"},
+ }}},
+ {Key: StructKey{Name: "ip_mreqn"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ip_mreqn", TypeSize: 12}, Fields: []Type{
+ &UnionType{Key: StructKey{Name: "ipv4_addr"}, FldName: "imr_multiaddr"},
+ &UnionType{Key: StructKey{Name: "ipv4_addr"}, FldName: "imr_address"},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex", FldName: "imr_ifindex", TypeSize: 4}},
+ }}},
+ {Key: StructKey{Name: "ip_mreqn", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ip_mreqn", TypeSize: 12, ArgDir: 1}, Fields: []Type{
+ &UnionType{Key: StructKey{Name: "ipv4_addr", Dir: 1}, FldName: "imr_multiaddr"},
+ &UnionType{Key: StructKey{Name: "ipv4_addr", Dir: 1}, FldName: "imr_address"},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex", FldName: "imr_ifindex", TypeSize: 4, ArgDir: 1}},
+ }}},
+ {Key: StructKey{Name: "ip_msfilter"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ip_msfilter"}, Fields: []Type{
+ &UnionType{Key: StructKey{Name: "ipv4_addr"}, FldName: "imsf_multiaddr"},
+ &UnionType{Key: StructKey{Name: "ipv4_addr"}, FldName: "imsf_interface"},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ip_msfilter_mode", FldName: "imsf_fmode", TypeSize: 4}}, Vals: []uint64{1, 2}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "imsf_numsrc", TypeSize: 4}}, Buf: "imsf_slist"},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "imsf_slist"}, Type: &UnionType{Key: StructKey{Name: "ipv4_addr"}}},
+ }}},
+ {Key: StructKey{Name: "ipc_perm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipc_perm", TypeSize: 48}, Fields: []Type{
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "key", TypeSize: 4}}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "uid", FldName: "uid", TypeSize: 4}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "gid", FldName: "gid", TypeSize: 4}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "uid", FldName: "cuid", TypeSize: 4}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "gid", FldName: "cgid", TypeSize: 4}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "open_mode", FldName: "mode", TypeSize: 4}}, Vals: []uint64{256, 128, 64, 32, 16, 8, 4, 2, 1}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "seq", TypeSize: 2}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "pad0", TypeSize: 2}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 4}}, IsPad: true},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "pad1", TypeSize: 8}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "pad2", TypeSize: 8}}},
+ }}},
+ {Key: StructKey{Name: "ipv4_addr"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv4_addr", TypeSize: 4}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "empty", TypeSize: 4}, BigEndian: true}},
+ &StructType{Key: StructKey{Name: "ipv4_addr_local"}, FldName: "local"},
+ &StructType{Key: StructKey{Name: "ipv4_addr_remote"}, FldName: "remote"},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "loopback", TypeSize: 4}, BigEndian: true}, Val: 2130706433},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "multicast1", TypeSize: 4}, BigEndian: true}, Val: 3758096385},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "multicast2", TypeSize: 4}, BigEndian: true}, Val: 3758096386},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "broadcast", TypeSize: 4}, BigEndian: true}, Val: 4294967295},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32be", FldName: "rand_addr", TypeSize: 4}, BigEndian: true}},
+ }}},
+ {Key: StructKey{Name: "ipv4_addr", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv4_addr", TypeSize: 4, ArgDir: 1}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "empty", TypeSize: 4, ArgDir: 1}, BigEndian: true}},
+ &StructType{Key: StructKey{Name: "ipv4_addr_local", Dir: 1}, FldName: "local"},
+ &StructType{Key: StructKey{Name: "ipv4_addr_remote", Dir: 1}, FldName: "remote"},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "loopback", TypeSize: 4, ArgDir: 1}, BigEndian: true}, Val: 2130706433},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "multicast1", TypeSize: 4, ArgDir: 1}, BigEndian: true}, Val: 3758096385},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "multicast2", TypeSize: 4, ArgDir: 1}, BigEndian: true}, Val: 3758096386},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "broadcast", TypeSize: 4, ArgDir: 1}, BigEndian: true}, Val: 4294967295},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32be", FldName: "rand_addr", TypeSize: 4, ArgDir: 1}, BigEndian: true}},
+ }}},
+ {Key: StructKey{Name: "ipv4_addr_local"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv4_addr_local", TypeSize: 4}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a0", TypeSize: 1}}, Val: 172},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a1", TypeSize: 1}}, Val: 20},
+ &ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "a2", TypeSize: 1}}, ValuesPerProc: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a3", TypeSize: 1}}, Val: 170},
+ }}},
+ {Key: StructKey{Name: "ipv4_addr_local", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv4_addr_local", TypeSize: 4, ArgDir: 1}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a0", TypeSize: 1, ArgDir: 1}}, Val: 172},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a1", TypeSize: 1, ArgDir: 1}}, Val: 20},
+ &ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "a2", TypeSize: 1, ArgDir: 1}}, ValuesPerProc: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a3", TypeSize: 1, ArgDir: 1}}, Val: 170},
+ }}},
+ {Key: StructKey{Name: "ipv4_addr_remote"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv4_addr_remote", TypeSize: 4}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a0", TypeSize: 1}}, Val: 172},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a1", TypeSize: 1}}, Val: 20},
+ &ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "a2", TypeSize: 1}}, ValuesPerProc: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a3", TypeSize: 1}}, Val: 187},
+ }}},
+ {Key: StructKey{Name: "ipv4_addr_remote", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv4_addr_remote", TypeSize: 4, ArgDir: 1}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a0", TypeSize: 1, ArgDir: 1}}, Val: 172},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a1", TypeSize: 1, ArgDir: 1}}, Val: 20},
+ &ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "a2", TypeSize: 1, ArgDir: 1}}, ValuesPerProc: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a3", TypeSize: 1, ArgDir: 1}}, Val: 187},
+ }}},
+ {Key: StructKey{Name: "ipv6_addr"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_addr", TypeSize: 16}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "ipv6_addr_empty"}, FldName: "empty"},
+ &StructType{Key: StructKey{Name: "ipv6_addr_local"}, FldName: "local"},
+ &StructType{Key: StructKey{Name: "ipv6_addr_remote"}, FldName: "remote"},
+ &StructType{Key: StructKey{Name: "ipv6_addr_loopback"}, FldName: "loopback"},
+ }}},
+ {Key: StructKey{Name: "ipv6_addr", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_addr", TypeSize: 16, ArgDir: 1}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "ipv6_addr_empty", Dir: 1}, FldName: "empty"},
+ &StructType{Key: StructKey{Name: "ipv6_addr_local", Dir: 1}, FldName: "local"},
+ &StructType{Key: StructKey{Name: "ipv6_addr_remote", Dir: 1}, FldName: "remote"},
+ &StructType{Key: StructKey{Name: "ipv6_addr_loopback", Dir: 1}, FldName: "loopback"},
+ }}},
+ {Key: StructKey{Name: "ipv6_addr_empty"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_addr_empty", TypeSize: 16}, Fields: []Type{
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "a0", TypeSize: 16}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}}, Kind: 1, RangeBegin: 16, RangeEnd: 16},
+ }}},
+ {Key: StructKey{Name: "ipv6_addr_empty", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_addr_empty", TypeSize: 16, ArgDir: 1}, Fields: []Type{
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "a0", TypeSize: 16, ArgDir: 1}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1, ArgDir: 1}}}, Kind: 1, RangeBegin: 16, RangeEnd: 16},
+ }}},
+ {Key: StructKey{Name: "ipv6_addr_local"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_addr_local", TypeSize: 16}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a0", TypeSize: 1}}, Val: 254},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a1", TypeSize: 1}}, Val: 128},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "a2", TypeSize: 12}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}}, Kind: 1, RangeBegin: 12, RangeEnd: 12},
+ &ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "a3", TypeSize: 1}}, ValuesPerProc: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a4", TypeSize: 1}}, Val: 170},
+ }}},
+ {Key: StructKey{Name: "ipv6_addr_local", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_addr_local", TypeSize: 16, ArgDir: 1}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a0", TypeSize: 1, ArgDir: 1}}, Val: 254},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a1", TypeSize: 1, ArgDir: 1}}, Val: 128},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "a2", TypeSize: 12, ArgDir: 1}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1, ArgDir: 1}}}, Kind: 1, RangeBegin: 12, RangeEnd: 12},
+ &ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "a3", TypeSize: 1, ArgDir: 1}}, ValuesPerProc: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a4", TypeSize: 1, ArgDir: 1}}, Val: 170},
+ }}},
+ {Key: StructKey{Name: "ipv6_addr_loopback"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_addr_loopback", TypeSize: 16}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a0", TypeSize: 8}, BigEndian: true}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a1", TypeSize: 8}, BigEndian: true}, Val: 1},
+ }}},
+ {Key: StructKey{Name: "ipv6_addr_loopback", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_addr_loopback", TypeSize: 16, ArgDir: 1}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a0", TypeSize: 8, ArgDir: 1}, BigEndian: true}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a1", TypeSize: 8, ArgDir: 1}, BigEndian: true}, Val: 1},
+ }}},
+ {Key: StructKey{Name: "ipv6_addr_remote"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_addr_remote", TypeSize: 16}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a0", TypeSize: 1}}, Val: 254},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a1", TypeSize: 1}}, Val: 128},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "a2", TypeSize: 12}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}}, Kind: 1, RangeBegin: 12, RangeEnd: 12},
+ &ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "a3", TypeSize: 1}}, ValuesPerProc: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a4", TypeSize: 1}}, Val: 187},
+ }}},
+ {Key: StructKey{Name: "ipv6_addr_remote", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_addr_remote", TypeSize: 16, ArgDir: 1}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a0", TypeSize: 1, ArgDir: 1}}, Val: 254},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a1", TypeSize: 1, ArgDir: 1}}, Val: 128},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "a2", TypeSize: 12, ArgDir: 1}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1, ArgDir: 1}}}, Kind: 1, RangeBegin: 12, RangeEnd: 12},
+ &ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "a3", TypeSize: 1, ArgDir: 1}}, ValuesPerProc: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a4", TypeSize: 1, ArgDir: 1}}, Val: 187},
+ }}},
+ {Key: StructKey{Name: "itimerval"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "itimerval", TypeSize: 32}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "timeval"}, FldName: "interv"},
+ &StructType{Key: StructKey{Name: "timeval"}, FldName: "value"},
+ }}},
+ {Key: StructKey{Name: "itimerval", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "itimerval", TypeSize: 32, ArgDir: 1}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "timeval", Dir: 1}, FldName: "interv"},
+ &StructType{Key: StructKey{Name: "timeval", Dir: 1}, FldName: "value"},
+ }}},
+ {Key: StructKey{Name: "linger"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "linger", TypeSize: 8}, Fields: []Type{
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "onoff", TypeSize: 4}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "linger", TypeSize: 4}}},
+ }}},
+ {Key: StructKey{Name: "linger", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "linger", TypeSize: 8, ArgDir: 1}, Fields: []Type{
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "onoff", TypeSize: 4, ArgDir: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "linger", TypeSize: 4, ArgDir: 1}}},
+ }}},
+ {Key: StructKey{Name: "mf6cctl"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mf6cctl", TypeSize: 92}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "sockaddr_in6"}, FldName: "mf6cc_origin"},
+ &StructType{Key: StructKey{Name: "sockaddr_in6"}, FldName: "mf6cc_mcastgrp"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "mf6cc_parent", TypeSize: 2}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 2}}, IsPad: true},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "mf6cc_ifset", TypeSize: 32}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: 1, RangeBegin: 8, RangeEnd: 8},
+ }}},
+ {Key: StructKey{Name: "mif6ctl"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mif6ctl", TypeSize: 12}, Fields: []Type{
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "mif6c_mifi", TypeSize: 2}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mif6c_flags", FldName: "mif6c_flags", TypeSize: 1}}, Vals: []uint64{1}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "vifc_threshold", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "mif6c_pifi", TypeSize: 2}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 2}}, IsPad: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "vifc_rate_limit", TypeSize: 4}}},
+ }}},
+ {Key: StructKey{Name: "msgbuf"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "msgbuf"}, Fields: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "msgbuf_type", FldName: "typ", TypeSize: 8}}, Vals: []uint64{0, 1, 2, 3}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data"}},
+ }}},
+ {Key: StructKey{Name: "msgbuf", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "msgbuf", ArgDir: 1}, Fields: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "msgbuf_type", FldName: "typ", TypeSize: 8, ArgDir: 1}}, Vals: []uint64{0, 1, 2, 3}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", ArgDir: 1}},
+ }}},
+ {Key: StructKey{Name: "msghdr_un"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "msghdr_un", TypeSize: 56}, Fields: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 8}, Type: &UnionType{Key: StructKey{Name: "sockaddr_un"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "addrlen", TypeSize: 4}}, Buf: "addr"},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 4}}, IsPad: true},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "vec", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array"}, Type: &StructType{Key: StructKey{Name: "iovec_in"}}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "vlen", TypeSize: 8}}, Buf: "vec"},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "ctrl", TypeSize: 8, IsOptional: true}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array"}, Type: &UnionType{Key: StructKey{Name: "cmsghdr_un"}}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "ctrllen", TypeSize: 8}}, Buf: "ctrl"},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "send_flags", FldName: "f", TypeSize: 4}}, Vals: []uint64{2048, 4, 128, 8, 131072, 1}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 4}}, IsPad: true},
+ }}},
+ {Key: StructKey{Name: "msqid_ds"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "msqid_ds", TypeSize: 120}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "ipc_perm"}, FldName: "perm"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "stime", TypeSize: 8}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "rtime", TypeSize: 8}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "ctime", TypeSize: 8}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "cbytes", TypeSize: 8}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "qnum", TypeSize: 8}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "qbytes", TypeSize: 8}}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "pid", FldName: "lspid", TypeSize: 4}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "pid", FldName: "lrpid", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "pad0", TypeSize: 8}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "pad1", TypeSize: 8}}},
+ }}},
{Key: StructKey{Name: "pipefd", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "pipefd", TypeSize: 8, ArgDir: 1}, Fields: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "rfd", TypeSize: 4, ArgDir: 1}},
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "wfd", TypeSize: 4, ArgDir: 1}},
}}},
+ {Key: StructKey{Name: "pollfd"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "pollfd", TypeSize: 8}, Fields: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pollfd_events", FldName: "events", TypeSize: 2}}, Vals: []uint64{1, 2, 4, 8, 16, 32, 64, 128, 4, 256}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "revents", TypeSize: 2}}},
+ }}},
+ {Key: StructKey{Name: "recv_msghdr"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "recv_msghdr", TypeSize: 56}, Fields: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "msg_name", TypeSize: 8, IsOptional: true}, Type: &UnionType{Key: StructKey{Name: "sockaddr_storage", Dir: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "msg_namelen", TypeSize: 4}}, Buf: "msg_name"},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 4}}, IsPad: true},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "msg_iov", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array"}, Type: &StructType{Key: StructKey{Name: "iovec_out"}}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "msg_iovlen", TypeSize: 8}}, Buf: "msg_iov"},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "msg_control", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{ArgDir: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "msg_controllen", TypeSize: 8}}, Buf: "msg_control"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "msg_flags", TypeSize: 4}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 4}}, IsPad: true},
+ }}},
+ {Key: StructKey{Name: "rlimit"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "rlimit", TypeSize: 16}, Fields: []Type{
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "soft", TypeSize: 8}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "hard", TypeSize: 8}}},
+ }}},
+ {Key: StructKey{Name: "rlimit", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "rlimit", TypeSize: 16, ArgDir: 1}, Fields: []Type{
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "soft", TypeSize: 8, ArgDir: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "hard", TypeSize: 8, ArgDir: 1}}},
+ }}},
+ {Key: StructKey{Name: "rusage", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "rusage", TypeSize: 144, ArgDir: 1}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "timeval", Dir: 1}, FldName: "utime"},
+ &StructType{Key: StructKey{Name: "timeval", Dir: 1}, FldName: "stime"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "maxrss", TypeSize: 8, ArgDir: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "ixrss", TypeSize: 8, ArgDir: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "idrss", TypeSize: 8, ArgDir: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "isrss", TypeSize: 8, ArgDir: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "minflt", TypeSize: 8, ArgDir: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "majflt", TypeSize: 8, ArgDir: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "nswap", TypeSize: 8, ArgDir: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "inblock", TypeSize: 8, ArgDir: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "oublock", TypeSize: 8, ArgDir: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "msgsnd", TypeSize: 8, ArgDir: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "msgrcv", TypeSize: 8, ArgDir: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "signals", TypeSize: 8, ArgDir: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "nvcsw", TypeSize: 8, ArgDir: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "nivcsw", TypeSize: 8, ArgDir: 1}}},
+ }}},
+ {Key: StructKey{Name: "sembuf"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sembuf", TypeSize: 6}, Fields: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sem_sem_id", FldName: "num", TypeSize: 2}}, Vals: []uint64{0, 1, 2, 3, 4}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "op", TypeSize: 2}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "semop_flags", FldName: "flg", TypeSize: 2}}, Vals: []uint64{2048, 4096}},
+ }}},
+ {Key: StructKey{Name: "semid_ds"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "semid_ds", TypeSize: 88}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "ipc_perm"}, FldName: "perm"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "otime", TypeSize: 8}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "ctime", TypeSize: 8}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "nsems", TypeSize: 8}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "pad0", TypeSize: 8}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "pad1", TypeSize: 8}}},
+ }}},
+ {Key: StructKey{Name: "send_msghdr"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "send_msghdr", TypeSize: 56}, Fields: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "msg_name", TypeSize: 8, IsOptional: true}, Type: &UnionType{Key: StructKey{Name: "sockaddr_storage"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "msg_namelen", TypeSize: 4}}, Buf: "msg_name"},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 4}}, IsPad: true},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "msg_iov", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array"}, Type: &StructType{Key: StructKey{Name: "iovec_in"}}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "msg_iovlen", TypeSize: 8}}, Buf: "msg_iov"},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "msg_control", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array"}, Type: &StructType{Key: StructKey{Name: "cmsghdr"}}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "msg_controllen", TypeSize: 8}}, Buf: "msg_control"},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "send_flags", FldName: "msg_flags", TypeSize: 4}}, Vals: []uint64{2048, 4, 128, 8, 131072, 1}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 4}}, IsPad: true},
+ }}},
+ {Key: StructKey{Name: "shmid_ds"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "shmid_ds", TypeSize: 112}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "ipc_perm"}, FldName: "perm"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "segsz", TypeSize: 4}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 4}}, IsPad: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "atime", TypeSize: 8}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "dtime", TypeSize: 8}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "ctime", TypeSize: 8}}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "pid", FldName: "cpid", TypeSize: 4}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "pid", FldName: "lpid", TypeSize: 4}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "nattch", TypeSize: 2}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "unused0", TypeSize: 2}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 4}}, IsPad: true},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "unused1", TypeSize: 8}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "unused2", TypeSize: 8}}},
+ }}},
+ {Key: StructKey{Name: "sigset"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sigset", TypeSize: 8}, Fields: []Type{
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "mask", TypeSize: 8}}},
+ }}},
+ {Key: StructKey{Name: "sock_in6_pair", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sock_in6_pair", TypeSize: 8, ArgDir: 1}, Fields: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in6", FldName: "f0", TypeSize: 4, ArgDir: 1}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in6", FldName: "f1", TypeSize: 4, ArgDir: 1}},
+ }}},
+ {Key: StructKey{Name: "sock_in_pair", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sock_in_pair", TypeSize: 8, ArgDir: 1}, Fields: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in", FldName: "f0", TypeSize: 4, ArgDir: 1}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in", FldName: "f1", TypeSize: 4, ArgDir: 1}},
+ }}},
+ {Key: StructKey{Name: "sockaddr_in"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sockaddr_in", TypeSize: 16}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "family", TypeSize: 2}}, Val: 2},
+ &ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "port", TypeSize: 2}, BigEndian: true}, ValuesStart: 20000, ValuesPerProc: 4},
+ &UnionType{Key: StructKey{Name: "ipv4_addr"}, FldName: "addr"},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "pad", TypeSize: 8}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}}, Kind: 1, RangeBegin: 8, RangeEnd: 8},
+ }}},
+ {Key: StructKey{Name: "sockaddr_in", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sockaddr_in", TypeSize: 16, ArgDir: 1}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "family", TypeSize: 2, ArgDir: 1}}, Val: 2},
+ &ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "port", TypeSize: 2, ArgDir: 1}, BigEndian: true}, ValuesStart: 20000, ValuesPerProc: 4},
+ &UnionType{Key: StructKey{Name: "ipv4_addr", Dir: 1}, FldName: "addr"},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "pad", TypeSize: 8, ArgDir: 1}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1, ArgDir: 1}}}, Kind: 1, RangeBegin: 8, RangeEnd: 8},
+ }}},
+ {Key: StructKey{Name: "sockaddr_in6"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sockaddr_in6", TypeSize: 28}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "family", TypeSize: 2}}, Val: 28},
+ &ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "port", TypeSize: 2}, BigEndian: true}, ValuesStart: 20000, ValuesPerProc: 4},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "flow", TypeSize: 4}}},
+ &UnionType{Key: StructKey{Name: "ipv6_addr"}, FldName: "addr"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "scope", TypeSize: 4}}},
+ }}},
+ {Key: StructKey{Name: "sockaddr_in6", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sockaddr_in6", TypeSize: 28, ArgDir: 1}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "family", TypeSize: 2, ArgDir: 1}}, Val: 28},
+ &ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "port", TypeSize: 2, ArgDir: 1}, BigEndian: true}, ValuesStart: 20000, ValuesPerProc: 4},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "flow", TypeSize: 4, ArgDir: 1}}},
+ &UnionType{Key: StructKey{Name: "ipv6_addr", Dir: 1}, FldName: "addr"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "scope", TypeSize: 4, ArgDir: 1}}},
+ }}},
+ {Key: StructKey{Name: "sockaddr_storage"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sockaddr_storage"}, Fields: []Type{
+ &UnionType{Key: StructKey{Name: "sockaddr_un"}, FldName: "un"},
+ &StructType{Key: StructKey{Name: "sockaddr_in"}, FldName: "in"},
+ &StructType{Key: StructKey{Name: "sockaddr_in6"}, FldName: "in6"},
+ }}},
+ {Key: StructKey{Name: "sockaddr_storage", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sockaddr_storage", ArgDir: 1}, Fields: []Type{
+ &UnionType{Key: StructKey{Name: "sockaddr_un", Dir: 1}, FldName: "un"},
+ &StructType{Key: StructKey{Name: "sockaddr_in", Dir: 1}, FldName: "in"},
+ &StructType{Key: StructKey{Name: "sockaddr_in6", Dir: 1}, FldName: "in6"},
+ }}},
+ {Key: StructKey{Name: "sockaddr_storage_in"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sockaddr_storage_in", TypeSize: 136}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "sockaddr_in"}, FldName: "addr"},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "pad", TypeSize: 120}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 8}}}, Kind: 1, RangeBegin: 15, RangeEnd: 15},
+ }}},
+ {Key: StructKey{Name: "sockaddr_storage_in6"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sockaddr_storage_in6", TypeSize: 128}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "sockaddr_in6"}, FldName: "addr"},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 4}}, IsPad: true},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "pad", TypeSize: 96}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 8}}}, Kind: 1, RangeBegin: 12, RangeEnd: 12},
+ }}},
+ {Key: StructKey{Name: "sockaddr_un"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sockaddr_un"}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "sockaddr_un_file"}, FldName: "file"},
+ &StructType{Key: StructKey{Name: "sockaddr_un_abstract"}, FldName: "abs"},
+ }}},
+ {Key: StructKey{Name: "sockaddr_un", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sockaddr_un", ArgDir: 1}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "sockaddr_un_file", Dir: 1}, FldName: "file"},
+ &StructType{Key: StructKey{Name: "sockaddr_un_abstract", Dir: 1}, FldName: "abs"},
+ }}},
+ {Key: StructKey{Name: "sockaddr_un_abstract"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sockaddr_un_abstract", TypeSize: 8}, Fields: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "unix_socket_family", FldName: "family", TypeSize: 2}}, Vals: []uint64{1, 0}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ind", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 1}}, IsPad: true},
+ &ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "id", TypeSize: 4}}, ValuesStart: 20000, ValuesPerProc: 4},
+ }}},
+ {Key: StructKey{Name: "sockaddr_un_abstract", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sockaddr_un_abstract", TypeSize: 8, ArgDir: 1}, Fields: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "unix_socket_family", FldName: "family", TypeSize: 2, ArgDir: 1}}, Vals: []uint64{1, 0}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ind", TypeSize: 1, ArgDir: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 1}}, IsPad: true},
+ &ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "id", TypeSize: 4, ArgDir: 1}}, ValuesStart: 20000, ValuesPerProc: 4},
+ }}},
+ {Key: StructKey{Name: "sockaddr_un_file"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sockaddr_un_file"}, Fields: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "unix_socket_family", FldName: "family", TypeSize: 2}}, Vals: []uint64{1, 0}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "filename", FldName: "path"}, Kind: 3},
+ }}},
+ {Key: StructKey{Name: "sockaddr_un_file", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sockaddr_un_file", ArgDir: 1}, Fields: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "unix_socket_family", FldName: "family", TypeSize: 2, ArgDir: 1}}, Vals: []uint64{1, 0}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "filename", FldName: "path", ArgDir: 1}, Kind: 3},
+ }}},
+ {Key: StructKey{Name: "stat", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "stat", TypeSize: 68, ArgDir: 1}, Fields: []Type{
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "dev", TypeSize: 2, ArgDir: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 2}}, IsPad: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "ino", TypeSize: 4, ArgDir: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "mode", TypeSize: 2, ArgDir: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "nlink", TypeSize: 2, ArgDir: 1}}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "uid", FldName: "uid", TypeSize: 4, ArgDir: 1}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "gid", FldName: "gid", TypeSize: 4, ArgDir: 1}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "rdev", TypeSize: 2, ArgDir: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 2}}, IsPad: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "size", TypeSize: 4, ArgDir: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "blksize", TypeSize: 4, ArgDir: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "blocks", TypeSize: 4, ArgDir: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "atime", TypeSize: 4, ArgDir: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "ansec", TypeSize: 4, ArgDir: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "mtime", TypeSize: 4, ArgDir: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "mnsec", TypeSize: 4, ArgDir: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "ctime", TypeSize: 4, ArgDir: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "cnsec", TypeSize: 4, ArgDir: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "pad1", TypeSize: 4, ArgDir: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "pad2", TypeSize: 4, ArgDir: 1}}},
+ }}},
+ {Key: StructKey{Name: "tcp6_pair", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp6_pair", TypeSize: 8, ArgDir: 1}, Fields: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_tcp6", FldName: "f0", TypeSize: 4, ArgDir: 1}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_tcp6", FldName: "f1", TypeSize: 4, ArgDir: 1}},
+ }}},
+ {Key: StructKey{Name: "tcp_pair", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_pair", TypeSize: 8, ArgDir: 1}, Fields: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_tcp", FldName: "f0", TypeSize: 4, ArgDir: 1}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_tcp", FldName: "f1", TypeSize: 4, ArgDir: 1}},
+ }}},
+ {Key: StructKey{Name: "timespec"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "timespec", TypeSize: 16}, Fields: []Type{
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "sec", TypeSize: 8}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "nsec", TypeSize: 8}}},
+ }}},
+ {Key: StructKey{Name: "timespec", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "timespec", TypeSize: 16, ArgDir: 1}, Fields: []Type{
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "sec", TypeSize: 8, ArgDir: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "nsec", TypeSize: 8, ArgDir: 1}}},
+ }}},
+ {Key: StructKey{Name: "timeval"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "timeval", TypeSize: 16}, Fields: []Type{
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "sec", TypeSize: 8}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "usec", TypeSize: 8}}},
+ }}},
+ {Key: StructKey{Name: "timeval", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "timeval", TypeSize: 16, ArgDir: 1}, Fields: []Type{
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "sec", TypeSize: 8, ArgDir: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "usec", TypeSize: 8, ArgDir: 1}}},
+ }}},
+ {Key: StructKey{Name: "timeval", Dir: 2}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "timeval", TypeSize: 16, ArgDir: 2}, Fields: []Type{
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "sec", TypeSize: 8, ArgDir: 2}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "usec", TypeSize: 8, ArgDir: 2}}},
+ }}},
+ {Key: StructKey{Name: "ucred"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ucred", TypeSize: 12}, Fields: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "pid", FldName: "pid", TypeSize: 4}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "uid", FldName: "uid", TypeSize: 4}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "gid", FldName: "gid", TypeSize: 4}},
+ }}},
+ {Key: StructKey{Name: "ucred", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ucred", TypeSize: 12, ArgDir: 1}, Fields: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "pid", FldName: "pid", TypeSize: 4, ArgDir: 1}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "uid", FldName: "uid", TypeSize: 4, ArgDir: 1}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "gid", FldName: "gid", TypeSize: 4, ArgDir: 1}},
+ }}},
+ {Key: StructKey{Name: "udp6_pair", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "udp6_pair", TypeSize: 8, ArgDir: 1}, Fields: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_udp6", FldName: "f0", TypeSize: 4, ArgDir: 1}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_udp6", FldName: "f1", TypeSize: 4, ArgDir: 1}},
+ }}},
+ {Key: StructKey{Name: "udp_pair", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_pair", TypeSize: 8, ArgDir: 1}, Fields: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_udp", FldName: "f0", TypeSize: 4, ArgDir: 1}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_udp", FldName: "f1", TypeSize: 4, ArgDir: 1}},
+ }}},
+ {Key: StructKey{Name: "unix_pair", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "unix_pair", TypeSize: 8, ArgDir: 1}, Fields: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_unix", FldName: "fd0", TypeSize: 4, ArgDir: 1}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_unix", FldName: "fd1", TypeSize: 4, ArgDir: 1}},
+ }}},
}
var syscalls_amd64 = []*Syscall{
- {NR: 477, Name: "mmap", CallName: "mmap", Args: []Type{
+ {NR: 30, Name: "accept", CallName: "accept", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "peer", TypeSize: 8, IsOptional: true}, Type: &UnionType{Key: StructKey{Name: "sockaddr_storage", Dir: 1}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "peerlen", TypeSize: 8}, Type: &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 4, ArgDir: 2}}, Buf: "peer"}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "sock", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 1, NR: 30, Name: "accept$inet", CallName: "accept", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "peer", TypeSize: 8, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "sockaddr_in", Dir: 1}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "peerlen", TypeSize: 8}, Type: &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 4, ArgDir: 2}}, Buf: "peer"}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 2, NR: 30, Name: "accept$inet6", CallName: "accept", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in6", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "peer", TypeSize: 8, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "sockaddr_in6", Dir: 1}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "peerlen", TypeSize: 8}, Type: &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 4, ArgDir: 2}}, Buf: "peer"}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in6", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 3, NR: 30, Name: "accept$unix", CallName: "accept", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_unix", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "peer", TypeSize: 8, IsOptional: true}, Type: &UnionType{Key: StructKey{Name: "sockaddr_un", Dir: 1}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "peerlen", TypeSize: 8}, Type: &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 4, ArgDir: 2}}, Buf: "peer"}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_unix", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 4, NR: 541, Name: "accept4", CallName: "accept4", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "peer", TypeSize: 8, IsOptional: true}, Type: &UnionType{Key: StructKey{Name: "sockaddr_storage", Dir: 1}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "peerlen", TypeSize: 8}, Type: &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 4, ArgDir: 2}}, Buf: "peer"}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "accept_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{536870912, 268435456}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "sock", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 5, NR: 541, Name: "accept4$inet", CallName: "accept4", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "peer", TypeSize: 8, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "sockaddr_in", Dir: 1}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "peerlen", TypeSize: 8}, Type: &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 4, ArgDir: 2}}, Buf: "peer"}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "accept_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{536870912, 268435456}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 6, NR: 541, Name: "accept4$inet6", CallName: "accept4", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in6", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "peer", TypeSize: 8, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "sockaddr_in6", Dir: 1}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "peerlen", TypeSize: 8}, Type: &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 4, ArgDir: 2}}, Buf: "peer"}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "accept_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{536870912, 268435456}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in6", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 7, NR: 541, Name: "accept4$unix", CallName: "accept4", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_unix", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "peer", TypeSize: 8, IsOptional: true}, Type: &UnionType{Key: StructKey{Name: "sockaddr_un", Dir: 1}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "peerlen", TypeSize: 8}, Type: &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 4, ArgDir: 2}}, Buf: "peer"}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "accept_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{536870912, 268435456}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_unix", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 8, NR: 104, Name: "bind", CallName: "bind", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 8}, Type: &UnionType{Key: StructKey{Name: "sockaddr_storage"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "addrlen", TypeSize: 8}}, Buf: "addr"},
+ }},
+ {ID: 9, NR: 104, Name: "bind$inet", CallName: "bind", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "sockaddr_in"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "addrlen", TypeSize: 8}}, Buf: "addr"},
+ }},
+ {ID: 10, NR: 104, Name: "bind$inet6", CallName: "bind", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in6", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "sockaddr_in6"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "addrlen", TypeSize: 8}}, Buf: "addr"},
+ }},
+ {ID: 11, NR: 104, Name: "bind$unix", CallName: "bind", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_unix", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 8}, Type: &UnionType{Key: StructKey{Name: "sockaddr_un"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "addrlen", TypeSize: 8}}, Buf: "addr"},
+ }},
+ {ID: 12, NR: 12, Name: "chdir", CallName: "chdir", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "dir", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename"}, Kind: 3}},
+ }},
+ {ID: 13, NR: 15, Name: "chmod", CallName: "chmod", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "file", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename"}, Kind: 3}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "open_mode", FldName: "mode", TypeSize: 8}}, Vals: []uint64{256, 128, 64, 32, 16, 8, 4, 2, 1}},
+ }},
+ {ID: 14, NR: 16, Name: "chown", CallName: "chown", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "file", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename"}, Kind: 3}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "uid", FldName: "uid", TypeSize: 4}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "gid", FldName: "gid", TypeSize: 4}},
+ }},
+ {ID: 15, NR: 61, Name: "chroot", CallName: "chroot", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "dir", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename"}, Kind: 3}},
+ }},
+ {ID: 16, NR: 234, Name: "clock_getres", CallName: "clock_getres", Args: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "clock_id", FldName: "id", TypeSize: 8}}, Vals: []uint64{0, 4, 15, 14}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "tp", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "timespec", Dir: 1}}},
+ }},
+ {ID: 17, NR: 232, Name: "clock_gettime", CallName: "clock_gettime", Args: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "clock_id", FldName: "id", TypeSize: 8}}, Vals: []uint64{0, 4, 15, 14}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "tp", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "timespec", Dir: 1}}},
+ }},
+ {ID: 18, NR: 244, Name: "clock_nanosleep", CallName: "clock_nanosleep", Args: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "clock_id", FldName: "id", TypeSize: 8}}, Vals: []uint64{0, 4, 15, 14}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "timer_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{0, 1}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rqtp", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "timespec"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rmtp", TypeSize: 8, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "timespec", Dir: 1}}},
+ }},
+ {ID: 19, NR: 233, Name: "clock_settime", CallName: "clock_settime", Args: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "clock_id", FldName: "id", TypeSize: 8}}, Vals: []uint64{0, 4, 15, 14}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "tp", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "timespec"}}},
+ }},
+ {ID: 20, NR: 6, Name: "close", CallName: "close", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
+ }},
+ {ID: 21, NR: 98, Name: "connect", CallName: "connect", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 8}, Type: &UnionType{Key: StructKey{Name: "sockaddr_storage"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "addrlen", TypeSize: 8}}, Buf: "addr"},
+ }},
+ {ID: 22, NR: 98, Name: "connect$inet", CallName: "connect", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "sockaddr_in"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "addrlen", TypeSize: 8}}, Buf: "addr"},
+ }},
+ {ID: 23, NR: 98, Name: "connect$inet6", CallName: "connect", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in6", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "sockaddr_in6"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "addrlen", TypeSize: 8}}, Buf: "addr"},
+ }},
+ {ID: 24, NR: 98, Name: "connect$unix", CallName: "connect", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_unix", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 8}, Type: &UnionType{Key: StructKey{Name: "sockaddr_un"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "addrlen", TypeSize: 8}}, Buf: "addr"},
+ }},
+ {ID: 25, NR: 41, Name: "dup", CallName: "dup", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "oldfd", TypeSize: 4}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 26, NR: 90, Name: "dup2", CallName: "dup2", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "oldfd", TypeSize: 4}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "newfd", TypeSize: 4}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 27, NR: 59, Name: "execve", CallName: "execve", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "file", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename"}, Kind: 3}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "argv", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array"}, Type: &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string"}, Kind: 2}}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "envp", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array"}, Type: &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string"}, Kind: 2}}}},
+ }},
+ {ID: 28, NR: 1, Name: "exit", CallName: "exit", Args: []Type{
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "code", TypeSize: 8}}},
+ }},
+ {ID: 29, NR: 489, Name: "faccessat", CallName: "faccessat", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_dir", FldName: "dirfd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "pathname", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename"}, Kind: 3}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "open_mode", FldName: "mode", TypeSize: 8}}, Vals: []uint64{256, 128, 64, 32, 16, 8, 4, 2, 1}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "faccessat_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{256, 512, 1024, 2048, 4096}},
+ }},
+ {ID: 30, NR: 13, Name: "fchdir", CallName: "fchdir", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
+ }},
+ {ID: 31, NR: 124, Name: "fchmod", CallName: "fchmod", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "open_mode", FldName: "mode", TypeSize: 8}}, Vals: []uint64{256, 128, 64, 32, 16, 8, 4, 2, 1}},
+ }},
+ {ID: 32, NR: 490, Name: "fchmodat", CallName: "fchmodat", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_dir", FldName: "dirfd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "file", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename"}, Kind: 3}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "open_mode", FldName: "mode", TypeSize: 8}}, Vals: []uint64{256, 128, 64, 32, 16, 8, 4, 2, 1}},
+ }},
+ {ID: 33, NR: 123, Name: "fchown", CallName: "fchown", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "uid", FldName: "uid", TypeSize: 4}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "gid", FldName: "gid", TypeSize: 4}},
+ }},
+ {ID: 34, NR: 491, Name: "fchownat", CallName: "fchownat", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_dir", FldName: "dirfd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "file", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename"}, Kind: 3}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "uid", FldName: "uid", TypeSize: 4}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "gid", FldName: "gid", TypeSize: 4}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "at_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{512, 1024}},
+ }},
+ {ID: 35, NR: 92, Name: "fcntl$dupfd", CallName: "fcntl", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "fcntl_dupfd", FldName: "cmd", TypeSize: 8}}, Vals: []uint64{0, 17}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "arg", TypeSize: 4}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 36, NR: 92, Name: "fcntl$getflags", CallName: "fcntl", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "fcntl_getflags", FldName: "cmd", TypeSize: 8}}, Vals: []uint64{1, 3}},
+ }},
+ {ID: 37, NR: 92, Name: "fcntl$getown", CallName: "fcntl", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 5},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "pid", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 38, NR: 92, Name: "fcntl$lock", CallName: "fcntl", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "fcntl_lock", FldName: "cmd", TypeSize: 8}}, Vals: []uint64{12, 13, 11}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "lock", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "flock"}}},
+ }},
+ {ID: 39, NR: 92, Name: "fcntl$setflags", CallName: "fcntl", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 2},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "fcntl_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{1}},
+ }},
+ {ID: 40, NR: 92, Name: "fcntl$setown", CallName: "fcntl", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 6},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "pid", FldName: "pid", TypeSize: 4}},
+ }},
+ {ID: 41, NR: 92, Name: "fcntl$setstatus", CallName: "fcntl", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 4},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "fcntl_status", FldName: "flags", TypeSize: 8}}, Vals: []uint64{8, 64, 65536, 4}},
+ }},
+ {ID: 42, NR: 550, Name: "fdatasync", CallName: "fdatasync", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
+ }},
+ {ID: 43, NR: 131, Name: "flock", CallName: "flock", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "flock_op", FldName: "op", TypeSize: 8}}, Vals: []uint64{1, 2, 8, 4}},
+ }},
+ {ID: 44, NR: 551, Name: "fstat", CallName: "fstat", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "statbuf", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "stat", Dir: 1}}},
+ }},
+ {ID: 45, NR: 95, Name: "fsync", CallName: "fsync", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
+ }},
+ {ID: 46, NR: 480, Name: "ftruncate", CallName: "ftruncate", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "len", TypeSize: 8}}},
+ }},
+ {ID: 47, NR: 494, Name: "futimesat", CallName: "futimesat", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_dir", FldName: "dir", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "pathname", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename"}, Kind: 3}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "times", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "itimerval"}}},
+ }},
+ {ID: 48, NR: 326, Name: "getcwd", CallName: "getcwd", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "buf", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{ArgDir: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "size", TypeSize: 8}}, Buf: "buf"},
+ }},
+ {ID: 49, NR: 272, Name: "getdents", CallName: "getdents", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_dir", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "ent", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{ArgDir: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "count", TypeSize: 8}}, Buf: "ent"},
+ }},
+ {ID: 50, NR: 43, Name: "getegid", CallName: "getegid", Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "gid", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 51, NR: 25, Name: "geteuid", CallName: "geteuid", Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "uid", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 52, NR: 47, Name: "getgid", CallName: "getgid", Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "gid", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 53, NR: 79, Name: "getgroups", CallName: "getgroups", Args: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "size", TypeSize: 8}}, Buf: "list"},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "list", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 2}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "gid", TypeSize: 4, ArgDir: 2}}}},
+ }},
+ {ID: 54, NR: 86, Name: "getitimer", CallName: "getitimer", Args: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "getitimer_which", FldName: "which", TypeSize: 8}}, Vals: []uint64{0, 1, 2}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "cur", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "itimerval", Dir: 1}}},
+ }},
+ {ID: 55, NR: 31, Name: "getpeername", CallName: "getpeername", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "peer", TypeSize: 8}, Type: &UnionType{Key: StructKey{Name: "sockaddr_storage", Dir: 1}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "peerlen", TypeSize: 8}, Type: &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 4, ArgDir: 2}}, Buf: "peer"}},
+ }},
+ {ID: 56, NR: 31, Name: "getpeername$inet", CallName: "getpeername", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "peer", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "sockaddr_in", Dir: 1}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "peerlen", TypeSize: 8}, Type: &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 4, ArgDir: 2}}, Buf: "peer"}},
+ }},
+ {ID: 57, NR: 31, Name: "getpeername$inet6", CallName: "getpeername", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in6", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "peer", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "sockaddr_in6", Dir: 1}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "peerlen", TypeSize: 8}, Type: &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 4, ArgDir: 2}}, Buf: "peer"}},
+ }},
+ {ID: 58, NR: 31, Name: "getpeername$unix", CallName: "getpeername", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_unix", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "peer", TypeSize: 8}, Type: &UnionType{Key: StructKey{Name: "sockaddr_un", Dir: 1}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "peerlen", TypeSize: 8}, Type: &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 4, ArgDir: 2}}, Buf: "peer"}},
+ }},
+ {ID: 59, NR: 207, Name: "getpgid", CallName: "getpgid", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "pid", FldName: "pid", TypeSize: 4}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "pid", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 60, NR: 81, Name: "getpgrp", CallName: "getpgrp", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "pid", FldName: "pid", TypeSize: 4}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "pid", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 61, NR: 20, Name: "getpid", CallName: "getpid", Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "pid", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 62, NR: 361, Name: "getresgid", CallName: "getresgid", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rgid", TypeSize: 8}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "gid", TypeSize: 4, ArgDir: 1}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "egid", TypeSize: 8}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "gid", TypeSize: 4, ArgDir: 1}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "sgid", TypeSize: 8}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "gid", TypeSize: 4, ArgDir: 1}}},
+ }},
+ {ID: 63, NR: 360, Name: "getresuid", CallName: "getresuid", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "ruid", TypeSize: 8}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "uid", TypeSize: 4, ArgDir: 1}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "euid", TypeSize: 8}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "uid", TypeSize: 4, ArgDir: 1}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "suid", TypeSize: 8}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "uid", TypeSize: 4, ArgDir: 1}}},
+ }},
+ {ID: 64, NR: 194, Name: "getrlimit", CallName: "getrlimit", Args: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "rlimit_type", FldName: "res", TypeSize: 8}}, Vals: []uint64{10, 4, 0, 2, 1, 6, 8, 7, 5, 3}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rlim", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "rlimit", Dir: 1}}},
+ }},
+ {ID: 65, NR: 117, Name: "getrusage", CallName: "getrusage", Args: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "rusage_who", FldName: "who", TypeSize: 8}}, Vals: []uint64{0, 18446744073709551615, 1}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "usage", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "rusage", Dir: 1}}},
+ }},
+ {ID: 66, NR: 32, Name: "getsockname", CallName: "getsockname", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 8}, Type: &UnionType{Key: StructKey{Name: "sockaddr_storage", Dir: 1}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "addrlen", TypeSize: 8}, Type: &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 4, ArgDir: 2}}, Buf: "addr"}},
+ }},
+ {ID: 67, NR: 32, Name: "getsockname$inet", CallName: "getsockname", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "sockaddr_in", Dir: 1}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "addrlen", TypeSize: 8}, Type: &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 4, ArgDir: 2}}, Buf: "addr"}},
+ }},
+ {ID: 68, NR: 32, Name: "getsockname$inet6", CallName: "getsockname", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in6", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "sockaddr_in6", Dir: 1}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "addrlen", TypeSize: 8}, Type: &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 4, ArgDir: 2}}, Buf: "addr"}},
+ }},
+ {ID: 69, NR: 32, Name: "getsockname$unix", CallName: "getsockname", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_unix", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 8}, Type: &UnionType{Key: StructKey{Name: "sockaddr_un", Dir: 1}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "addrlen", TypeSize: 8}, Type: &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 4, ArgDir: 2}}, Buf: "addr"}},
+ }},
+ {ID: 70, NR: 118, Name: "getsockopt", CallName: "getsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock", FldName: "fd", TypeSize: 4}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "level", TypeSize: 4}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "optname", TypeSize: 4}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "optval", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{ArgDir: 1}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optlen", TypeSize: 8}, Type: &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 4, ArgDir: 2}}, Buf: "optval"}},
+ }},
+ {ID: 71, NR: 118, Name: "getsockopt$SO_PEERCRED", CallName: "getsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}, Val: 65535},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "optname", TypeSize: 8}}, Val: 17},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optval", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "ucred", Dir: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "optlen", TypeSize: 8}}, Buf: "optval"},
+ }},
+ {ID: 72, NR: 118, Name: "getsockopt$inet6_buf", CallName: "getsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in6", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}, Val: 41},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "inet6_option_types_buf", FldName: "optname", TypeSize: 8}}, Vals: []uint64{25, 28, 80, 84, 85, 81, 82, 83, 46, 49, 35, 51, 50, 44, 102, 104, 105}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "optval", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{ArgDir: 1}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optlen", TypeSize: 8}, Type: &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 4, ArgDir: 2}}, Buf: "optval"}},
+ }},
+ {ID: 73, NR: 118, Name: "getsockopt$inet6_int", CallName: "getsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in6", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}, Val: 41},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "inet6_option_types_int", FldName: "optname", TypeSize: 8}}, Vals: []uint64{19, 22, 23, 24, 26, 20, 48, 4, 9, 10, 11, 27, 36, 37, 47, 39, 38, 40, 43, 62, 57, 61, 59, 72}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optval", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optlen", TypeSize: 8}, Type: &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 4, ArgDir: 2}}, Buf: "optval"}},
+ }},
+ {ID: 74, NR: 118, Name: "getsockopt$inet6_tcp_buf", CallName: "getsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_tcp6", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}, Val: 6},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "tcp_option_types_buf", FldName: "optname", TypeSize: 8}}, Vals: []uint64{32, 64}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "optval", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{ArgDir: 1}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optlen", TypeSize: 8}, Type: &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 4, ArgDir: 2}}, Buf: "optval"}},
+ }},
+ {ID: 75, NR: 118, Name: "getsockopt$inet6_tcp_int", CallName: "getsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_tcp6", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}, Val: 6},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "tcp_option_types_int", FldName: "optname", TypeSize: 8}}, Vals: []uint64{1, 256, 512, 1025}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optval", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optlen", TypeSize: 8}, Type: &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 4, ArgDir: 2}}, Buf: "optval"}},
+ }},
+ {ID: 76, NR: 118, Name: "getsockopt$inet_buf", CallName: "getsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "inet_option_types_buf", FldName: "optname", TypeSize: 8}}, Vals: []uint64{1, 21, 9, 12, 13, 73, 72, 70, 71, 74, 80, 84, 85, 81, 82, 83}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "optval", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{ArgDir: 1}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optlen", TypeSize: 8}, Type: &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 4, ArgDir: 2}}, Buf: "optval"}},
+ }},
+ {ID: 77, NR: 118, Name: "getsockopt$inet_int", CallName: "getsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "inet_option_types_int", FldName: "optname", TypeSize: 8}}, Vals: []uint64{3, 4, 2, 5, 8, 65, 68, 27, 66}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optval", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optlen", TypeSize: 8}, Type: &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 4, ArgDir: 2}}, Buf: "optval"}},
+ }},
+ {ID: 78, NR: 118, Name: "getsockopt$inet_mreq", CallName: "getsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sockopt_opt_ip_mreq", FldName: "optname", TypeSize: 8}}, Vals: []uint64{12, 13, 9}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optval", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "ip_mreq", Dir: 1}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optlen", TypeSize: 8}, Type: &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 4, ArgDir: 2}}, Buf: "optval"}},
+ }},
+ {ID: 79, NR: 118, Name: "getsockopt$inet_mreqn", CallName: "getsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sockopt_opt_ip_mreq", FldName: "optname", TypeSize: 8}}, Vals: []uint64{12, 13, 9}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optval", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "ip_mreqn", Dir: 1}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optlen", TypeSize: 8}, Type: &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 4, ArgDir: 2}}, Buf: "optval"}},
+ }},
+ {ID: 80, NR: 118, Name: "getsockopt$inet_mreqsrc", CallName: "getsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sockopt_opt_ip_mreqsrc", FldName: "optname", TypeSize: 8}}, Vals: []uint64{70, 72, 71, 73}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optval", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "ip_mreq_source", Dir: 1}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optlen", TypeSize: 8}, Type: &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 4, ArgDir: 2}}, Buf: "optval"}},
+ }},
+ {ID: 81, NR: 118, Name: "getsockopt$inet_opts", CallName: "getsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sockopt_opt_ip_opts", FldName: "optname", TypeSize: 8}}, Vals: []uint64{1}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "optval", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{ArgDir: 1}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optlen", TypeSize: 8}, Type: &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 4, ArgDir: 2}}, Buf: "optval"}},
+ }},
+ {ID: 82, NR: 118, Name: "getsockopt$inet_tcp_buf", CallName: "getsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_tcp", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}, Val: 6},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "tcp_option_types_buf", FldName: "optname", TypeSize: 8}}, Vals: []uint64{32, 64}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "optval", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{ArgDir: 1}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optlen", TypeSize: 8}, Type: &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 4, ArgDir: 2}}, Buf: "optval"}},
+ }},
+ {ID: 83, NR: 118, Name: "getsockopt$inet_tcp_int", CallName: "getsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_tcp", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}, Val: 6},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "tcp_option_types_int", FldName: "optname", TypeSize: 8}}, Vals: []uint64{1, 256, 512, 1025}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optval", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optlen", TypeSize: 8}, Type: &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 4, ArgDir: 2}}, Buf: "optval"}},
+ }},
+ {ID: 84, NR: 118, Name: "getsockopt$sock_cred", CallName: "getsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}, Val: 65535},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "optname", TypeSize: 8}}, Val: 17},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optval", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "ucred", Dir: 1}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optlen", TypeSize: 8}, Type: &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 4, ArgDir: 2}}, Buf: "optval"}},
+ }},
+ {ID: 85, NR: 118, Name: "getsockopt$sock_int", CallName: "getsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}, Val: 65535},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sockopt_opt_sock_int", FldName: "optname", TypeSize: 8}}, Vals: []uint64{2, 32, 1, 4103, 16, 8, 12, 4118, 4098, 4100, 4099, 4, 4097, 29, 4104, 512, 256, 11, 16}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optval", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optlen", TypeSize: 8}, Type: &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 4, ArgDir: 2}}, Buf: "optval"}},
+ }},
+ {ID: 86, NR: 118, Name: "getsockopt$sock_linger", CallName: "getsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}, Val: 65535},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "optname", TypeSize: 8}}, Val: 128},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optval", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "linger", Dir: 1}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optlen", TypeSize: 8}, Type: &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 4, ArgDir: 2}}, Buf: "optval"}},
+ }},
+ {ID: 87, NR: 118, Name: "getsockopt$sock_timeval", CallName: "getsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}, Val: 65535},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sockopt_opt_sock_timeval", FldName: "optname", TypeSize: 8}}, Vals: []uint64{4102, 4101}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optval", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "timeval", Dir: 1}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optlen", TypeSize: 8}, Type: &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 4, ArgDir: 2}}, Buf: "optval"}},
+ }},
+ {ID: 88, NR: 24, Name: "getuid", CallName: "getuid", Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "uid", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 89, NR: 254, Name: "lchown", CallName: "lchown", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "file", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename"}, Kind: 3}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "uid", FldName: "uid", TypeSize: 4}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "gid", FldName: "gid", TypeSize: 4}},
+ }},
+ {ID: 90, NR: 9, Name: "link", CallName: "link", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "old", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename"}, Kind: 3}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "new", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename"}, Kind: 3}},
+ }},
+ {ID: 91, NR: 495, Name: "linkat", CallName: "linkat", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_dir", FldName: "oldfd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "old", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename"}, Kind: 3}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_dir", FldName: "newfd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "new", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename"}, Kind: 3}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "linkat_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{1024}},
+ }},
+ {ID: 92, NR: 106, Name: "listen", CallName: "listen", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock", FldName: "fd", TypeSize: 4}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "backlog", TypeSize: 4}}},
+ }},
+ {ID: 93, NR: 478, Name: "lseek", CallName: "lseek", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "fileoff", FldName: "offset", TypeSize: 8}}, Kind: 1},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "seek_whence", FldName: "whence", TypeSize: 8}}, Vals: []uint64{0, 1, 2, 3, 4}},
+ }},
+ {ID: 94, NR: 190, Name: "lstat", CallName: "lstat", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "file", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename"}, Kind: 3}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "statbuf", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "stat", Dir: 1}}},
+ }},
+ {ID: 95, NR: 75, Name: "madvise", CallName: "madvise", Args: []Type{
&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "addr", TypeSize: 8}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 8}}, Buf: "addr"},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mmap_prot", FldName: "prot", TypeSize: 8}}, Vals: []uint64{1, 2}},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mmap_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{2, 4096, 16}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "fd", TypeSize: 8}}, Val: 18446744073709551615},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "offset", TypeSize: 8}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "madvise_flags", FldName: "advice", TypeSize: 8}}, Vals: []uint64{0, 1, 2, 3, 4}},
+ }},
+ {ID: 96, NR: 78, Name: "mincore", CallName: "mincore", Args: []Type{
+ &VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "addr", TypeSize: 8}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "size", TypeSize: 8}}, Buf: "addr"},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "vec", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{ArgDir: 1}}},
+ }},
+ {ID: 97, NR: 136, Name: "mkdir", CallName: "mkdir", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "path", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename"}, Kind: 3}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "open_mode", FldName: "mode", TypeSize: 8}}, Vals: []uint64{256, 128, 64, 32, 16, 8, 4, 2, 1}},
+ }},
+ {ID: 98, NR: 496, Name: "mkdirat", CallName: "mkdirat", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_dir", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "path", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename"}, Kind: 3}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "open_mode", FldName: "mode", TypeSize: 8}}, Vals: []uint64{256, 128, 64, 32, 16, 8, 4, 2, 1}},
+ }},
+ {ID: 99, NR: 14, Name: "mknod", CallName: "mknod", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "file", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename"}, Kind: 3}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mknod_mode", FldName: "mode", TypeSize: 8}}, Vals: []uint64{32768, 8192, 24576, 4096, 49152, 256, 128, 64, 32, 16, 8, 4, 2, 1}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "dev", TypeSize: 4}}},
+ }},
+ {ID: 100, NR: 14, Name: "mknod$loop", CallName: "mknod", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "file", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename"}, Kind: 3}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mknod_mode", FldName: "mode", TypeSize: 8}}, Vals: []uint64{32768, 8192, 24576, 4096, 49152, 256, 128, 64, 32, 16, 8, 4, 2, 1}},
+ &ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "dev", TypeSize: 8}}, ValuesStart: 1792, ValuesPerProc: 2},
+ }},
+ {ID: 101, NR: 559, Name: "mknodat", CallName: "mknodat", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_dir", FldName: "dirfd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "file", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename"}, Kind: 3}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mknod_mode", FldName: "mode", TypeSize: 8}}, Vals: []uint64{32768, 8192, 24576, 4096, 49152, 256, 128, 64, 32, 16, 8, 4, 2, 1}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "dev", TypeSize: 4}}},
+ }},
+ {ID: 102, NR: 203, Name: "mlock", CallName: "mlock", Args: []Type{
+ &VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "addr", TypeSize: 8}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "size", TypeSize: 8}}, Buf: "addr"},
+ }},
+ {ID: 103, NR: 324, Name: "mlockall", CallName: "mlockall", Args: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mlockall_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{1, 2}},
+ }},
+ {ID: 104, NR: 477, Name: "mmap", CallName: "mmap", Args: []Type{
+ &VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "addr", TypeSize: 8}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 8}}, Buf: "addr"},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mmap_prot", FldName: "prot", TypeSize: 8}}, Vals: []uint64{4, 1, 2}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mmap_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{1, 2, 524288, 4096, 0, 16, 1024}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "fileoff", FldName: "offset", TypeSize: 8}}, Kind: 1},
}, Ret: &VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "ret", TypeSize: 8, ArgDir: 1}}},
- {ID: 1, NR: 42, Name: "pipe", CallName: "pipe", Args: []Type{
+ {ID: 105, NR: 74, Name: "mprotect", CallName: "mprotect", Args: []Type{
+ &VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "addr", TypeSize: 8}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 8}}, Buf: "addr"},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mmap_prot", FldName: "prot", TypeSize: 8}}, Vals: []uint64{4, 1, 2}},
+ }},
+ {ID: 106, NR: 511, Name: "msgctl$IPC_INFO", CallName: "msgctl", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "ipc_msq", FldName: "msqid", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 3},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "buf", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{ArgDir: 1}}},
+ }},
+ {ID: 107, NR: 511, Name: "msgctl$IPC_RMID", CallName: "msgctl", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "ipc_msq", FldName: "msqid", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}},
+ }},
+ {ID: 108, NR: 511, Name: "msgctl$IPC_SET", CallName: "msgctl", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "ipc_msq", FldName: "msqid", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 1},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "msqid_ds"}}},
+ }},
+ {ID: 109, NR: 511, Name: "msgctl$IPC_STAT", CallName: "msgctl", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "ipc_msq", FldName: "msqid", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 2},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "buf", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{ArgDir: 1}}},
+ }},
+ {ID: 110, NR: 225, Name: "msgget", CallName: "msgget", Args: []Type{
+ &ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "key", TypeSize: 8}}, ValuesStart: 2039379027, ValuesPerProc: 4},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "msgget_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{512, 1024, 256, 128, 64, 32, 16, 8, 4, 2, 1}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "ipc_msq", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 111, NR: 225, Name: "msgget$private", CallName: "msgget", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "key", TypeSize: 8}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "msgget_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{512, 1024, 256, 128, 64, 32, 16, 8, 4, 2, 1}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "ipc_msq", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 112, NR: 227, Name: "msgrcv", CallName: "msgrcv", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "ipc_msq", FldName: "msqid", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "msgp", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "msgbuf", Dir: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "sz", TypeSize: 8}}, Buf: "msgp"},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "msgbuf_type", FldName: "typ", TypeSize: 8}}, Vals: []uint64{0, 1, 2, 3}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "msgrcv_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{2048, 4096}},
+ }},
+ {ID: 113, NR: 226, Name: "msgsnd", CallName: "msgsnd", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "ipc_msq", FldName: "msqid", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "msgp", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "msgbuf"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "sz", TypeSize: 8}}, Buf: "msgp"},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "msgsnd_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{2048}},
+ }},
+ {ID: 114, NR: 65, Name: "msync", CallName: "msync", Args: []Type{
+ &VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "addr", TypeSize: 8}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 8}}, Buf: "addr"},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "msync_flags", FldName: "f", TypeSize: 8}}, Vals: []uint64{1, 0, 2}},
+ }},
+ {ID: 115, NR: 204, Name: "munlock", CallName: "munlock", Args: []Type{
+ &VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "addr", TypeSize: 8}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "size", TypeSize: 8}}, Buf: "addr"},
+ }},
+ {ID: 116, NR: 325, Name: "munlockall", CallName: "munlockall"},
+ {ID: 117, NR: 73, Name: "munmap", CallName: "munmap", Args: []Type{
+ &VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "addr", TypeSize: 8}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 8}}, Buf: "addr"},
+ }},
+ {ID: 118, NR: 240, Name: "nanosleep", CallName: "nanosleep", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "req", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "timespec"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rem", TypeSize: 8, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "timespec", Dir: 1}}},
+ }},
+ {ID: 119, NR: 5, Name: "open", CallName: "open", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "file", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename"}, Kind: 3}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "open_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{0, 1, 2, 8, 64, 1048576, 512, 65536, 131072, 2048, 32768, 256, 4, 128, 1024}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "open_mode", FldName: "mode", TypeSize: 8}}, Vals: []uint64{256, 128, 64, 32, 16, 8, 4, 2, 1}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 120, NR: 5, Name: "open$dir", CallName: "open", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "file", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename"}, Kind: 3}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "open_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{0, 1, 2, 8, 64, 1048576, 512, 65536, 131072, 2048, 32768, 256, 4, 128, 1024}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "open_mode", FldName: "mode", TypeSize: 8}}, Vals: []uint64{256, 128, 64, 32, 16, 8, 4, 2, 1}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_dir", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 121, NR: 499, Name: "openat", CallName: "openat", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_dir", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "file", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename"}, Kind: 3}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "open_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{0, 1, 2, 8, 64, 1048576, 512, 65536, 131072, 2048, 32768, 256, 4, 128, 1024}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "open_mode", FldName: "mode", TypeSize: 8}}, Vals: []uint64{256, 128, 64, 32, 16, 8, 4, 2, 1}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 122, NR: 42, Name: "pipe", CallName: "pipe", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "pipefd", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "pipefd", Dir: 1}}},
}},
+ {ID: 123, NR: 542, Name: "pipe2", CallName: "pipe2", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "pipefd", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "pipefd", Dir: 1}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pipe_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{4, 1048576}},
+ }},
+ {ID: 124, NR: 209, Name: "poll", CallName: "poll", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "fds", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array"}, Type: &StructType{Key: StructKey{Name: "pollfd"}}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "nfds", TypeSize: 8}}, Buf: "fds"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "timeout", TypeSize: 4}}},
+ }},
+ {ID: 125, NR: 545, Name: "ppoll", CallName: "ppoll", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "fds", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array"}, Type: &StructType{Key: StructKey{Name: "pollfd"}}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "nfds", TypeSize: 8}}, Buf: "fds"},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "tsp", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "timespec"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "sigmask", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "sigset"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "size", TypeSize: 8}}, Buf: "sigmask"},
+ }},
+ {ID: 126, NR: 289, Name: "preadv", CallName: "preadv", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "vec", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array"}, Type: &StructType{Key: StructKey{Name: "iovec_out"}}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "vlen", TypeSize: 8}}, Buf: "vec"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "fileoff", FldName: "off", TypeSize: 8}}, Kind: 1},
+ }},
+ {ID: 127, NR: 290, Name: "pwritev", CallName: "pwritev", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "vec", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array"}, Type: &StructType{Key: StructKey{Name: "iovec_in"}}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "vlen", TypeSize: 8}}, Buf: "vec"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "fileoff", FldName: "off", TypeSize: 8}}, Kind: 1},
+ }},
+ {ID: 128, NR: 3, Name: "read", CallName: "read", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "buf", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{ArgDir: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "count", TypeSize: 8}}, Buf: "buf"},
+ }},
+ {ID: 129, NR: 58, Name: "readlink", CallName: "readlink", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "path", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename"}, Kind: 3}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "buf", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{ArgDir: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "siz", TypeSize: 8}}, Buf: "buf"},
+ }},
+ {ID: 130, NR: 500, Name: "readlinkat", CallName: "readlinkat", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_dir", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "path", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename"}, Kind: 3}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "buf", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{ArgDir: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "siz", TypeSize: 8}}, Buf: "buf"},
+ }},
+ {ID: 131, NR: 120, Name: "readv", CallName: "readv", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "vec", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array"}, Type: &StructType{Key: StructKey{Name: "iovec_out"}}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "vlen", TypeSize: 8}}, Buf: "vec"},
+ }},
+ {ID: 132, NR: 29, Name: "recvfrom", CallName: "recvfrom", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "buf", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{ArgDir: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 8}}, Buf: "buf"},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "recv_flags", FldName: "f", TypeSize: 8}}, Vals: []uint64{262144, 128, 8192, 1, 2, 16, 64, 524288}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 8, IsOptional: true}, Type: &UnionType{Key: StructKey{Name: "sockaddr_storage"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "addrlen", TypeSize: 8}}, Buf: "addr"},
+ }},
+ {ID: 133, NR: 29, Name: "recvfrom$inet", CallName: "recvfrom", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "buf", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{ArgDir: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 8}}, Buf: "buf"},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "recv_flags", FldName: "f", TypeSize: 8}}, Vals: []uint64{262144, 128, 8192, 1, 2, 16, 64, 524288}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 8, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "sockaddr_in"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "addrlen", TypeSize: 8}}, Buf: "addr"},
+ }},
+ {ID: 134, NR: 29, Name: "recvfrom$inet6", CallName: "recvfrom", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in6", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "buf", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{ArgDir: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 8}}, Buf: "buf"},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "recv_flags", FldName: "f", TypeSize: 8}}, Vals: []uint64{262144, 128, 8192, 1, 2, 16, 64, 524288}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 8, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "sockaddr_in6"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "addrlen", TypeSize: 8}}, Buf: "addr"},
+ }},
+ {ID: 135, NR: 29, Name: "recvfrom$unix", CallName: "recvfrom", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_unix", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "buf", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{ArgDir: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 8}}, Buf: "buf"},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "recv_flags", FldName: "f", TypeSize: 8}}, Vals: []uint64{262144, 128, 8192, 1, 2, 16, 64, 524288}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 8, IsOptional: true}, Type: &UnionType{Key: StructKey{Name: "sockaddr_un"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "addrlen", TypeSize: 8}}, Buf: "addr"},
+ }},
+ {ID: 136, NR: 27, Name: "recvmsg", CallName: "recvmsg", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "msg", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "recv_msghdr"}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "recv_flags", FldName: "f", TypeSize: 8}}, Vals: []uint64{262144, 128, 8192, 1, 2, 16, 64, 524288}},
+ }},
+ {ID: 137, NR: 128, Name: "rename", CallName: "rename", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "old", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename"}, Kind: 3}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "new", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename"}, Kind: 3}},
+ }},
+ {ID: 138, NR: 501, Name: "renameat", CallName: "renameat", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_dir", FldName: "oldfd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "old", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename"}, Kind: 3}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_dir", FldName: "newfd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "new", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename"}, Kind: 3}},
+ }},
+ {ID: 139, NR: 137, Name: "rmdir", CallName: "rmdir", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "path", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename"}, Kind: 3}},
+ }},
+ {ID: 140, NR: 93, Name: "select", CallName: "select", Args: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "n", TypeSize: 8}}, Buf: "inp"},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "inp", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fd_set", Dir: 2}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "outp", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fd_set", Dir: 2}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "exp", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fd_set", Dir: 2}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "tvp", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "timeval", Dir: 2}}},
+ }},
+ {ID: 141, NR: 510, Name: "semctl$GETALL", CallName: "semctl", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "ipc_sem", FldName: "semid", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "semnum", TypeSize: 8}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 6},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "arg", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{ArgDir: 1}}},
+ }},
+ {ID: 142, NR: 510, Name: "semctl$GETNCNT", CallName: "semctl", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "ipc_sem", FldName: "semid", TypeSize: 4}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sem_sem_id", FldName: "semnum", TypeSize: 8}}, Vals: []uint64{0, 1, 2, 3, 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 3},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "arg", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{ArgDir: 1}}},
+ }},
+ {ID: 143, NR: 510, Name: "semctl$GETPID", CallName: "semctl", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "ipc_sem", FldName: "semid", TypeSize: 4}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sem_sem_id", FldName: "semnum", TypeSize: 8}}, Vals: []uint64{0, 1, 2, 3, 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 4},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "arg", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{ArgDir: 1}}},
+ }},
+ {ID: 144, NR: 510, Name: "semctl$GETVAL", CallName: "semctl", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "ipc_sem", FldName: "semid", TypeSize: 4}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sem_sem_id", FldName: "semnum", TypeSize: 8}}, Vals: []uint64{0, 1, 2, 3, 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 5},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "arg", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{ArgDir: 1}}},
+ }},
+ {ID: 145, NR: 510, Name: "semctl$GETZCNT", CallName: "semctl", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "ipc_sem", FldName: "semid", TypeSize: 4}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sem_sem_id", FldName: "semnum", TypeSize: 8}}, Vals: []uint64{0, 1, 2, 3, 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 7},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "arg", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{ArgDir: 1}}},
+ }},
+ {ID: 146, NR: 510, Name: "semctl$IPC_INFO", CallName: "semctl", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "ipc_sem", FldName: "semid", TypeSize: 4}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sem_sem_id", FldName: "semnum", TypeSize: 8}}, Vals: []uint64{0, 1, 2, 3, 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 3},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "buf", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{ArgDir: 1}}},
+ }},
+ {ID: 147, NR: 510, Name: "semctl$IPC_RMID", CallName: "semctl", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "ipc_sem", FldName: "semid", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "semnum", TypeSize: 8}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}},
+ }},
+ {ID: 148, NR: 510, Name: "semctl$IPC_SET", CallName: "semctl", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "ipc_sem", FldName: "semid", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "semnum", TypeSize: 8}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 1},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "semid_ds"}}},
+ }},
+ {ID: 149, NR: 510, Name: "semctl$IPC_STAT", CallName: "semctl", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "ipc_sem", FldName: "semid", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "semnum", TypeSize: 8}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 2},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "arg", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{ArgDir: 1}}},
+ }},
+ {ID: 150, NR: 510, Name: "semctl$SEM_INFO", CallName: "semctl", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "ipc_sem", FldName: "semid", TypeSize: 4}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sem_sem_id", FldName: "semnum", TypeSize: 8}}, Vals: []uint64{0, 1, 2, 3, 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 11},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "arg", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{ArgDir: 1}}},
+ }},
+ {ID: 151, NR: 510, Name: "semctl$SEM_STAT", CallName: "semctl", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "ipc_sem", FldName: "semid", TypeSize: 4}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sem_sem_id", FldName: "semnum", TypeSize: 8}}, Vals: []uint64{0, 1, 2, 3, 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 10},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "arg", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{ArgDir: 1}}},
+ }},
+ {ID: 152, NR: 510, Name: "semctl$SETALL", CallName: "semctl", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "ipc_sem", FldName: "semid", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "semnum", TypeSize: 8}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 9},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array"}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", TypeSize: 2}}}}},
+ }},
+ {ID: 153, NR: 510, Name: "semctl$SETVAL", CallName: "semctl", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "ipc_sem", FldName: "semid", TypeSize: 4}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sem_sem_id", FldName: "semnum", TypeSize: 8}}, Vals: []uint64{0, 1, 2, 3, 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 8},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}},
+ }},
+ {ID: 154, NR: 221, Name: "semget", CallName: "semget", Args: []Type{
+ &ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "key", TypeSize: 8}}, ValuesStart: 2039359027, ValuesPerProc: 4},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sem_sem_id", FldName: "nsems", TypeSize: 8}}, Vals: []uint64{0, 1, 2, 3, 4}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "semget_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{512, 1024, 256, 128, 64, 32, 16, 8, 4, 2, 1}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "ipc_sem", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 155, NR: 221, Name: "semget$private", CallName: "semget", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "key", TypeSize: 8}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sem_sem_id", FldName: "nsems", TypeSize: 8}}, Vals: []uint64{0, 1, 2, 3, 4}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "semget_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{512, 1024, 256, 128, 64, 32, 16, 8, 4, 2, 1}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "ipc_sem", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 156, NR: 222, Name: "semop", CallName: "semop", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "ipc_sem", FldName: "semid", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "ops", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array"}, Type: &StructType{Key: StructKey{Name: "sembuf"}}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "nops", TypeSize: 8}}, Buf: "ops"},
+ }},
+ {ID: 157, NR: 393, Name: "sendfile", CallName: "sendfile", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fdout", TypeSize: 4}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fdin", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "off", TypeSize: 8, IsOptional: true}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "fileoff", TypeSize: 8, ArgDir: 2}}, Kind: 1}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "count", TypeSize: 8}}},
+ }},
+ {ID: 158, NR: 28, Name: "sendmsg", CallName: "sendmsg", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "msg", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "send_msghdr"}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "send_flags", FldName: "f", TypeSize: 8}}, Vals: []uint64{2048, 4, 128, 8, 131072, 1}},
+ }},
+ {ID: 159, NR: 28, Name: "sendmsg$unix", CallName: "sendmsg", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_unix", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "msg", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "msghdr_un"}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "send_flags", FldName: "f", TypeSize: 8}}, Vals: []uint64{2048, 4, 128, 8, 131072, 1}},
+ }},
+ {ID: 160, NR: 133, Name: "sendto", CallName: "sendto", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "buf", TypeSize: 8}, Type: &BufferType{}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 8}}, Buf: "buf"},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "send_flags", FldName: "f", TypeSize: 8}}, Vals: []uint64{2048, 4, 128, 8, 131072, 1}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 8, IsOptional: true}, Type: &UnionType{Key: StructKey{Name: "sockaddr_storage"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "addrlen", TypeSize: 8}}, Buf: "addr"},
+ }},
+ {ID: 161, NR: 133, Name: "sendto$inet", CallName: "sendto", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "buf", TypeSize: 8}, Type: &BufferType{}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 8}}, Buf: "buf"},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "send_flags", FldName: "f", TypeSize: 8}}, Vals: []uint64{2048, 4, 128, 8, 131072, 1}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 8, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "sockaddr_in"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "addrlen", TypeSize: 8}}, Buf: "addr"},
+ }},
+ {ID: 162, NR: 133, Name: "sendto$inet6", CallName: "sendto", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in6", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "buf", TypeSize: 8}, Type: &BufferType{}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 8}}, Buf: "buf"},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "send_flags", FldName: "f", TypeSize: 8}}, Vals: []uint64{2048, 4, 128, 8, 131072, 1}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 8, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "sockaddr_in6"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "addrlen", TypeSize: 8}}, Buf: "addr"},
+ }},
+ {ID: 163, NR: 133, Name: "sendto$unix", CallName: "sendto", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_unix", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "buf", TypeSize: 8}, Type: &BufferType{}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 8}}, Buf: "buf"},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "send_flags", FldName: "f", TypeSize: 8}}, Vals: []uint64{2048, 4, 128, 8, 131072, 1}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 8, IsOptional: true}, Type: &UnionType{Key: StructKey{Name: "sockaddr_un"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "addrlen", TypeSize: 8}}, Buf: "addr"},
+ }},
+ {ID: 164, NR: 181, Name: "setgid", CallName: "setgid", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "gid", FldName: "gid", TypeSize: 4}},
+ }},
+ {ID: 165, NR: 80, Name: "setgroups", CallName: "setgroups", Args: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "size", TypeSize: 8}}, Buf: "list"},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "list", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array"}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "gid", TypeSize: 4}}}},
+ }},
+ {ID: 166, NR: 83, Name: "setitimer", CallName: "setitimer", Args: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "getitimer_which", FldName: "which", TypeSize: 8}}, Vals: []uint64{0, 1, 2}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "new", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "itimerval"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "old", TypeSize: 8, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "itimerval", Dir: 1}}},
+ }},
+ {ID: 167, NR: 82, Name: "setpgid", CallName: "setpgid", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "pid", FldName: "pid", TypeSize: 4}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "pid", FldName: "pgid", TypeSize: 4}},
+ }},
+ {ID: 168, NR: 127, Name: "setregid", CallName: "setregid", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "gid", FldName: "rgid", TypeSize: 4}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "gid", FldName: "egid", TypeSize: 4}},
+ }},
+ {ID: 169, NR: 312, Name: "setresgid", CallName: "setresgid", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "gid", FldName: "rgid", TypeSize: 4}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "gid", FldName: "egid", TypeSize: 4}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "gid", FldName: "sgid", TypeSize: 4}},
+ }},
+ {ID: 170, NR: 311, Name: "setresuid", CallName: "setresuid", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "uid", FldName: "ruid", TypeSize: 4}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "uid", FldName: "euid", TypeSize: 4}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "uid", FldName: "suid", TypeSize: 4}},
+ }},
+ {ID: 171, NR: 126, Name: "setreuid", CallName: "setreuid", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "uid", FldName: "ruid", TypeSize: 4}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "uid", FldName: "euid", TypeSize: 4}},
+ }},
+ {ID: 172, NR: 195, Name: "setrlimit", CallName: "setrlimit", Args: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "rlimit_type", FldName: "res", TypeSize: 8}}, Vals: []uint64{10, 4, 0, 2, 1, 6, 8, 7, 5, 3}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rlim", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "rlimit"}}},
+ }},
+ {ID: 173, NR: 105, Name: "setsockopt", CallName: "setsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock", FldName: "fd", TypeSize: 4}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "level", TypeSize: 4}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "optname", TypeSize: 4}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "optval", TypeSize: 8}, Type: &BufferType{}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "optlen", TypeSize: 8}}, Buf: "optval"},
+ }},
+ {ID: 174, NR: 105, Name: "setsockopt$inet6_IPV6_PKTINFO", CallName: "setsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in6", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}, Val: 41},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "optname", TypeSize: 8}}, Val: 46},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optval", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "in6_pktinfo"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "optlen", TypeSize: 8}}, Buf: "optval"},
+ }},
+ {ID: 175, NR: 105, Name: "setsockopt$inet6_MCAST_JOIN_GROUP", CallName: "setsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in6", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}, Val: 41},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "optname", TypeSize: 8}}, Val: 80},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optval", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "group_req_in6"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "optlen", TypeSize: 8}}, Buf: "optval"},
+ }},
+ {ID: 176, NR: 105, Name: "setsockopt$inet6_MCAST_LEAVE_GROUP", CallName: "setsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in6", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}, Val: 41},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "optname", TypeSize: 8}}, Val: 81},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optval", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "group_req_in6"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "optlen", TypeSize: 8}}, Buf: "optval"},
+ }},
+ {ID: 177, NR: 105, Name: "setsockopt$inet6_MRT6_ADD_MFC", CallName: "setsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in6", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}, Val: 41},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "optname", TypeSize: 8}}, Val: 104},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optval", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "mf6cctl"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "optlen", TypeSize: 8}}, Buf: "optval"},
+ }},
+ {ID: 178, NR: 105, Name: "setsockopt$inet6_MRT6_ADD_MIF", CallName: "setsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in6", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}, Val: 41},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "optname", TypeSize: 8}}, Val: 102},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optval", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "mif6ctl"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "optlen", TypeSize: 8}}, Buf: "optval"},
+ }},
+ {ID: 179, NR: 105, Name: "setsockopt$inet6_MRT6_DEL_MFC", CallName: "setsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in6", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}, Val: 41},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "optname", TypeSize: 8}}, Val: 105},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optval", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "mf6cctl"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "optlen", TypeSize: 8}}, Buf: "optval"},
+ }},
+ {ID: 180, NR: 105, Name: "setsockopt$inet6_buf", CallName: "setsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in6", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}, Val: 41},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "inet6_option_types_buf", FldName: "optname", TypeSize: 8}}, Vals: []uint64{25, 28, 80, 84, 85, 81, 82, 83, 46, 49, 35, 51, 50, 44, 102, 104, 105}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "optval", TypeSize: 8}, Type: &BufferType{}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "optlen", TypeSize: 8}}, Buf: "optval"},
+ }},
+ {ID: 181, NR: 105, Name: "setsockopt$inet6_group_source_req", CallName: "setsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in6", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}, Val: 41},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sockopt_opt_ipv6_group_source_req", FldName: "optname", TypeSize: 8}}, Vals: []uint64{82, 83, 84, 85}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optval", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "group_source_req_in6"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "optlen", TypeSize: 8}}, Buf: "optval"},
+ }},
+ {ID: 182, NR: 105, Name: "setsockopt$inet6_int", CallName: "setsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in6", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}, Val: 41},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "inet6_option_types_int", FldName: "optname", TypeSize: 8}}, Vals: []uint64{19, 22, 23, 24, 26, 20, 48, 4, 9, 10, 11, 27, 36, 37, 47, 39, 38, 40, 43, 62, 57, 61, 59, 72}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optval", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "optlen", TypeSize: 8}}, Buf: "optval"},
+ }},
+ {ID: 183, NR: 105, Name: "setsockopt$inet6_tcp_TCP_CONGESTION", CallName: "setsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_tcp6", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}, Val: 6},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "optname", TypeSize: 8}}, Val: 64},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optval", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string"}, Kind: 2, SubKind: "tcp_congestion_control_alg_names", Values: []string{"cubic\x00", "reno\x00", "bic\x00", "cdg\x00", "dctcp\x00", "westwood\x00", "highspeed\x00", "hybla\x00", "htcp\x00", "vegas\x00", "nv\x00", "veno\x00", "scalable\x00", "lp\x00", "yeah\x00", "illinois\x00"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "optlen", TypeSize: 8}}, Buf: "optval"},
+ }},
+ {ID: 184, NR: 105, Name: "setsockopt$inet6_tcp_buf", CallName: "setsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_tcp6", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}, Val: 6},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "tcp_option_types_buf", FldName: "optname", TypeSize: 8}}, Vals: []uint64{32, 64}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "optval", TypeSize: 8}, Type: &BufferType{}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "optlen", TypeSize: 8}}, Buf: "optval"},
+ }},
+ {ID: 185, NR: 105, Name: "setsockopt$inet6_tcp_int", CallName: "setsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_tcp6", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}, Val: 6},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "tcp_option_types_int", FldName: "optname", TypeSize: 8}}, Vals: []uint64{1, 256, 512, 1025}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optval", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "optlen", TypeSize: 8}}, Buf: "optval"},
+ }},
+ {ID: 186, NR: 105, Name: "setsockopt$inet_MCAST_JOIN_GROUP", CallName: "setsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "optname", TypeSize: 8}}, Val: 80},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optval", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "group_req_in"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "optlen", TypeSize: 8}}, Buf: "optval"},
+ }},
+ {ID: 187, NR: 105, Name: "setsockopt$inet_MCAST_LEAVE_GROUP", CallName: "setsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "optname", TypeSize: 8}}, Val: 81},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optval", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "group_req_in"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "optlen", TypeSize: 8}}, Buf: "optval"},
+ }},
+ {ID: 188, NR: 105, Name: "setsockopt$inet_buf", CallName: "setsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "inet_option_types_buf", FldName: "optname", TypeSize: 8}}, Vals: []uint64{1, 21, 9, 12, 13, 73, 72, 70, 71, 74, 80, 84, 85, 81, 82, 83}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "optval", TypeSize: 8}, Type: &BufferType{}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "optlen", TypeSize: 8}}, Buf: "optval"},
+ }},
+ {ID: 189, NR: 105, Name: "setsockopt$inet_group_source_req", CallName: "setsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sockopt_opt_ip_group_source_req", FldName: "optname", TypeSize: 8}}, Vals: []uint64{82, 83, 84, 85}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optval", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "group_source_req_in"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "optlen", TypeSize: 8}}, Buf: "optval"},
+ }},
+ {ID: 190, NR: 105, Name: "setsockopt$inet_int", CallName: "setsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "inet_option_types_int", FldName: "optname", TypeSize: 8}}, Vals: []uint64{3, 4, 2, 5, 8, 65, 68, 27, 66}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optval", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "optlen", TypeSize: 8}}, Buf: "optval"},
+ }},
+ {ID: 191, NR: 105, Name: "setsockopt$inet_mreq", CallName: "setsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sockopt_opt_ip_mreq", FldName: "optname", TypeSize: 8}}, Vals: []uint64{12, 13, 9}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optval", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "ip_mreq"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "optlen", TypeSize: 8}}, Buf: "optval"},
+ }},
+ {ID: 192, NR: 105, Name: "setsockopt$inet_mreqn", CallName: "setsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sockopt_opt_ip_mreq", FldName: "optname", TypeSize: 8}}, Vals: []uint64{12, 13, 9}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optval", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "ip_mreqn"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "optlen", TypeSize: 8}}, Buf: "optval"},
+ }},
+ {ID: 193, NR: 105, Name: "setsockopt$inet_mreqsrc", CallName: "setsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sockopt_opt_ip_mreqsrc", FldName: "optname", TypeSize: 8}}, Vals: []uint64{70, 72, 71, 73}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optval", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "ip_mreq_source"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "optlen", TypeSize: 8}}, Buf: "optval"},
+ }},
+ {ID: 194, NR: 105, Name: "setsockopt$inet_msfilter", CallName: "setsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "optname", TypeSize: 8}}, Val: 74},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optval", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "ip_msfilter"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "optlen", TypeSize: 8}}, Buf: "optval"},
+ }},
+ {ID: 195, NR: 105, Name: "setsockopt$inet_opts", CallName: "setsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sockopt_opt_ip_opts", FldName: "optname", TypeSize: 8}}, Vals: []uint64{1}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "optval", TypeSize: 8}, Type: &BufferType{}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "optlen", TypeSize: 8}}, Buf: "optval"},
+ }},
+ {ID: 196, NR: 105, Name: "setsockopt$inet_tcp_TCP_CONGESTION", CallName: "setsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_tcp", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}, Val: 6},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "optname", TypeSize: 8}}, Val: 64},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optval", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string"}, Kind: 2, SubKind: "tcp_congestion_control_alg_names", Values: []string{"cubic\x00", "reno\x00", "bic\x00", "cdg\x00", "dctcp\x00", "westwood\x00", "highspeed\x00", "hybla\x00", "htcp\x00", "vegas\x00", "nv\x00", "veno\x00", "scalable\x00", "lp\x00", "yeah\x00", "illinois\x00"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "optlen", TypeSize: 8}}, Buf: "optval"},
+ }},
+ {ID: 197, NR: 105, Name: "setsockopt$inet_tcp_buf", CallName: "setsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_tcp", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}, Val: 6},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "tcp_option_types_buf", FldName: "optname", TypeSize: 8}}, Vals: []uint64{32, 64}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "optval", TypeSize: 8}, Type: &BufferType{}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "optlen", TypeSize: 8}}, Buf: "optval"},
+ }},
+ {ID: 198, NR: 105, Name: "setsockopt$inet_tcp_int", CallName: "setsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_tcp", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}, Val: 6},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "tcp_option_types_int", FldName: "optname", TypeSize: 8}}, Vals: []uint64{1, 256, 512, 1025}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optval", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "optlen", TypeSize: 8}}, Buf: "optval"},
+ }},
+ {ID: 199, NR: 105, Name: "setsockopt$sock_cred", CallName: "setsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}, Val: 65535},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "optname", TypeSize: 8}}, Val: 17},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optval", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "ucred"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "optlen", TypeSize: 8}}, Buf: "optval"},
+ }},
+ {ID: 200, NR: 105, Name: "setsockopt$sock_int", CallName: "setsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}, Val: 65535},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sockopt_opt_sock_int", FldName: "optname", TypeSize: 8}}, Vals: []uint64{2, 32, 1, 4103, 16, 8, 12, 4118, 4098, 4100, 4099, 4, 4097, 29, 4104, 512, 256, 11, 16}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optval", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "optlen", TypeSize: 8}}, Buf: "optval"},
+ }},
+ {ID: 201, NR: 105, Name: "setsockopt$sock_linger", CallName: "setsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}, Val: 65535},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "optname", TypeSize: 8}}, Val: 128},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optval", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "linger"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "optlen", TypeSize: 8}}, Buf: "optval"},
+ }},
+ {ID: 202, NR: 105, Name: "setsockopt$sock_timeval", CallName: "setsockopt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "level", TypeSize: 8}}, Val: 65535},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sockopt_opt_sock_timeval", FldName: "optname", TypeSize: 8}}, Vals: []uint64{4102, 4101}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "optval", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "timeval"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "optlen", TypeSize: 8}}, Buf: "optval"},
+ }},
+ {ID: 203, NR: 23, Name: "setuid", CallName: "setuid", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "uid", FldName: "uid", TypeSize: 4}},
+ }},
+ {ID: 204, NR: 228, Name: "shmat", CallName: "shmat", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "ipc_shm", FldName: "shmid", TypeSize: 4}},
+ &VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "addr", TypeSize: 8}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "shmat_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{8192, 4096}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "shmaddr", FldName: "ret", TypeSize: 8, ArgDir: 1}}},
+ {ID: 205, NR: 512, Name: "shmctl$IPC_INFO", CallName: "shmctl", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "ipc_shm", FldName: "shmid", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 3},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "buf", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{ArgDir: 1}}},
+ }},
+ {ID: 206, NR: 512, Name: "shmctl$IPC_RMID", CallName: "shmctl", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "ipc_shm", FldName: "shmid", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}},
+ }},
+ {ID: 207, NR: 512, Name: "shmctl$IPC_SET", CallName: "shmctl", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "ipc_shm", FldName: "shmid", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 1},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "shmid_ds"}}},
+ }},
+ {ID: 208, NR: 512, Name: "shmctl$IPC_STAT", CallName: "shmctl", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "ipc_shm", FldName: "shmid", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 2},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "buf", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{ArgDir: 1}}},
+ }},
+ {ID: 209, NR: 512, Name: "shmctl$SHM_INFO", CallName: "shmctl", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "ipc_shm", FldName: "shmid", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 14},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "buf", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{ArgDir: 1}}},
+ }},
+ {ID: 210, NR: 512, Name: "shmctl$SHM_LOCK", CallName: "shmctl", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "ipc_shm", FldName: "shmid", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 11},
+ }},
+ {ID: 211, NR: 512, Name: "shmctl$SHM_STAT", CallName: "shmctl", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "ipc_shm", FldName: "shmid", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 13},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "buf", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{ArgDir: 1}}},
+ }},
+ {ID: 212, NR: 512, Name: "shmctl$SHM_UNLOCK", CallName: "shmctl", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "ipc_shm", FldName: "shmid", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 12},
+ }},
+ {ID: 213, NR: 230, Name: "shmdt", CallName: "shmdt", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "shmaddr", FldName: "addr", TypeSize: 8}},
+ }},
+ {ID: 214, NR: 231, Name: "shmget", CallName: "shmget", Args: []Type{
+ &ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "key", TypeSize: 8}}, ValuesStart: 2039339027, ValuesPerProc: 4},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "size", TypeSize: 8}}, Buf: "unused"},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "shmget_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{512, 1024, 256, 128, 64, 32, 16, 8, 4, 2, 1}},
+ &VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "unused", TypeSize: 8}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "ipc_shm", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 215, NR: 231, Name: "shmget$private", CallName: "shmget", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "key", TypeSize: 8}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "size", TypeSize: 8}}, Buf: "unused"},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "shmget_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{512, 1024, 256, 128, 64, 32, 16, 8, 4, 2, 1}},
+ &VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "unused", TypeSize: 8}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "ipc_shm", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 216, NR: 134, Name: "shutdown", CallName: "shutdown", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock", FldName: "fd", TypeSize: 4}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "shutdown_flags", FldName: "how", TypeSize: 8}}, Vals: []uint64{0, 1}},
+ }},
+ {ID: 217, NR: 53, Name: "sigaltstack", CallName: "sigaltstack", Args: []Type{
+ &VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "ss", TypeSize: 8}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "oss", TypeSize: 8, IsOptional: true}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", TypeSize: 8, ArgDir: 1}}}},
+ }},
+ {ID: 218, NR: 97, Name: "socket", CallName: "socket", Args: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "socket_domain", FldName: "domain", TypeSize: 8}}, Vals: []uint64{1, 2, 28, 23, 3, 16}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "socket_type", FldName: "type", TypeSize: 8}}, Vals: []uint64{1, 2, 3, 4, 5, 536870912, 268435456}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "proto", TypeSize: 1}}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "sock", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 219, NR: 97, Name: "socket$inet", CallName: "socket", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "domain", TypeSize: 8}}, Val: 2},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "socket_type", FldName: "type", TypeSize: 8}}, Vals: []uint64{1, 2, 3, 4, 5, 536870912, 268435456}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "proto", TypeSize: 1}}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 220, NR: 97, Name: "socket$inet6", CallName: "socket", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "domain", TypeSize: 8}}, Val: 28},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "socket_type", FldName: "type", TypeSize: 8}}, Vals: []uint64{1, 2, 3, 4, 5, 536870912, 268435456}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "proto", TypeSize: 1}}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in6", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 221, NR: 97, Name: "socket$inet6_icmp", CallName: "socket", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "domain", TypeSize: 8}}, Val: 28},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 8}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "proto", TypeSize: 8}}, Val: 58},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_icmp6", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 222, NR: 97, Name: "socket$inet6_icmp_raw", CallName: "socket", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "domain", TypeSize: 8}}, Val: 28},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 8}}, Val: 3},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "proto", TypeSize: 8}}, Val: 58},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_icmp6", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 223, NR: 97, Name: "socket$inet6_tcp", CallName: "socket", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "domain", TypeSize: 8}}, Val: 28},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 8}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "proto", TypeSize: 8}}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_tcp6", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 224, NR: 97, Name: "socket$inet6_udp", CallName: "socket", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "domain", TypeSize: 8}}, Val: 28},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 8}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "proto", TypeSize: 8}}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_udp6", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 225, NR: 97, Name: "socket$inet_icmp", CallName: "socket", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "domain", TypeSize: 8}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 8}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "proto", TypeSize: 8}}, Val: 1},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_icmp", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 226, NR: 97, Name: "socket$inet_icmp_raw", CallName: "socket", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "domain", TypeSize: 8}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 8}}, Val: 3},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "proto", TypeSize: 8}}, Val: 1},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_icmp", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 227, NR: 97, Name: "socket$inet_tcp", CallName: "socket", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "domain", TypeSize: 8}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 8}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "proto", TypeSize: 8}}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_tcp", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 228, NR: 97, Name: "socket$inet_udp", CallName: "socket", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "domain", TypeSize: 8}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 8}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "proto", TypeSize: 8}}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_udp", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 229, NR: 97, Name: "socket$unix", CallName: "socket", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "domain", TypeSize: 8}}, Val: 1},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "unix_socket_type", FldName: "type", TypeSize: 8}}, Vals: []uint64{1, 2, 5}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "proto", TypeSize: 8}}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_unix", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 230, NR: 135, Name: "socketpair", CallName: "socketpair", Args: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "socket_domain", FldName: "domain", TypeSize: 8}}, Vals: []uint64{1, 2, 28, 23, 3, 16}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "socket_type", FldName: "type", TypeSize: 8}}, Vals: []uint64{1, 2, 3, 4, 5, 536870912, 268435456}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "proto", TypeSize: 1}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "fds", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "pipefd", Dir: 1}}},
+ }},
+ {ID: 231, NR: 135, Name: "socketpair$inet", CallName: "socketpair", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "domain", TypeSize: 8}}, Val: 2},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "socket_type", FldName: "type", TypeSize: 8}}, Vals: []uint64{1, 2, 3, 4, 5, 536870912, 268435456}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "proto", TypeSize: 1}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "fds", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "sock_in_pair", Dir: 1}}},
+ }},
+ {ID: 232, NR: 135, Name: "socketpair$inet6", CallName: "socketpair", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "domain", TypeSize: 8}}, Val: 28},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "socket_type", FldName: "type", TypeSize: 8}}, Vals: []uint64{1, 2, 3, 4, 5, 536870912, 268435456}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "proto", TypeSize: 1}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "fds", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "sock_in6_pair", Dir: 1}}},
+ }},
+ {ID: 233, NR: 135, Name: "socketpair$inet6_icmp", CallName: "socketpair", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "domain", TypeSize: 8}}, Val: 28},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 8}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "proto", TypeSize: 8}}, Val: 58},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "fds", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "icmp6_pair", Dir: 1}}},
+ }},
+ {ID: 234, NR: 135, Name: "socketpair$inet6_icmp_raw", CallName: "socketpair", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "domain", TypeSize: 8}}, Val: 28},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 8}}, Val: 3},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "proto", TypeSize: 8}}, Val: 58},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "fds", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "icmp6_pair", Dir: 1}}},
+ }},
+ {ID: 235, NR: 135, Name: "socketpair$inet6_tcp", CallName: "socketpair", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "domain", TypeSize: 8}}, Val: 28},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 8}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "proto", TypeSize: 8}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "fds", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "tcp6_pair", Dir: 1}}},
+ }},
+ {ID: 236, NR: 135, Name: "socketpair$inet6_udp", CallName: "socketpair", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "domain", TypeSize: 8}}, Val: 28},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 8}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "proto", TypeSize: 8}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "fds", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "udp6_pair", Dir: 1}}},
+ }},
+ {ID: 237, NR: 135, Name: "socketpair$inet_icmp", CallName: "socketpair", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "domain", TypeSize: 8}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 8}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "proto", TypeSize: 8}}, Val: 1},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "fds", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "icmp_pair", Dir: 1}}},
+ }},
+ {ID: 238, NR: 135, Name: "socketpair$inet_icmp_raw", CallName: "socketpair", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "domain", TypeSize: 8}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 8}}, Val: 3},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "proto", TypeSize: 8}}, Val: 1},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "fds", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "icmp_pair", Dir: 1}}},
+ }},
+ {ID: 239, NR: 135, Name: "socketpair$inet_tcp", CallName: "socketpair", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "domain", TypeSize: 8}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 8}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "proto", TypeSize: 8}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "fds", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "tcp_pair", Dir: 1}}},
+ }},
+ {ID: 240, NR: 135, Name: "socketpair$inet_udp", CallName: "socketpair", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "domain", TypeSize: 8}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 8}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "proto", TypeSize: 8}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "fds", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "udp_pair", Dir: 1}}},
+ }},
+ {ID: 241, NR: 135, Name: "socketpair$unix", CallName: "socketpair", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "domain", TypeSize: 8}}, Val: 1},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "unix_socket_type", FldName: "type", TypeSize: 8}}, Vals: []uint64{1, 2, 5}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "proto", TypeSize: 8}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "fds", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "unix_pair", Dir: 1}}},
+ }},
+ {ID: 242, NR: 188, Name: "stat", CallName: "stat", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "file", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename"}, Kind: 3}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "statbuf", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "stat", Dir: 1}}},
+ }},
+ {ID: 243, NR: 57, Name: "symlink", CallName: "symlink", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "old", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename"}, Kind: 3}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "new", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename"}, Kind: 3}},
+ }},
+ {ID: 244, NR: 502, Name: "symlinkat", CallName: "symlinkat", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "old", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename"}, Kind: 3}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_dir", FldName: "newfd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "new", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename"}, Kind: 3}},
+ }},
+ {ID: 245, NR: 36, Name: "sync", CallName: "sync"},
+ {ID: 246, NR: 479, Name: "truncate", CallName: "truncate", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "file", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename"}, Kind: 3}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "len", TypeSize: 8}}},
+ }},
+ {ID: 247, NR: 10, Name: "unlink", CallName: "unlink", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "path", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename"}, Kind: 3}},
+ }},
+ {ID: 248, NR: 503, Name: "unlinkat", CallName: "unlinkat", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_dir", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "path", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename"}, Kind: 3}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "unlinkat_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{0, 2048}},
+ }},
+ {ID: 249, NR: 547, Name: "utimensat", CallName: "utimensat", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_dir", FldName: "dir", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "pathname", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename"}, Kind: 3}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "times", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "itimerval"}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "utimensat_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{0, 512}},
+ }},
+ {ID: 250, NR: 138, Name: "utimes", CallName: "utimes", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "filename", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename"}, Kind: 3}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "times", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "itimerval"}}},
+ }},
+ {ID: 251, NR: 7, Name: "wait4", CallName: "wait4", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "pid", FldName: "pid", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "status", TypeSize: 8, IsOptional: true}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "wait_options", FldName: "options", TypeSize: 8}}, Vals: []uint64{1, 2, 4, 16, 2, 4, 1, 8}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "ru", TypeSize: 8, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "rusage", Dir: 1}}},
+ }},
+ {ID: 252, NR: 4, Name: "write", CallName: "write", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "buf", TypeSize: 8}, Type: &BufferType{}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "count", TypeSize: 8}}, Buf: "buf"},
+ }},
+ {ID: 253, NR: 121, Name: "writev", CallName: "writev", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "vec", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array"}, Type: &StructType{Key: StructKey{Name: "iovec_in"}}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "vlen", TypeSize: 8}}, Buf: "vec"},
+ }},
}
var consts_amd64 = []ConstValue{
- {Name: "MAP_ANONYMOUS", Value: 4096},
+ {Name: "AF_APPLETALK", Value: 16},
+ {Name: "AF_AX25", Value: 3},
+ {Name: "AF_INET", Value: 2},
+ {Name: "AF_INET6", Value: 28},
+ {Name: "AF_IPX", Value: 23},
+ {Name: "AF_UNIX", Value: 1},
+ {Name: "AF_UNSPEC"},
+ {Name: "AT_FDCWD", Value: 18446744073709551516},
+ {Name: "AT_REMOVEDIR", Value: 2048},
+ {Name: "AT_SYMLINK_FOLLOW", Value: 1024},
+ {Name: "AT_SYMLINK_NOFOLLOW", Value: 512},
+ {Name: "CLOCK_MONOTONIC", Value: 4},
+ {Name: "CLOCK_PROCESS_CPUTIME_ID", Value: 15},
+ {Name: "CLOCK_REALTIME"},
+ {Name: "CLOCK_THREAD_CPUTIME_ID", Value: 14},
+ {Name: "FASYNC", Value: 64},
+ {Name: "FD_CLOEXEC", Value: 1},
+ {Name: "F_DUPFD"},
+ {Name: "F_DUPFD_CLOEXEC", Value: 17},
+ {Name: "F_GETFD", Value: 1},
+ {Name: "F_GETFL", Value: 3},
+ {Name: "F_GETLK", Value: 11},
+ {Name: "F_GETOWN", Value: 5},
+ {Name: "F_RDLCK", Value: 1},
+ {Name: "F_SETFD", Value: 2},
+ {Name: "F_SETFL", Value: 4},
+ {Name: "F_SETLK", Value: 12},
+ {Name: "F_SETLKW", Value: 13},
+ {Name: "F_SETOWN", Value: 6},
+ {Name: "F_UNLCK", Value: 2},
+ {Name: "F_WRLCK", Value: 3},
+ {Name: "GETALL", Value: 6},
+ {Name: "GETNCNT", Value: 3},
+ {Name: "GETPID", Value: 4},
+ {Name: "GETVAL", Value: 5},
+ {Name: "GETZCNT", Value: 7},
+ {Name: "IPC_CREAT", Value: 512},
+ {Name: "IPC_EXCL", Value: 1024},
+ {Name: "IPC_INFO", Value: 3},
+ {Name: "IPC_NOWAIT", Value: 2048},
+ {Name: "IPC_PRIVATE"},
+ {Name: "IPC_RMID"},
+ {Name: "IPC_SET", Value: 1},
+ {Name: "IPC_STAT", Value: 2},
+ {Name: "IPPROTO_ICMP", Value: 1},
+ {Name: "IPPROTO_ICMPV6", Value: 58},
+ {Name: "IPPROTO_IP"},
+ {Name: "IPPROTO_IPV6", Value: 41},
+ {Name: "IPPROTO_TCP", Value: 6},
+ {Name: "IPV6_2292DSTOPTS", Value: 23},
+ {Name: "IPV6_2292HOPLIMIT", Value: 20},
+ {Name: "IPV6_2292HOPOPTS", Value: 22},
+ {Name: "IPV6_2292PKTINFO", Value: 19},
+ {Name: "IPV6_2292PKTOPTIONS", Value: 25},
+ {Name: "IPV6_2292RTHDR", Value: 24},
+ {Name: "IPV6_AUTOFLOWLABEL", Value: 59},
+ {Name: "IPV6_CHECKSUM", Value: 26},
+ {Name: "IPV6_DONTFRAG", Value: 62},
+ {Name: "IPV6_DSTOPTS", Value: 50},
+ {Name: "IPV6_HOPLIMIT", Value: 47},
+ {Name: "IPV6_HOPOPTS", Value: 49},
+ {Name: "IPV6_IPSEC_POLICY", Value: 28},
+ {Name: "IPV6_MULTICAST_HOPS", Value: 10},
+ {Name: "IPV6_MULTICAST_IF", Value: 9},
+ {Name: "IPV6_MULTICAST_LOOP", Value: 11},
+ {Name: "IPV6_NEXTHOP", Value: 48},
+ {Name: "IPV6_PATHMTU", Value: 44},
+ {Name: "IPV6_PKTINFO", Value: 46},
+ {Name: "IPV6_RECVDSTOPTS", Value: 40},
+ {Name: "IPV6_RECVHOPLIMIT", Value: 37},
+ {Name: "IPV6_RECVHOPOPTS", Value: 39},
+ {Name: "IPV6_RECVORIGDSTADDR", Value: 72},
+ {Name: "IPV6_RECVPATHMTU", Value: 43},
+ {Name: "IPV6_RECVPKTINFO", Value: 36},
+ {Name: "IPV6_RECVRTHDR", Value: 38},
+ {Name: "IPV6_RECVTCLASS", Value: 57},
+ {Name: "IPV6_RTHDR", Value: 51},
+ {Name: "IPV6_RTHDRDSTOPTS", Value: 35},
+ {Name: "IPV6_TCLASS", Value: 61},
+ {Name: "IPV6_UNICAST_HOPS", Value: 4},
+ {Name: "IPV6_V6ONLY", Value: 27},
+ {Name: "IP_ADD_MEMBERSHIP", Value: 12},
+ {Name: "IP_ADD_SOURCE_MEMBERSHIP", Value: 70},
+ {Name: "IP_BLOCK_SOURCE", Value: 72},
+ {Name: "IP_DROP_MEMBERSHIP", Value: 13},
+ {Name: "IP_DROP_SOURCE_MEMBERSHIP", Value: 71},
+ {Name: "IP_HDRINCL", Value: 2},
+ {Name: "IP_IPSEC_POLICY", Value: 21},
+ {Name: "IP_MINTTL", Value: 66},
+ {Name: "IP_MSFILTER", Value: 74},
+ {Name: "IP_MULTICAST_IF", Value: 9},
+ {Name: "IP_OPTIONS", Value: 1},
+ {Name: "IP_RECVOPTS", Value: 5},
+ {Name: "IP_RECVORIGDSTADDR", Value: 27},
+ {Name: "IP_RECVTOS", Value: 68},
+ {Name: "IP_RECVTTL", Value: 65},
+ {Name: "IP_RETOPTS", Value: 8},
+ {Name: "IP_TOS", Value: 3},
+ {Name: "IP_TTL", Value: 4},
+ {Name: "IP_UNBLOCK_SOURCE", Value: 73},
+ {Name: "ITIMER_PROF", Value: 2},
+ {Name: "ITIMER_REAL"},
+ {Name: "ITIMER_VIRTUAL", Value: 1},
+ {Name: "LINUX_AF_APPLETALK", Value: 5},
+ {Name: "LINUX_AF_INET", Value: 2},
+ {Name: "LINUX_AF_INET6", Value: 10},
+ {Name: "LINUX_AF_IPX", Value: 4},
+ {Name: "LINUX_AF_UNIX", Value: 1},
+ {Name: "LINUX_AF_UNSPEC"},
+ {Name: "LINUX_IPV6_CHECKSUM", Value: 7},
+ {Name: "LINUX_IPV6_DONTFRAG", Value: 62},
+ {Name: "LINUX_IPV6_DSTOPTS", Value: 59},
+ {Name: "LINUX_IPV6_HOPLIMIT", Value: 52},
+ {Name: "LINUX_IPV6_HOPOPTS", Value: 54},
+ {Name: "LINUX_IPV6_MULTICAST_HOPS", Value: 18},
+ {Name: "LINUX_IPV6_MULTICAST_IF", Value: 17},
+ {Name: "LINUX_IPV6_MULTICAST_LOOP", Value: 19},
+ {Name: "LINUX_IPV6_NEXTHOP", Value: 9},
+ {Name: "LINUX_IPV6_PATHMTU", Value: 61},
+ {Name: "LINUX_IPV6_PKTINFO", Value: 50},
+ {Name: "LINUX_IPV6_RECVDSTOPTS", Value: 58},
+ {Name: "LINUX_IPV6_RECVHOPLIMIT", Value: 51},
+ {Name: "LINUX_IPV6_RECVHOPOPTS", Value: 53},
+ {Name: "LINUX_IPV6_RECVPATHMTU", Value: 60},
+ {Name: "LINUX_IPV6_RECVPKTINFO", Value: 49},
+ {Name: "LINUX_IPV6_RECVRTHDR", Value: 56},
+ {Name: "LINUX_IPV6_RTHDR", Value: 57},
+ {Name: "LINUX_IPV6_RTHDRDSTOPTS", Value: 55},
+ {Name: "LINUX_IPV6_UNICAST_HOPS", Value: 16},
+ {Name: "LINUX_IPV6_V6ONLY", Value: 26},
+ {Name: "LINUX_MSG_CMSG_CLOEXEC", Value: 1073741824},
+ {Name: "LINUX_MSG_DONTROUTE", Value: 4},
+ {Name: "LINUX_MSG_DONTWAIT", Value: 64},
+ {Name: "LINUX_MSG_EOR", Value: 128},
+ {Name: "LINUX_MSG_NOSIGNAL", Value: 16384},
+ {Name: "LINUX_MSG_OOB", Value: 1},
+ {Name: "LINUX_MSG_PEEK", Value: 2},
+ {Name: "LINUX_MSG_TRUNC", Value: 32},
+ {Name: "LINUX_MSG_WAITALL", Value: 256},
+ {Name: "LINUX_MSG_WAITFORONE", Value: 65536},
+ {Name: "LINUX_POLLERR", Value: 8},
+ {Name: "LINUX_POLLHUP", Value: 16},
+ {Name: "LINUX_POLLIN", Value: 1},
+ {Name: "LINUX_POLLNVAL", Value: 32},
+ {Name: "LINUX_POLLOUT", Value: 4},
+ {Name: "LINUX_POLLPRI", Value: 2},
+ {Name: "LINUX_POLLRDBAND", Value: 128},
+ {Name: "LINUX_POLLRDNORM", Value: 64},
+ {Name: "LINUX_POLLWRBAND", Value: 512},
+ {Name: "LINUX_POLLWRNORM", Value: 256},
+ {Name: "LINUX_RLIMIT_AS", Value: 9},
+ {Name: "LINUX_RLIMIT_CORE", Value: 4},
+ {Name: "LINUX_RLIMIT_CPU"},
+ {Name: "LINUX_RLIMIT_DATA", Value: 2},
+ {Name: "LINUX_RLIMIT_FSIZE", Value: 1},
+ {Name: "LINUX_RLIMIT_MEMLOCK", Value: 8},
+ {Name: "LINUX_RLIMIT_NOFILE", Value: 7},
+ {Name: "LINUX_RLIMIT_NPROC", Value: 6},
+ {Name: "LINUX_RLIMIT_RSS", Value: 5},
+ {Name: "LINUX_RLIMIT_STACK", Value: 3},
+ {Name: "LINUX_SA_NOCLDSTOP", Value: 1},
+ {Name: "LINUX_SA_NOCLDWAIT", Value: 2},
+ {Name: "LINUX_SA_ONSTACK", Value: 134217728},
+ {Name: "LINUX_SA_RESTART", Value: 268435456},
+ {Name: "LINUX_SA_SIGINFO", Value: 4},
+ {Name: "LINUX_SCM_CREDENTIALS", Value: 2},
+ {Name: "LINUX_SCM_RIGHTS", Value: 1},
+ {Name: "LINUX_SIG_BLOCK"},
+ {Name: "LINUX_SIG_SETMASK", Value: 2},
+ {Name: "LINUX_SIG_UNBLOCK", Value: 1},
+ {Name: "LINUX_SOCK_DGRAM", Value: 2},
+ {Name: "LINUX_SOCK_RAW", Value: 3},
+ {Name: "LINUX_SOCK_RDM", Value: 4},
+ {Name: "LINUX_SOCK_SEQPACKET", Value: 5},
+ {Name: "LINUX_SOCK_STREAM", Value: 1},
+ {Name: "LINUX_SOL_SOCKET", Value: 1},
+ {Name: "LINUX_SOL_UDP", Value: 17},
+ {Name: "LINUX_SO_ACCEPTCONN", Value: 30},
+ {Name: "LINUX_SO_BROADCAST", Value: 6},
+ {Name: "LINUX_SO_DEBUG", Value: 1},
+ {Name: "LINUX_SO_DONTROUTE", Value: 5},
+ {Name: "LINUX_SO_ERROR", Value: 4},
+ {Name: "LINUX_SO_KEEPALIVE", Value: 9},
+ {Name: "LINUX_SO_LINGER", Value: 13},
+ {Name: "LINUX_SO_OOBINLINE", Value: 10},
+ {Name: "LINUX_SO_RCVBUF", Value: 8},
+ {Name: "LINUX_SO_RCVLOWAT", Value: 18},
+ {Name: "LINUX_SO_RCVTIMEO", Value: 20},
+ {Name: "LINUX_SO_REUSEADDR", Value: 2},
+ {Name: "LINUX_SO_SNDBUF", Value: 7},
+ {Name: "LINUX_SO_SNDLOWAT", Value: 19},
+ {Name: "LINUX_SO_SNDTIMEO", Value: 21},
+ {Name: "LINUX_SO_TIMESTAMP", Value: 29},
+ {Name: "LINUX_SO_TYPE", Value: 3},
+ {Name: "LINUX_TCP_KEEPIDLE", Value: 4},
+ {Name: "LINUX_TCP_KEEPINTVL", Value: 5},
+ {Name: "LINUX_TCP_NODELAY", Value: 1},
+ {Name: "LOCK_EX", Value: 2},
+ {Name: "LOCK_NB", Value: 4},
+ {Name: "LOCK_SH", Value: 1},
+ {Name: "LOCK_UN", Value: 8},
+ {Name: "MADV_DONTNEED", Value: 4},
+ {Name: "MADV_NORMAL"},
+ {Name: "MADV_RANDOM", Value: 1},
+ {Name: "MADV_SEQUENTIAL", Value: 2},
+ {Name: "MADV_WILLNEED", Value: 3},
+ {Name: "MAP_32BIT", Value: 524288},
+ {Name: "MAP_ANON", Value: 4096},
+ {Name: "MAP_FILE"},
{Name: "MAP_FIXED", Value: 16},
{Name: "MAP_PRIVATE", Value: 2},
+ {Name: "MAP_SHARED", Value: 1},
+ {Name: "MAP_STACK", Value: 1024},
+ {Name: "MCAST_BLOCK_SOURCE", Value: 84},
+ {Name: "MCAST_EXCLUDE", Value: 2},
+ {Name: "MCAST_INCLUDE", Value: 1},
+ {Name: "MCAST_JOIN_GROUP", Value: 80},
+ {Name: "MCAST_JOIN_SOURCE_GROUP", Value: 82},
+ {Name: "MCAST_LEAVE_GROUP", Value: 81},
+ {Name: "MCAST_LEAVE_SOURCE_GROUP", Value: 83},
+ {Name: "MCAST_UNBLOCK_SOURCE", Value: 85},
+ {Name: "MCL_CURRENT", Value: 1},
+ {Name: "MCL_FUTURE", Value: 2},
+ {Name: "MIFF_REGISTER", Value: 1},
+ {Name: "MRT6_ADD_MFC", Value: 104},
+ {Name: "MRT6_ADD_MIF", Value: 102},
+ {Name: "MRT6_DEL_MFC", Value: 105},
+ {Name: "MSG_CMSG_CLOEXEC", Value: 262144},
+ {Name: "MSG_CONFIRM", Value: 2048},
+ {Name: "MSG_DONTROUTE", Value: 4},
+ {Name: "MSG_DONTWAIT", Value: 128},
+ {Name: "MSG_EOR", Value: 8},
+ {Name: "MSG_ERRQUEUE", Value: 8192},
+ {Name: "MSG_NOERROR", Value: 4096},
+ {Name: "MSG_NOSIGNAL", Value: 131072},
+ {Name: "MSG_OOB", Value: 1},
+ {Name: "MSG_PEEK", Value: 2},
+ {Name: "MSG_TRUNC", Value: 16},
+ {Name: "MSG_WAITALL", Value: 64},
+ {Name: "MSG_WAITFORONE", Value: 524288},
+ {Name: "MS_ASYNC", Value: 1},
+ {Name: "MS_INVALIDATE", Value: 2},
+ {Name: "MS_SYNC"},
+ {Name: "O_APPEND", Value: 8},
+ {Name: "O_CLOEXEC", Value: 1048576},
+ {Name: "O_CREAT", Value: 512},
+ {Name: "O_DIRECT", Value: 65536},
+ {Name: "O_DIRECTORY", Value: 131072},
+ {Name: "O_EXCL", Value: 2048},
+ {Name: "O_NOCTTY", Value: 32768},
+ {Name: "O_NOFOLLOW", Value: 256},
+ {Name: "O_NONBLOCK", Value: 4},
+ {Name: "O_RDONLY"},
+ {Name: "O_RDWR", Value: 2},
+ {Name: "O_SYNC", Value: 128},
+ {Name: "O_TRUNC", Value: 1024},
+ {Name: "O_WRONLY", Value: 1},
+ {Name: "POLLERR", Value: 8},
+ {Name: "POLLHUP", Value: 16},
+ {Name: "POLLIN", Value: 1},
+ {Name: "POLLNVAL", Value: 32},
+ {Name: "POLLOUT", Value: 4},
+ {Name: "POLLPRI", Value: 2},
+ {Name: "POLLRDBAND", Value: 128},
+ {Name: "POLLRDNORM", Value: 64},
+ {Name: "POLLWRBAND", Value: 256},
+ {Name: "POLLWRNORM", Value: 4},
+ {Name: "POSIX_FADV_DONTNEED", Value: 4},
+ {Name: "POSIX_FADV_NOREUSE", Value: 5},
+ {Name: "POSIX_FADV_NORMAL"},
+ {Name: "POSIX_FADV_RANDOM", Value: 1},
+ {Name: "POSIX_FADV_SEQUENTIAL", Value: 2},
+ {Name: "POSIX_FADV_WILLNEED", Value: 3},
+ {Name: "PRIO_PGRP", Value: 1},
+ {Name: "PRIO_PROCESS"},
+ {Name: "PRIO_USER", Value: 2},
+ {Name: "PROT_EXEC", Value: 4},
{Name: "PROT_READ", Value: 1},
{Name: "PROT_WRITE", Value: 2},
+ {Name: "P_ALL", Value: 7},
+ {Name: "P_PGID", Value: 2},
+ {Name: "P_PID"},
+ {Name: "RLIMIT_AS", Value: 10},
+ {Name: "RLIMIT_CORE", Value: 4},
+ {Name: "RLIMIT_CPU"},
+ {Name: "RLIMIT_DATA", Value: 2},
+ {Name: "RLIMIT_FSIZE", Value: 1},
+ {Name: "RLIMIT_MEMLOCK", Value: 6},
+ {Name: "RLIMIT_NOFILE", Value: 8},
+ {Name: "RLIMIT_NPROC", Value: 7},
+ {Name: "RLIMIT_RSS", Value: 5},
+ {Name: "RLIMIT_STACK", Value: 3},
+ {Name: "RUSAGE_CHILDREN", Value: 18446744073709551615},
+ {Name: "RUSAGE_SELF"},
+ {Name: "RUSAGE_THREAD", Value: 1},
+ {Name: "SA_NOCLDSTOP", Value: 8},
+ {Name: "SA_NOCLDWAIT", Value: 32},
+ {Name: "SA_NODEFER", Value: 16},
+ {Name: "SA_ONSTACK", Value: 1},
+ {Name: "SA_RESETHAND", Value: 4},
+ {Name: "SA_RESTART", Value: 2},
+ {Name: "SA_SIGINFO", Value: 64},
+ {Name: "SCM_RIGHTS", Value: 1},
+ {Name: "SEEK_CUR", Value: 1},
+ {Name: "SEEK_DATA", Value: 3},
+ {Name: "SEEK_END", Value: 2},
+ {Name: "SEEK_HOLE", Value: 4},
+ {Name: "SEEK_SET"},
+ {Name: "SEM_INFO", Value: 11},
+ {Name: "SEM_STAT", Value: 10},
+ {Name: "SEM_UNDO", Value: 4096},
+ {Name: "SETALL", Value: 9},
+ {Name: "SETVAL", Value: 8},
+ {Name: "SHM_INFO", Value: 14},
+ {Name: "SHM_LOCK", Value: 11},
+ {Name: "SHM_RDONLY", Value: 4096},
+ {Name: "SHM_RND", Value: 8192},
+ {Name: "SHM_STAT", Value: 13},
+ {Name: "SHM_UNLOCK", Value: 12},
+ {Name: "SHUT_RD"},
+ {Name: "SHUT_WR", Value: 1},
+ {Name: "SIGEV_NONE"},
+ {Name: "SIGEV_SIGNAL", Value: 1},
+ {Name: "SIGEV_THREAD", Value: 2},
+ {Name: "SIGEV_THREAD_ID", Value: 4},
+ {Name: "SIG_BLOCK", Value: 1},
+ {Name: "SIG_SETMASK", Value: 3},
+ {Name: "SIG_UNBLOCK", Value: 2},
+ {Name: "SOCK_CLOEXEC", Value: 268435456},
+ {Name: "SOCK_DGRAM", Value: 2},
+ {Name: "SOCK_NONBLOCK", Value: 536870912},
+ {Name: "SOCK_RAW", Value: 3},
+ {Name: "SOCK_RDM", Value: 4},
+ {Name: "SOCK_SEQPACKET", Value: 5},
+ {Name: "SOCK_STREAM", Value: 1},
+ {Name: "SOL_AX25", Value: 257},
+ {Name: "SOL_IP"},
+ {Name: "SOL_IPV6", Value: 41},
+ {Name: "SOL_IPX", Value: 256},
+ {Name: "SOL_SOCKET", Value: 65535},
+ {Name: "SOL_TCP", Value: 6},
+ {Name: "SO_ACCEPTCONN", Value: 2},
+ {Name: "SO_BROADCAST", Value: 32},
+ {Name: "SO_DEBUG", Value: 1},
+ {Name: "SO_DONTROUTE", Value: 16},
+ {Name: "SO_ERROR", Value: 4103},
+ {Name: "SO_KEEPALIVE", Value: 8},
+ {Name: "SO_LINGER", Value: 128},
+ {Name: "SO_NO_CHECK", Value: 11},
+ {Name: "SO_OOBINLINE", Value: 256},
+ {Name: "SO_PASSCRED", Value: 16},
+ {Name: "SO_PEERCRED", Value: 17},
+ {Name: "SO_PRIORITY", Value: 12},
+ {Name: "SO_PROTOCOL", Value: 4118},
+ {Name: "SO_RCVBUF", Value: 4098},
+ {Name: "SO_RCVLOWAT", Value: 4100},
+ {Name: "SO_RCVTIMEO", Value: 4102},
+ {Name: "SO_REUSEADDR", Value: 4},
+ {Name: "SO_REUSEPORT", Value: 512},
+ {Name: "SO_SNDBUF", Value: 4097},
+ {Name: "SO_SNDLOWAT", Value: 4099},
+ {Name: "SO_SNDTIMEO", Value: 4101},
+ {Name: "SO_TYPE", Value: 4104},
+ {Name: "SYS___semctl", Value: 510},
+ {Name: "SYS_accept", Value: 30},
+ {Name: "SYS_accept4", Value: 541},
+ {Name: "SYS_bind", Value: 104},
+ {Name: "SYS_chdir", Value: 12},
+ {Name: "SYS_chmod", Value: 15},
+ {Name: "SYS_chown", Value: 16},
+ {Name: "SYS_chroot", Value: 61},
+ {Name: "SYS_clock_getres", Value: 234},
+ {Name: "SYS_clock_gettime", Value: 232},
+ {Name: "SYS_clock_nanosleep", Value: 244},
+ {Name: "SYS_clock_settime", Value: 233},
+ {Name: "SYS_close", Value: 6},
+ {Name: "SYS_connect", Value: 98},
+ {Name: "SYS_dup", Value: 41},
+ {Name: "SYS_dup2", Value: 90},
+ {Name: "SYS_execve", Value: 59},
+ {Name: "SYS_exit", Value: 1},
+ {Name: "SYS_faccessat", Value: 489},
+ {Name: "SYS_fchdir", Value: 13},
+ {Name: "SYS_fchmod", Value: 124},
+ {Name: "SYS_fchmodat", Value: 490},
+ {Name: "SYS_fchown", Value: 123},
+ {Name: "SYS_fchownat", Value: 491},
+ {Name: "SYS_fcntl", Value: 92},
+ {Name: "SYS_fdatasync", Value: 550},
+ {Name: "SYS_flock", Value: 131},
+ {Name: "SYS_freebsd11_fstat", Value: 189},
+ {Name: "SYS_freebsd11_mknodat", Value: 498},
+ {Name: "SYS_freebsd7_msgctl", Value: 224},
+ {Name: "SYS_freebsd7_shmctl", Value: 229},
+ {Name: "SYS_fstat", Value: 551},
+ {Name: "SYS_fsync", Value: 95},
+ {Name: "SYS_ftruncate", Value: 480},
+ {Name: "SYS_futimesat", Value: 494},
+ {Name: "SYS_getcwd", Value: 326},
+ {Name: "SYS_getdents", Value: 272},
+ {Name: "SYS_getegid", Value: 43},
+ {Name: "SYS_geteuid", Value: 25},
+ {Name: "SYS_getgid", Value: 47},
+ {Name: "SYS_getgroups", Value: 79},
+ {Name: "SYS_getitimer", Value: 86},
+ {Name: "SYS_getpeername", Value: 31},
+ {Name: "SYS_getpgid", Value: 207},
+ {Name: "SYS_getpgrp", Value: 81},
+ {Name: "SYS_getpid", Value: 20},
+ {Name: "SYS_getresgid", Value: 361},
+ {Name: "SYS_getresuid", Value: 360},
+ {Name: "SYS_getrlimit", Value: 194},
+ {Name: "SYS_getrusage", Value: 117},
+ {Name: "SYS_getsockname", Value: 32},
+ {Name: "SYS_getsockopt", Value: 118},
+ {Name: "SYS_getuid", Value: 24},
+ {Name: "SYS_lchown", Value: 254},
+ {Name: "SYS_link", Value: 9},
+ {Name: "SYS_linkat", Value: 495},
+ {Name: "SYS_listen", Value: 106},
+ {Name: "SYS_lseek", Value: 478},
+ {Name: "SYS_lstat", Value: 190},
+ {Name: "SYS_madvise", Value: 75},
+ {Name: "SYS_mincore", Value: 78},
+ {Name: "SYS_mkdir", Value: 136},
+ {Name: "SYS_mkdirat", Value: 496},
+ {Name: "SYS_mknod", Value: 14},
+ {Name: "SYS_mknodat", Value: 559},
+ {Name: "SYS_mlock", Value: 203},
+ {Name: "SYS_mlockall", Value: 324},
{Name: "SYS_mmap", Value: 477},
+ {Name: "SYS_mprotect", Value: 74},
+ {Name: "SYS_msgctl", Value: 511},
+ {Name: "SYS_msgget", Value: 225},
+ {Name: "SYS_msgrcv", Value: 227},
+ {Name: "SYS_msgsnd", Value: 226},
+ {Name: "SYS_msync", Value: 65},
+ {Name: "SYS_munlock", Value: 204},
+ {Name: "SYS_munlockall", Value: 325},
+ {Name: "SYS_munmap", Value: 73},
+ {Name: "SYS_nanosleep", Value: 240},
+ {Name: "SYS_open", Value: 5},
+ {Name: "SYS_openat", Value: 499},
{Name: "SYS_pipe", Value: 42},
+ {Name: "SYS_pipe2", Value: 542},
+ {Name: "SYS_poll", Value: 209},
+ {Name: "SYS_ppoll", Value: 545},
+ {Name: "SYS_preadv", Value: 289},
+ {Name: "SYS_pwritev", Value: 290},
+ {Name: "SYS_read", Value: 3},
+ {Name: "SYS_readlink", Value: 58},
+ {Name: "SYS_readlinkat", Value: 500},
+ {Name: "SYS_readv", Value: 120},
+ {Name: "SYS_recvfrom", Value: 29},
+ {Name: "SYS_recvmsg", Value: 27},
+ {Name: "SYS_rename", Value: 128},
+ {Name: "SYS_renameat", Value: 501},
+ {Name: "SYS_rmdir", Value: 137},
+ {Name: "SYS_select", Value: 93},
+ {Name: "SYS_semctl", Value: 510},
+ {Name: "SYS_semget", Value: 221},
+ {Name: "SYS_semop", Value: 222},
+ {Name: "SYS_sendfile", Value: 393},
+ {Name: "SYS_sendmsg", Value: 28},
+ {Name: "SYS_sendto", Value: 133},
+ {Name: "SYS_setgid", Value: 181},
+ {Name: "SYS_setgroups", Value: 80},
+ {Name: "SYS_setitimer", Value: 83},
+ {Name: "SYS_setpgid", Value: 82},
+ {Name: "SYS_setregid", Value: 127},
+ {Name: "SYS_setresgid", Value: 312},
+ {Name: "SYS_setresuid", Value: 311},
+ {Name: "SYS_setreuid", Value: 126},
+ {Name: "SYS_setrlimit", Value: 195},
+ {Name: "SYS_setsockopt", Value: 105},
+ {Name: "SYS_setuid", Value: 23},
+ {Name: "SYS_shmat", Value: 228},
+ {Name: "SYS_shmctl", Value: 512},
+ {Name: "SYS_shmdt", Value: 230},
+ {Name: "SYS_shmget", Value: 231},
+ {Name: "SYS_shutdown", Value: 134},
+ {Name: "SYS_sigaltstack", Value: 53},
+ {Name: "SYS_socket", Value: 97},
+ {Name: "SYS_socketpair", Value: 135},
+ {Name: "SYS_stat", Value: 188},
+ {Name: "SYS_symlink", Value: 57},
+ {Name: "SYS_symlinkat", Value: 502},
+ {Name: "SYS_sync", Value: 36},
+ {Name: "SYS_truncate", Value: 479},
+ {Name: "SYS_unlink", Value: 10},
+ {Name: "SYS_unlinkat", Value: 503},
+ {Name: "SYS_utimensat", Value: 547},
+ {Name: "SYS_utimes", Value: 138},
+ {Name: "SYS_wait4", Value: 7},
+ {Name: "SYS_write", Value: 4},
+ {Name: "SYS_writev", Value: 121},
+ {Name: "S_IFBLK", Value: 24576},
+ {Name: "S_IFCHR", Value: 8192},
+ {Name: "S_IFIFO", Value: 4096},
+ {Name: "S_IFREG", Value: 32768},
+ {Name: "S_IFSOCK", Value: 49152},
+ {Name: "S_IRGRP", Value: 32},
+ {Name: "S_IROTH", Value: 4},
+ {Name: "S_IRUSR", Value: 256},
+ {Name: "S_IWGRP", Value: 16},
+ {Name: "S_IWOTH", Value: 2},
+ {Name: "S_IWUSR", Value: 128},
+ {Name: "S_IXGRP", Value: 8},
+ {Name: "S_IXOTH", Value: 1},
+ {Name: "S_IXUSR", Value: 64},
+ {Name: "TCP_CONGESTION", Value: 64},
+ {Name: "TCP_FASTOPEN", Value: 1025},
+ {Name: "TCP_INFO", Value: 32},
+ {Name: "TCP_KEEPIDLE", Value: 256},
+ {Name: "TCP_KEEPINTVL", Value: 512},
+ {Name: "TCP_NODELAY", Value: 1},
+ {Name: "TIMER_ABSTIME", Value: 1},
+ {Name: "WCONTINUED", Value: 4},
+ {Name: "WEXITED", Value: 16},
+ {Name: "WNOHANG", Value: 1},
+ {Name: "WNOWAIT", Value: 8},
+ {Name: "WSTOPPED", Value: 2},
+ {Name: "WUNTRACED", Value: 2},
}
-const revision_amd64 = "7c737d486a33a6a0817ce924247b4b67428f7a07"
+const revision_amd64 = "88b9a5d5b712ffec9339d0e1e5cddf5834f7d598"
diff --git a/sys/freebsd/init.go b/sys/freebsd/init.go
index 28241370b..b9f04ffc2 100644
--- a/sys/freebsd/init.go
+++ b/sys/freebsd/init.go
@@ -15,6 +15,11 @@ func initTarget(target *prog.Target) {
MAP_ANONYMOUS: target.ConstMap["MAP_ANONYMOUS"],
MAP_PRIVATE: target.ConstMap["MAP_PRIVATE"],
MAP_FIXED: target.ConstMap["MAP_FIXED"],
+ S_IFREG: target.ConstMap["S_IFREG"],
+ S_IFCHR: target.ConstMap["S_IFCHR"],
+ S_IFBLK: target.ConstMap["S_IFBLK"],
+ S_IFIFO: target.ConstMap["S_IFIFO"],
+ S_IFSOCK: target.ConstMap["S_IFSOCK"],
}
target.PageSize = pageSize
@@ -22,6 +27,7 @@ func initTarget(target *prog.Target) {
target.MmapSyscall = arch.mmapSyscall
target.MakeMmap = arch.makeMmap
target.AnalyzeMmap = arch.analyzeMmap
+ target.SanitizeCall = arch.sanitizeCall
}
const (
@@ -39,6 +45,11 @@ type arch struct {
MAP_ANONYMOUS uint64
MAP_PRIVATE uint64
MAP_FIXED uint64
+ S_IFREG uint64
+ S_IFCHR uint64
+ S_IFBLK uint64
+ S_IFIFO uint64
+ S_IFSOCK uint64
}
// createMmapCall creates a "normal" mmap call that maps [start, start+npages) page range.
@@ -83,3 +94,42 @@ func (arch *arch) analyzeMmap(c *prog.Call) (start, npages uint64, mapped bool)
return
}
}
+
+func (arch *arch) sanitizeCall(c *prog.Call) {
+ switch c.Meta.CallName {
+ case "mmap":
+ // Add MAP_FIXED flag, otherwise it produces non-deterministic results.
+ c.Args[3].(*prog.ConstArg).Val |= arch.MAP_FIXED
+ case "mknod", "mknodat":
+ pos := 1
+ if c.Meta.CallName == "mknodat" {
+ pos = 2
+ }
+ mode := c.Args[pos].(*prog.ConstArg)
+ dev := c.Args[pos+1].(*prog.ConstArg)
+ // Char and block devices read/write io ports, kernel memory and do other nasty things.
+ // TODO: not required if executor drops privileges.
+ switch mode.Val & (arch.S_IFREG | arch.S_IFCHR | arch.S_IFBLK | arch.S_IFIFO | arch.S_IFSOCK) {
+ case arch.S_IFREG, arch.S_IFIFO, arch.S_IFSOCK:
+ case arch.S_IFBLK:
+ // TODO(dvyukov): mknod dev argument is uint32,
+ // but prog arguments contain not-truncated uint64 values,
+ // so we can mistakenly assume that this is not loop, when it actually is.
+ // This is not very harmful, but need to verify other arguments in this function.
+ if dev.Val>>8 == 7 {
+ break // loop
+ }
+ mode.Val &^= arch.S_IFBLK
+ mode.Val |= arch.S_IFREG
+ case arch.S_IFCHR:
+ mode.Val &^= arch.S_IFCHR
+ mode.Val |= arch.S_IFREG
+ }
+ case "exit":
+ code := c.Args[0].(*prog.ConstArg)
+ // These codes are reserved by executor.
+ if code.Val%128 == 67 || code.Val%128 == 68 {
+ code.Val = 1
+ }
+ }
+}
diff --git a/sys/freebsd/ipc.txt b/sys/freebsd/ipc.txt
new file mode 100644
index 000000000..ccc9f300b
--- /dev/null
+++ b/sys/freebsd/ipc.txt
@@ -0,0 +1,132 @@
+# Copyright 2017 syzkaller project authors. All rights reserved.
+# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
+
+include <sys/types.h>
+include <sys/fcntl.h>
+include <sys/stat.h>
+include <sys/ipc.h>
+include <sys/shm.h>
+include <sys/msg.h>
+include <sys/sem.h>
+
+resource ipc[int32]: 0, 0xffffffffffffffff
+
+# TODO: describe ipc syscall
+
+define SYS_semctl 510
+
+resource ipc_msq[ipc]
+msgget(key proc[2039379027, 4], flags flags[msgget_flags]) ipc_msq
+msgget$private(key const[IPC_PRIVATE], flags flags[msgget_flags]) ipc_msq
+msgsnd(msqid ipc_msq, msgp ptr[in, msgbuf], sz len[msgp], flags flags[msgsnd_flags])
+msgrcv(msqid ipc_msq, msgp ptr[out, msgbuf], sz len[msgp], typ flags[msgbuf_type], flags flags[msgrcv_flags])
+msgctl$IPC_STAT(msqid ipc_msq, cmd const[IPC_STAT], buf buffer[out])
+msgctl$IPC_SET(msqid ipc_msq, cmd const[IPC_SET], buf ptr[in, msqid_ds])
+msgctl$IPC_RMID(msqid ipc_msq, cmd const[IPC_RMID])
+msgctl$IPC_INFO(msqid ipc_msq, cmd const[IPC_INFO], buf buffer[out])
+
+resource ipc_sem[ipc]
+semget(key proc[2039359027, 4], nsems flags[sem_sem_id], flags flags[semget_flags]) ipc_sem
+semget$private(key const[IPC_PRIVATE], nsems flags[sem_sem_id], flags flags[semget_flags]) ipc_sem
+semop(semid ipc_sem, ops ptr[in, array[sembuf]], nops len[ops])
+semctl$IPC_STAT(semid ipc_sem, semnum const[0], cmd const[IPC_STAT], arg buffer[out])
+semctl$IPC_SET(semid ipc_sem, semnum const[0], cmd const[IPC_SET], arg ptr[in, semid_ds])
+semctl$IPC_RMID(semid ipc_sem, semnum const[0], cmd const[IPC_RMID])
+semctl$IPC_INFO(semid ipc_sem, semnum flags[sem_sem_id], cmd const[IPC_INFO], buf buffer[out])
+semctl$SEM_INFO(semid ipc_sem, semnum flags[sem_sem_id], cmd const[SEM_INFO], arg buffer[out])
+semctl$SEM_STAT(semid ipc_sem, semnum flags[sem_sem_id], cmd const[SEM_STAT], arg buffer[out])
+semctl$GETALL(semid ipc_sem, semnum const[0], cmd const[GETALL], arg buffer[out])
+semctl$GETNCNT(semid ipc_sem, semnum flags[sem_sem_id], cmd const[GETNCNT], arg buffer[out])
+semctl$GETPID(semid ipc_sem, semnum flags[sem_sem_id], cmd const[GETPID], arg buffer[out])
+semctl$GETVAL(semid ipc_sem, semnum flags[sem_sem_id], cmd const[GETVAL], arg buffer[out])
+semctl$GETZCNT(semid ipc_sem, semnum flags[sem_sem_id], cmd const[GETZCNT], arg buffer[out])
+semctl$SETALL(semid ipc_sem, semnum const[0], cmd const[SETALL], arg ptr[in, array[int16]])
+semctl$SETVAL(semid ipc_sem, semnum flags[sem_sem_id], cmd const[SETVAL], arg ptr[in, int32])
+
+resource ipc_shm[ipc]
+resource shmaddr[intptr]: 0
+# The unused arg is unused by syscall (does not exist at all),
+# but it helps to generate sane size values.
+shmget(key proc[2039339027, 4], size len[unused], flags flags[shmget_flags], unused vma) ipc_shm
+shmget$private(key const[IPC_PRIVATE], size len[unused], flags flags[shmget_flags], unused vma) ipc_shm
+shmat(shmid ipc_shm, addr vma, flags flags[shmat_flags]) shmaddr
+shmctl$IPC_STAT(shmid ipc_shm, cmd const[IPC_STAT], buf buffer[out])
+shmctl$IPC_SET(shmid ipc_shm, cmd const[IPC_SET], buf ptr[in, shmid_ds])
+shmctl$IPC_RMID(shmid ipc_shm, cmd const[IPC_RMID])
+shmctl$IPC_INFO(shmid ipc_shm, cmd const[IPC_INFO], buf buffer[out])
+shmctl$SHM_INFO(shmid ipc_shm, cmd const[SHM_INFO], buf buffer[out])
+shmctl$SHM_STAT(shmid ipc_shm, cmd const[SHM_STAT], buf buffer[out])
+shmctl$SHM_LOCK(shmid ipc_shm, cmd const[SHM_LOCK])
+shmctl$SHM_UNLOCK(shmid ipc_shm, cmd const[SHM_UNLOCK])
+shmdt(addr shmaddr)
+
+msgget_flags = IPC_CREAT, IPC_EXCL, S_IRUSR, S_IWUSR, S_IXUSR, S_IRGRP, S_IWGRP, S_IXGRP, S_IROTH, S_IWOTH, S_IXOTH
+msgbuf_type = 0, 1, 2, 3
+msgsnd_flags = IPC_NOWAIT
+msgrcv_flags = IPC_NOWAIT, MSG_NOERROR
+semget_flags = IPC_CREAT, IPC_EXCL, S_IRUSR, S_IWUSR, S_IXUSR, S_IRGRP, S_IWGRP, S_IXGRP, S_IROTH, S_IWOTH, S_IXOTH
+semop_flags = IPC_NOWAIT, SEM_UNDO
+sem_sem_id = 0, 1, 2, 3, 4
+shmget_flags = IPC_CREAT, IPC_EXCL, S_IRUSR, S_IWUSR, S_IXUSR, S_IRGRP, S_IWGRP, S_IXGRP, S_IROTH, S_IWOTH, S_IXOTH
+shmat_flags = SHM_RND, SHM_RDONLY
+
+ipc_perm {
+ key int32
+ uid uid
+ gid gid
+ cuid uid
+ cgid gid
+ mode flags[open_mode, int32]
+ seq int16
+ pad0 const[0, int16]
+ pad1 const[0, intptr]
+ pad2 const[0, intptr]
+}
+
+msqid_ds {
+ perm ipc_perm
+ stime intptr
+ rtime intptr
+ ctime intptr
+ cbytes intptr
+ qnum intptr
+ qbytes intptr
+ lspid pid
+ lrpid pid
+ pad0 const[0, intptr]
+ pad1 const[0, intptr]
+}
+
+shmid_ds {
+ perm ipc_perm
+ segsz int32
+ atime intptr
+ dtime intptr
+ ctime intptr
+ cpid pid
+ lpid pid
+ nattch int16
+ unused0 const[0, int16]
+ unused1 const[0, intptr]
+ unused2 const[0, intptr]
+}
+
+semid_ds {
+ perm ipc_perm
+ otime intptr
+ ctime intptr
+ nsems intptr
+ pad0 const[0, intptr]
+ pad1 const[0, intptr]
+}
+
+sembuf {
+ num flags[sem_sem_id, int16]
+ op int16
+ flg flags[semop_flags, int16]
+}
+
+msgbuf {
+ typ flags[msgbuf_type, intptr]
+ data array[int8]
+} [packed]
diff --git a/sys/freebsd/ipc_amd64.const b/sys/freebsd/ipc_amd64.const
new file mode 100644
index 000000000..187a06940
--- /dev/null
+++ b/sys/freebsd/ipc_amd64.const
@@ -0,0 +1,49 @@
+# AUTOGENERATED FILE
+GETALL = 6
+GETNCNT = 3
+GETPID = 4
+GETVAL = 5
+GETZCNT = 7
+IPC_CREAT = 512
+IPC_EXCL = 1024
+IPC_INFO = 3
+IPC_NOWAIT = 2048
+IPC_PRIVATE = 0
+IPC_RMID = 0
+IPC_SET = 1
+IPC_STAT = 2
+MSG_NOERROR = 4096
+SEM_INFO = 11
+SEM_STAT = 10
+SEM_UNDO = 4096
+SETALL = 9
+SETVAL = 8
+SHM_INFO = 14
+SHM_LOCK = 11
+SHM_RDONLY = 4096
+SHM_RND = 8192
+SHM_STAT = 13
+SHM_UNLOCK = 12
+SYS___semctl = 510
+SYS_freebsd7_msgctl = 224
+SYS_freebsd7_shmctl = 229
+SYS_msgctl = 511
+SYS_msgget = 225
+SYS_msgrcv = 227
+SYS_msgsnd = 226
+SYS_semctl = 510
+SYS_semget = 221
+SYS_semop = 222
+SYS_shmat = 228
+SYS_shmctl = 512
+SYS_shmdt = 230
+SYS_shmget = 231
+S_IRGRP = 32
+S_IROTH = 4
+S_IRUSR = 256
+S_IWGRP = 16
+S_IWOTH = 2
+S_IWUSR = 128
+S_IXGRP = 8
+S_IXOTH = 1
+S_IXUSR = 64
diff --git a/sys/freebsd/posix_fs.txt b/sys/freebsd/posix_fs.txt
new file mode 100644
index 000000000..049d9d1a7
--- /dev/null
+++ b/sys/freebsd/posix_fs.txt
@@ -0,0 +1,72 @@
+# Copyright 2017 syzkaller project authors. All rights reserved.
+# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
+
+include <sys/types.h>
+include <sys/stat.h>
+include <fcntl.h>
+include <unistd.h>
+
+resource fd[int32]: 0xffffffffffffffff, AT_FDCWD
+resource fd_dir[fd]
+
+resource pid[int32]: 0, 0xffffffffffffffff
+resource uid[int32]: 0, 0xffffffffffffffff
+resource gid[int32]: 0, 0xffffffffffffffff
+
+open(file ptr[in, filename], flags flags[open_flags], mode flags[open_mode]) fd
+# Just so that we have something that creates fd_dir resources.
+open$dir(file ptr[in, filename], flags flags[open_flags], mode flags[open_mode]) fd_dir
+openat(fd fd_dir, file ptr[in, filename], flags flags[open_flags], mode flags[open_mode]) fd
+close(fd fd)
+read(fd fd, buf buffer[out], count len[buf])
+readv(fd fd, vec ptr[in, array[iovec_out]], vlen len[vec])
+preadv(fd fd, vec ptr[in, array[iovec_out]], vlen len[vec], off fileoff)
+write(fd fd, buf buffer[in], count len[buf])
+writev(fd fd, vec ptr[in, array[iovec_in]], vlen len[vec])
+pwritev(fd fd, vec ptr[in, array[iovec_in]], vlen len[vec], off fileoff)
+lseek(fd fd, offset fileoff, whence flags[seek_whence])
+dup(oldfd fd) fd
+dup2(oldfd fd, newfd fd) fd
+pipe2(pipefd ptr[out, pipefd], flags flags[pipe_flags])
+fstat(fd fd, statbuf ptr[out, stat])
+
+pipefd {
+ rfd fd
+ wfd fd
+}
+
+iovec_in {
+ addr buffer[in]
+ len len[addr, intptr]
+}
+
+iovec_out {
+ addr buffer[out]
+ len len[addr, intptr]
+}
+
+stat {
+ dev int16
+ ino int32
+ mode int16
+ nlink int16
+ uid uid
+ gid gid
+ rdev int16
+ size int32
+ blksize int32
+ blocks int32
+ atime int32
+ ansec int32
+ mtime int32
+ mnsec int32
+ ctime int32
+ cnsec int32
+ pad1 int32
+ pad2 int32
+}
+
+open_flags = O_RDONLY, O_WRONLY, O_RDWR, O_APPEND, FASYNC, O_CLOEXEC, O_CREAT, O_DIRECT, O_DIRECTORY, O_EXCL, O_NOCTTY, O_NOFOLLOW, O_NONBLOCK, O_SYNC, O_TRUNC
+open_mode = S_IRUSR, S_IWUSR, S_IXUSR, S_IRGRP, S_IWGRP, S_IXGRP, S_IROTH, S_IWOTH, S_IXOTH
+seek_whence = SEEK_SET, SEEK_CUR, SEEK_END, SEEK_DATA, SEEK_HOLE
+pipe_flags = O_NONBLOCK, O_CLOEXEC
diff --git a/sys/freebsd/posix_fs_amd64.const b/sys/freebsd/posix_fs_amd64.const
new file mode 100644
index 000000000..eec3f2db0
--- /dev/null
+++ b/sys/freebsd/posix_fs_amd64.const
@@ -0,0 +1,46 @@
+# AUTOGENERATED FILE
+AT_FDCWD = 18446744073709551516
+FASYNC = 64
+O_APPEND = 8
+O_CLOEXEC = 1048576
+O_CREAT = 512
+O_DIRECT = 65536
+O_DIRECTORY = 131072
+O_EXCL = 2048
+O_NOCTTY = 32768
+O_NOFOLLOW = 256
+O_NONBLOCK = 4
+O_RDONLY = 0
+O_RDWR = 2
+O_SYNC = 128
+O_TRUNC = 1024
+O_WRONLY = 1
+SEEK_CUR = 1
+SEEK_DATA = 3
+SEEK_END = 2
+SEEK_HOLE = 4
+SEEK_SET = 0
+SYS_close = 6
+SYS_dup = 41
+SYS_dup2 = 90
+SYS_freebsd11_fstat = 189
+SYS_fstat = 551
+SYS_lseek = 478
+SYS_open = 5
+SYS_openat = 499
+SYS_pipe2 = 542
+SYS_preadv = 289
+SYS_pwritev = 290
+SYS_read = 3
+SYS_readv = 120
+SYS_write = 4
+SYS_writev = 121
+S_IRGRP = 32
+S_IROTH = 4
+S_IRUSR = 256
+S_IWGRP = 16
+S_IWOTH = 2
+S_IWUSR = 128
+S_IXGRP = 8
+S_IXOTH = 1
+S_IXUSR = 64
diff --git a/sys/freebsd/posix_mm.txt b/sys/freebsd/posix_mm.txt
new file mode 100644
index 000000000..f275b543b
--- /dev/null
+++ b/sys/freebsd/posix_mm.txt
@@ -0,0 +1,21 @@
+# Copyright 2017 syzkaller project authors. All rights reserved.
+# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
+
+include <sys/types.h>
+include <sys/mman.h>
+
+mmap(addr vma, len len[addr], prot flags[mmap_prot], flags flags[mmap_flags], fd fd, offset fileoff) vma
+munmap(addr vma, len len[addr])
+mprotect(addr vma, len len[addr], prot flags[mmap_prot])
+msync(addr vma, len len[addr], f flags[msync_flags])
+madvise(addr vma, len len[addr], advice flags[madvise_flags])
+mlock(addr vma, size len[addr])
+munlock(addr vma, size len[addr])
+mlockall(flags flags[mlockall_flags])
+munlockall()
+
+mmap_prot = PROT_EXEC, PROT_READ, PROT_WRITE
+msync_flags = MS_ASYNC, MS_SYNC, MS_INVALIDATE
+mmap_flags = MAP_SHARED, MAP_PRIVATE, MAP_32BIT, MAP_ANON, MAP_FILE, MAP_FIXED, MAP_STACK
+madvise_flags = MADV_NORMAL, MADV_RANDOM, MADV_SEQUENTIAL, MADV_WILLNEED, MADV_DONTNEED
+mlockall_flags = MCL_CURRENT, MCL_FUTURE
diff --git a/sys/freebsd/posix_mm_amd64.const b/sys/freebsd/posix_mm_amd64.const
new file mode 100644
index 000000000..c8550ad8b
--- /dev/null
+++ b/sys/freebsd/posix_mm_amd64.const
@@ -0,0 +1,30 @@
+# AUTOGENERATED FILE
+MADV_DONTNEED = 4
+MADV_NORMAL = 0
+MADV_RANDOM = 1
+MADV_SEQUENTIAL = 2
+MADV_WILLNEED = 3
+MAP_32BIT = 524288
+MAP_ANON = 4096
+MAP_FILE = 0
+MAP_FIXED = 16
+MAP_PRIVATE = 2
+MAP_SHARED = 1
+MAP_STACK = 1024
+MCL_CURRENT = 1
+MCL_FUTURE = 2
+MS_ASYNC = 1
+MS_INVALIDATE = 2
+MS_SYNC = 0
+PROT_EXEC = 4
+PROT_READ = 1
+PROT_WRITE = 2
+SYS_madvise = 75
+SYS_mlock = 203
+SYS_mlockall = 324
+SYS_mmap = 477
+SYS_mprotect = 74
+SYS_msync = 65
+SYS_munlock = 204
+SYS_munlockall = 325
+SYS_munmap = 73
diff --git a/sys/freebsd/socket.txt b/sys/freebsd/socket.txt
new file mode 100644
index 000000000..2c2d3600e
--- /dev/null
+++ b/sys/freebsd/socket.txt
@@ -0,0 +1,119 @@
+# Copyright 2017 syzkaller project authors. All rights reserved.
+# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
+
+# TODO: due to autobind a socket can bind to port 0, that will result in a random port which is not reproducible
+
+include <sys/types.h>
+include <sys/socket.h>
+include <sys/sockio.h>
+include <netinet/in.h>
+include <linux/linux.h>
+include <compat/linux/linux_socket.h>
+
+resource sock[fd]
+
+# TODO: describe socketcall syscall
+
+socket(domain flags[socket_domain], type flags[socket_type], proto int8) sock
+socketpair(domain flags[socket_domain], type flags[socket_type], proto int8, fds ptr[out, pipefd])
+bind(fd sock, addr ptr[in, sockaddr_storage], addrlen len[addr])
+connect(fd sock, addr ptr[in, sockaddr_storage], addrlen len[addr])
+accept(fd sock, peer ptr[out, sockaddr_storage, opt], peerlen ptr[inout, len[peer, int32]]) sock
+accept4(fd sock, peer ptr[out, sockaddr_storage, opt], peerlen ptr[inout, len[peer, int32]], flags flags[accept_flags]) sock
+sendto(fd sock, buf buffer[in], len len[buf], f flags[send_flags], addr ptr[in, sockaddr_storage, opt], addrlen len[addr])
+recvfrom(fd sock, buf buffer[out], len len[buf], f flags[recv_flags], addr ptr[in, sockaddr_storage, opt], addrlen len[addr])
+getsockname(fd sock, addr ptr[out, sockaddr_storage], addrlen ptr[inout, len[addr, int32]])
+getpeername(fd sock, peer ptr[out, sockaddr_storage], peerlen ptr[inout, len[peer, int32]])
+
+sendmsg(fd sock, msg ptr[in, send_msghdr], f flags[send_flags])
+recvmsg(fd sock, msg ptr[in, recv_msghdr], f flags[recv_flags])
+
+listen(fd sock, backlog int32)
+shutdown(fd sock, how flags[shutdown_flags])
+
+getsockopt(fd sock, level int32, optname int32, optval buffer[out], optlen ptr[inout, len[optval, int32]])
+setsockopt(fd sock, level int32, optname int32, optval buffer[in], optlen len[optval])
+
+socket_domain = AF_UNIX, AF_INET, AF_INET6, AF_IPX, AF_AX25, AF_APPLETALK
+socket_type = SOCK_STREAM, SOCK_DGRAM, SOCK_RAW, SOCK_RDM, SOCK_SEQPACKET, SOCK_NONBLOCK, SOCK_CLOEXEC
+accept_flags = SOCK_NONBLOCK, SOCK_CLOEXEC
+shutdown_flags = SHUT_RD, SHUT_WR
+send_flags = MSG_CONFIRM, MSG_DONTROUTE, MSG_DONTWAIT, MSG_EOR, MSG_NOSIGNAL, MSG_OOB
+recv_flags = MSG_CMSG_CLOEXEC, MSG_DONTWAIT, MSG_ERRQUEUE, MSG_OOB, MSG_PEEK, MSG_TRUNC, MSG_WAITALL, MSG_WAITFORONE
+cmsg_levels = SOL_SOCKET, IPPROTO_ICMP, SOL_IP, SOL_TCP, LINUX_SOL_UDP, SOL_IPV6, SOL_IPX, SOL_AX25
+
+# This sockaddr type corresponds to the struct sockaddr and is 16 bytes or less.
+sockaddr [
+# AF_UNIX sockaddr in bigger than 16 bytes
+ in sockaddr_in
+ random array[int32, 4]
+]
+
+# This sockaddr type corresponds to the sockaddr_storage type and is 128 bytes size.
+sockaddr_storage [
+ un sockaddr_un
+ in sockaddr_in
+ in6 sockaddr_in6
+] [varlen]
+
+sockaddr_generic {
+ sa_family flags[socket_domain, int16]
+ sa_data array[int8, 14]
+}
+
+sockaddr_storage_generic {
+ sa_family flags[socket_domain, int16]
+ sa_data array[int8, 126]
+}
+
+send_msghdr {
+ msg_name ptr[in, sockaddr_storage, opt]
+ msg_namelen len[msg_name, int32]
+ msg_iov ptr[in, array[iovec_in]]
+ msg_iovlen len[msg_iov, intptr]
+ msg_control ptr[in, array[cmsghdr]]
+ msg_controllen len[msg_control, intptr]
+ msg_flags flags[send_flags, int32]
+}
+
+send_mmsghdr {
+ msg_hdr send_msghdr
+ msg_len int32
+}
+
+recv_msghdr {
+ msg_name ptr[out, sockaddr_storage, opt]
+ msg_namelen len[msg_name, int32]
+ msg_iov ptr[in, array[iovec_out]]
+ msg_iovlen len[msg_iov, intptr]
+ msg_control buffer[out]
+ msg_controllen len[msg_control, intptr]
+ msg_flags int32
+}
+
+recv_mmsghdr {
+ msg_hdr recv_msghdr
+ msg_len int32
+}
+
+cmsghdr {
+ cmsg_len len[parent, intptr]
+ cmsg_level flags[cmsg_levels, int32]
+ cmsg_type int32
+ data array[int8]
+} [align_ptr]
+
+# Socket options
+
+getsockopt$sock_int(fd sock, level const[SOL_SOCKET], optname flags[sockopt_opt_sock_int], optval ptr[out, int32], optlen ptr[inout, len[optval, int32]])
+setsockopt$sock_int(fd sock, level const[SOL_SOCKET], optname flags[sockopt_opt_sock_int], optval ptr[in, int32], optlen len[optval])
+getsockopt$sock_linger(fd sock, level const[SOL_SOCKET], optname const[SO_LINGER], optval ptr[out, linger], optlen ptr[inout, len[optval, int32]])
+setsockopt$sock_linger(fd sock, level const[SOL_SOCKET], optname const[SO_LINGER], optval ptr[in, linger], optlen len[optval])
+getsockopt$sock_cred(fd sock, level const[SOL_SOCKET], optname const[SO_PEERCRED], optval ptr[out, ucred], optlen ptr[inout, len[optval, int32]])
+setsockopt$sock_cred(fd sock, level const[SOL_SOCKET], optname const[SO_PEERCRED], optval ptr[in, ucred], optlen len[optval])
+getsockopt$sock_timeval(fd sock, level const[SOL_SOCKET], optname flags[sockopt_opt_sock_timeval], optval ptr[out, timeval], optlen ptr[inout, len[optval, int32]])
+setsockopt$sock_timeval(fd sock, level const[SOL_SOCKET], optname flags[sockopt_opt_sock_timeval], optval ptr[in, timeval], optlen len[optval])
+getsockopt$SO_PEERCRED(fd sock, level const[SOL_SOCKET], optname const[SO_PEERCRED], optval ptr[out, ucred], optlen len[optval])
+
+sockopt_opt_sock_int = SO_ACCEPTCONN, SO_BROADCAST, SO_DEBUG, SO_ERROR, SO_DONTROUTE, SO_KEEPALIVE, SO_PRIORITY, SO_PROTOCOL, SO_RCVBUF, SO_RCVLOWAT, SO_SNDLOWAT, SO_REUSEADDR, SO_SNDBUF, LINUX_SO_TIMESTAMP, SO_TYPE, SO_REUSEPORT, SO_OOBINLINE, SO_NO_CHECK, SO_PASSCRED
+sockopt_opt_sock_timeval = SO_RCVTIMEO, SO_SNDTIMEO
diff --git a/sys/freebsd/socket_amd64.const b/sys/freebsd/socket_amd64.const
new file mode 100644
index 000000000..397da6358
--- /dev/null
+++ b/sys/freebsd/socket_amd64.const
@@ -0,0 +1,112 @@
+# AUTOGENERATED FILE
+AF_APPLETALK = 16
+AF_AX25 = 3
+AF_INET = 2
+AF_INET6 = 28
+AF_IPX = 23
+AF_UNIX = 1
+IPPROTO_ICMP = 1
+LINUX_AF_APPLETALK = 5
+LINUX_AF_INET = 2
+LINUX_AF_INET6 = 10
+LINUX_AF_IPX = 4
+LINUX_AF_UNIX = 1
+LINUX_MSG_CMSG_CLOEXEC = 1073741824
+LINUX_MSG_DONTROUTE = 4
+LINUX_MSG_DONTWAIT = 64
+LINUX_MSG_EOR = 128
+LINUX_MSG_NOSIGNAL = 16384
+LINUX_MSG_OOB = 1
+LINUX_MSG_PEEK = 2
+LINUX_MSG_TRUNC = 32
+LINUX_MSG_WAITALL = 256
+LINUX_MSG_WAITFORONE = 65536
+LINUX_SOCK_DGRAM = 2
+LINUX_SOCK_RAW = 3
+LINUX_SOCK_RDM = 4
+LINUX_SOCK_SEQPACKET = 5
+LINUX_SOCK_STREAM = 1
+LINUX_SOL_SOCKET = 1
+LINUX_SOL_UDP = 17
+LINUX_SO_ACCEPTCONN = 30
+LINUX_SO_BROADCAST = 6
+LINUX_SO_DEBUG = 1
+LINUX_SO_DONTROUTE = 5
+LINUX_SO_ERROR = 4
+LINUX_SO_KEEPALIVE = 9
+LINUX_SO_LINGER = 13
+LINUX_SO_OOBINLINE = 10
+LINUX_SO_RCVBUF = 8
+LINUX_SO_RCVLOWAT = 18
+LINUX_SO_RCVTIMEO = 20
+LINUX_SO_REUSEADDR = 2
+LINUX_SO_SNDBUF = 7
+LINUX_SO_SNDLOWAT = 19
+LINUX_SO_SNDTIMEO = 21
+LINUX_SO_TIMESTAMP = 29
+LINUX_SO_TYPE = 3
+MSG_CMSG_CLOEXEC = 262144
+MSG_CONFIRM = 2048
+MSG_DONTROUTE = 4
+MSG_DONTWAIT = 128
+MSG_EOR = 8
+MSG_ERRQUEUE = 8192
+MSG_NOSIGNAL = 131072
+MSG_OOB = 1
+MSG_PEEK = 2
+MSG_TRUNC = 16
+MSG_WAITALL = 64
+MSG_WAITFORONE = 524288
+SHUT_RD = 0
+SHUT_WR = 1
+SOCK_CLOEXEC = 268435456
+SOCK_DGRAM = 2
+SOCK_NONBLOCK = 536870912
+SOCK_RAW = 3
+SOCK_RDM = 4
+SOCK_SEQPACKET = 5
+SOCK_STREAM = 1
+SOL_AX25 = 257
+SOL_IP = 0
+SOL_IPV6 = 41
+SOL_IPX = 256
+SOL_SOCKET = 65535
+SOL_TCP = 6
+SO_ACCEPTCONN = 2
+SO_BROADCAST = 32
+SO_DEBUG = 1
+SO_DONTROUTE = 16
+SO_ERROR = 4103
+SO_KEEPALIVE = 8
+SO_LINGER = 128
+SO_NO_CHECK = 11
+SO_OOBINLINE = 256
+SO_PASSCRED = 16
+SO_PEERCRED = 17
+SO_PRIORITY = 12
+SO_PROTOCOL = 4118
+SO_RCVBUF = 4098
+SO_RCVLOWAT = 4100
+SO_RCVTIMEO = 4102
+SO_REUSEADDR = 4
+SO_REUSEPORT = 512
+SO_SNDBUF = 4097
+SO_SNDLOWAT = 4099
+SO_SNDTIMEO = 4101
+SO_TYPE = 4104
+SYS_accept = 30
+SYS_accept4 = 541
+SYS_bind = 104
+SYS_connect = 98
+SYS_getpeername = 31
+SYS_getsockname = 32
+SYS_getsockopt = 118
+SYS_listen = 106
+SYS_recvfrom = 29
+SYS_recvmsg = 27
+SYS_sendmsg = 28
+SYS_sendto = 133
+SYS_setsockopt = 105
+SYS_shutdown = 134
+SYS_socket = 97
+SYS_socketpair = 135
diff --git a/sys/freebsd/socket_inet.txt b/sys/freebsd/socket_inet.txt
new file mode 100644
index 000000000..866ff8d91
--- /dev/null
+++ b/sys/freebsd/socket_inet.txt
@@ -0,0 +1,131 @@
+# Copyright 2017 syzkaller project authors. All rights reserved.
+# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
+
+include <sys/types.h>
+include <sys/socket.h>
+include <sys/sockio.h>
+include <netinet/in.h>
+
+# IP sockets
+
+resource sock_in[sock]
+resource ifindex[int32]
+
+sock_in_pair {
+ f0 sock_in
+ f1 sock_in
+}
+
+sockaddr_in {
+ family const[AF_INET, int16]
+ port proc[20000, 4, int16be]
+ addr ipv4_addr
+ pad array[const[0, int8], 8]
+}
+
+sockaddr_storage_in {
+ addr sockaddr_in
+ pad array[const[0, int64], 15]
+}
+
+socket$inet(domain const[AF_INET], type flags[socket_type], proto int8) sock_in
+socketpair$inet(domain const[AF_INET], type flags[socket_type], proto int8, fds ptr[out, sock_in_pair])
+accept$inet(fd sock_in, peer ptr[out, sockaddr_in, opt], peerlen ptr[inout, len[peer, int32]]) sock_in
+accept4$inet(fd sock_in, peer ptr[out, sockaddr_in, opt], peerlen ptr[inout, len[peer, int32]], flags flags[accept_flags]) sock_in
+bind$inet(fd sock_in, addr ptr[in, sockaddr_in], addrlen len[addr])
+connect$inet(fd sock_in, addr ptr[in, sockaddr_in], addrlen len[addr])
+sendto$inet(fd sock_in, buf buffer[in], len len[buf], f flags[send_flags], addr ptr[in, sockaddr_in, opt], addrlen len[addr])
+recvfrom$inet(fd sock_in, buf buffer[out], len len[buf], f flags[recv_flags], addr ptr[in, sockaddr_in, opt], addrlen len[addr])
+getsockname$inet(fd sock_in, addr ptr[out, sockaddr_in], addrlen ptr[inout, len[addr, int32]])
+getpeername$inet(fd sock_in, peer ptr[out, sockaddr_in], peerlen ptr[inout, len[peer, int32]])
+
+# Generic IP options
+
+inet_option_types_int = IP_TOS, IP_TTL, IP_HDRINCL, IP_RECVOPTS, IP_RETOPTS, IP_RECVTTL, IP_RECVTOS, IP_RECVORIGDSTADDR, IP_MINTTL
+
+inet_option_types_buf = IP_OPTIONS, IP_IPSEC_POLICY, IP_MULTICAST_IF, IP_ADD_MEMBERSHIP, IP_DROP_MEMBERSHIP, IP_UNBLOCK_SOURCE, IP_BLOCK_SOURCE, IP_ADD_SOURCE_MEMBERSHIP, IP_DROP_SOURCE_MEMBERSHIP, IP_MSFILTER, MCAST_JOIN_GROUP, MCAST_BLOCK_SOURCE, MCAST_UNBLOCK_SOURCE, MCAST_LEAVE_GROUP, MCAST_JOIN_SOURCE_GROUP, MCAST_LEAVE_SOURCE_GROUP
+
+getsockopt$inet_int(fd sock_in, level const[IPPROTO_IP], optname flags[inet_option_types_int], optval ptr[out, int32], optlen ptr[inout, len[optval, int32]])
+setsockopt$inet_int(fd sock_in, level const[IPPROTO_IP], optname flags[inet_option_types_int], optval ptr[in, int32], optlen len[optval])
+getsockopt$inet_buf(fd sock_in, level const[IPPROTO_IP], optname flags[inet_option_types_buf], optval buffer[out], optlen ptr[inout, len[optval, int32]])
+setsockopt$inet_buf(fd sock_in, level const[IPPROTO_IP], optname flags[inet_option_types_buf], optval buffer[in], optlen len[optval])
+
+# Specific IP options
+
+sockopt_opt_ip_opts = IP_OPTIONS
+
+getsockopt$inet_opts(fd sock_in, level const[IPPROTO_IP], optname flags[sockopt_opt_ip_opts], optval buffer[out], optlen ptr[inout, len[optval, int32]])
+setsockopt$inet_opts(fd sock_in, level const[IPPROTO_IP], optname flags[sockopt_opt_ip_opts], optval buffer[in], optlen len[optval])
+
+sockopt_opt_ip_mreq = IP_ADD_MEMBERSHIP, IP_DROP_MEMBERSHIP, IP_MULTICAST_IF
+
+getsockopt$inet_mreq(fd sock_in, level const[IPPROTO_IP], optname flags[sockopt_opt_ip_mreq], optval ptr[out, ip_mreq], optlen ptr[inout, len[optval, int32]])
+setsockopt$inet_mreq(fd sock_in, level const[IPPROTO_IP], optname flags[sockopt_opt_ip_mreq], optval ptr[in, ip_mreq], optlen len[optval])
+getsockopt$inet_mreqn(fd sock_in, level const[IPPROTO_IP], optname flags[sockopt_opt_ip_mreq], optval ptr[out, ip_mreqn], optlen ptr[inout, len[optval, int32]])
+setsockopt$inet_mreqn(fd sock_in, level const[IPPROTO_IP], optname flags[sockopt_opt_ip_mreq], optval ptr[in, ip_mreqn], optlen len[optval])
+
+sockopt_opt_ip_mreqsrc = IP_ADD_SOURCE_MEMBERSHIP, IP_BLOCK_SOURCE, IP_DROP_SOURCE_MEMBERSHIP, IP_UNBLOCK_SOURCE
+
+getsockopt$inet_mreqsrc(fd sock_in, level const[IPPROTO_IP], optname flags[sockopt_opt_ip_mreqsrc], optval ptr[out, ip_mreq_source], optlen ptr[inout, len[optval, int32]])
+setsockopt$inet_mreqsrc(fd sock_in, level const[IPPROTO_IP], optname flags[sockopt_opt_ip_mreqsrc], optval ptr[in, ip_mreq_source], optlen len[optval])
+
+setsockopt$inet_msfilter(fd sock_in, level const[IPPROTO_IP], optname const[IP_MSFILTER], optval ptr[in, ip_msfilter], optlen len[optval])
+
+setsockopt$inet_MCAST_JOIN_GROUP(fd sock_in, level const[IPPROTO_IP], optname const[MCAST_JOIN_GROUP], optval ptr[in, group_req_in], optlen len[optval])
+setsockopt$inet_MCAST_LEAVE_GROUP(fd sock_in, level const[IPPROTO_IP], optname const[MCAST_LEAVE_GROUP], optval ptr[in, group_req_in], optlen len[optval])
+
+sockopt_opt_ip_group_source_req = MCAST_JOIN_SOURCE_GROUP, MCAST_LEAVE_SOURCE_GROUP, MCAST_BLOCK_SOURCE, MCAST_UNBLOCK_SOURCE
+
+setsockopt$inet_group_source_req(fd sock_in, level const[IPPROTO_IP], optname flags[sockopt_opt_ip_group_source_req], optval ptr[in, group_source_req_in], optlen len[optval])
+
+ip_mreq {
+ imr_multiaddr ipv4_addr
+ imr_interface ipv4_addr
+}
+
+ip_mreqn {
+ imr_multiaddr ipv4_addr
+ imr_address ipv4_addr
+ imr_ifindex ifindex
+}
+
+ip_mreq_source {
+ imr_multiaddr ipv4_addr
+ imr_interface ipv4_addr
+ imr_sourceaddr ipv4_addr
+}
+
+ip_msfilter {
+ imsf_multiaddr ipv4_addr
+ imsf_interface ipv4_addr
+ imsf_fmode flags[ip_msfilter_mode, int32]
+ imsf_numsrc len[imsf_slist, int32]
+ imsf_slist array[ipv4_addr]
+}
+
+ip_msfilter_mode = MCAST_INCLUDE, MCAST_EXCLUDE
+
+in_pktinfo {
+ ipi_ifindex ifindex
+ ipi_spec_dst ipv4_addr
+ ipi_addr ipv4_addr
+}
+
+group_req_in {
+ gr_interface int32
+ gr_group sockaddr_storage_in
+}
+
+group_source_req_in {
+ gsr_interface int32
+ gsr_group sockaddr_storage_in
+ gsr_source sockaddr_storage_in
+}
+
+group_filter_in {
+ gf_interface int32
+ gf_group sockaddr_storage_in
+ gf_fmode flags[ip_msfilter_mode, int32]
+ gf_numsrc len[gf_slist, int32]
+ gf_slist array[sockaddr_storage_in]
+}
diff --git a/sys/freebsd/socket_inet6.txt b/sys/freebsd/socket_inet6.txt
new file mode 100644
index 000000000..c4f654a8e
--- /dev/null
+++ b/sys/freebsd/socket_inet6.txt
@@ -0,0 +1,127 @@
+# Copyright 2017 syzkaller project authors. All rights reserved.
+# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
+
+include <sys/types.h>
+include <sys/param.h>
+include <sys/socket.h>
+include <netinet/in.h>
+include <net/route.h>
+include <netinet6/ip6_mroute.h>
+include <linux/linux.h>
+include <compat/linux/linux_socket.h>
+include <sys/sockio.h>
+
+# IPv6 sockets
+
+resource sock_in6[sock]
+
+sock_in6_pair {
+ f0 sock_in6
+ f1 sock_in6
+}
+
+sockaddr_in6 {
+ family const[AF_INET6, int16]
+ port proc[20000, 4, int16be]
+ flow int32
+ addr ipv6_addr
+ scope int32
+}
+
+sockaddr_storage_in6 {
+ addr sockaddr_in6
+ pad array[const[0, int64], 12]
+}
+
+socket$inet6(domain const[AF_INET6], type flags[socket_type], proto int8) sock_in6
+socketpair$inet6(domain const[AF_INET6], type flags[socket_type], proto int8, fds ptr[out, sock_in6_pair])
+accept$inet6(fd sock_in6, peer ptr[out, sockaddr_in6, opt], peerlen ptr[inout, len[peer, int32]]) sock_in6
+accept4$inet6(fd sock_in6, peer ptr[out, sockaddr_in6, opt], peerlen ptr[inout, len[peer, int32]], flags flags[accept_flags]) sock_in6
+bind$inet6(fd sock_in6, addr ptr[in, sockaddr_in6], addrlen len[addr])
+connect$inet6(fd sock_in6, addr ptr[in, sockaddr_in6], addrlen len[addr])
+sendto$inet6(fd sock_in6, buf buffer[in], len len[buf], f flags[send_flags], addr ptr[in, sockaddr_in6, opt], addrlen len[addr])
+recvfrom$inet6(fd sock_in6, buf buffer[out], len len[buf], f flags[recv_flags], addr ptr[in, sockaddr_in6, opt], addrlen len[addr])
+getsockname$inet6(fd sock_in6, addr ptr[out, sockaddr_in6], addrlen ptr[inout, len[addr, int32]])
+getpeername$inet6(fd sock_in6, peer ptr[out, sockaddr_in6], peerlen ptr[inout, len[peer, int32]])
+
+# Generic IPv6 options
+
+inet6_option_types_int = IPV6_2292PKTINFO, IPV6_2292HOPOPTS, IPV6_2292DSTOPTS, IPV6_2292RTHDR, IPV6_CHECKSUM, IPV6_2292HOPLIMIT, IPV6_NEXTHOP, IPV6_UNICAST_HOPS, IPV6_MULTICAST_IF, IPV6_MULTICAST_HOPS, IPV6_MULTICAST_LOOP, IPV6_V6ONLY, IPV6_RECVPKTINFO, IPV6_RECVHOPLIMIT, IPV6_HOPLIMIT, IPV6_RECVHOPOPTS, IPV6_RECVRTHDR, IPV6_RECVDSTOPTS, IPV6_RECVPATHMTU, IPV6_DONTFRAG, IPV6_RECVTCLASS, IPV6_TCLASS, IPV6_AUTOFLOWLABEL, IPV6_RECVORIGDSTADDR
+
+inet6_option_types_buf = IPV6_2292PKTOPTIONS, IPV6_IPSEC_POLICY, MCAST_JOIN_GROUP, MCAST_BLOCK_SOURCE, MCAST_UNBLOCK_SOURCE, MCAST_LEAVE_GROUP, MCAST_JOIN_SOURCE_GROUP, MCAST_LEAVE_SOURCE_GROUP, IPV6_PKTINFO, IPV6_HOPOPTS, IPV6_RTHDRDSTOPTS, IPV6_RTHDR, IPV6_DSTOPTS, IPV6_PATHMTU, MRT6_ADD_MIF, MRT6_ADD_MFC, MRT6_DEL_MFC
+
+getsockopt$inet6_int(fd sock_in6, level const[IPPROTO_IPV6], optname flags[inet6_option_types_int], optval ptr[out, int32], optlen ptr[inout, len[optval, int32]])
+setsockopt$inet6_int(fd sock_in6, level const[IPPROTO_IPV6], optname flags[inet6_option_types_int], optval ptr[in, int32], optlen len[optval])
+getsockopt$inet6_buf(fd sock_in6, level const[IPPROTO_IPV6], optname flags[inet6_option_types_buf], optval buffer[out], optlen ptr[inout, len[optval, int32]])
+setsockopt$inet6_buf(fd sock_in6, level const[IPPROTO_IPV6], optname flags[inet6_option_types_buf], optval buffer[in], optlen len[optval])
+
+# Specific IPv6 options
+
+setsockopt$inet6_MCAST_JOIN_GROUP(fd sock_in6, level const[IPPROTO_IPV6], optname const[MCAST_JOIN_GROUP], optval ptr[in, group_req_in6], optlen len[optval])
+setsockopt$inet6_MCAST_LEAVE_GROUP(fd sock_in6, level const[IPPROTO_IPV6], optname const[MCAST_LEAVE_GROUP], optval ptr[in, group_req_in6], optlen len[optval])
+
+sockopt_opt_ipv6_group_source_req = MCAST_JOIN_SOURCE_GROUP, MCAST_LEAVE_SOURCE_GROUP, MCAST_BLOCK_SOURCE, MCAST_UNBLOCK_SOURCE
+
+setsockopt$inet6_group_source_req(fd sock_in6, level const[IPPROTO_IPV6], optname flags[sockopt_opt_ipv6_group_source_req], optval ptr[in, group_source_req_in6], optlen len[optval])
+
+setsockopt$inet6_IPV6_PKTINFO(fd sock_in6, level const[IPPROTO_IPV6], optname const[IPV6_PKTINFO], optval ptr[in, in6_pktinfo], optlen len[optval])
+
+# TODO: IPV6_HOPOPTS, IPV6_RTHDRDSTOPTS, IPV6_RTHDR, IPV6_DSTOPTS
+# TODO: IPV6_PATHMTU
+# TODO: IP6T_SO_GET_REVISION_MATCH, IP6T_SO_GET_REVISION_TARGET
+
+setsockopt$inet6_MRT6_ADD_MIF(fd sock_in6, level const[IPPROTO_IPV6], optname const[MRT6_ADD_MIF], optval ptr[in, mif6ctl], optlen len[optval])
+setsockopt$inet6_MRT6_ADD_MFC(fd sock_in6, level const[IPPROTO_IPV6], optname const[MRT6_ADD_MFC], optval ptr[in, mf6cctl], optlen len[optval])
+setsockopt$inet6_MRT6_DEL_MFC(fd sock_in6, level const[IPPROTO_IPV6], optname const[MRT6_DEL_MFC], optval ptr[in, mf6cctl], optlen len[optval])
+
+mif6ctl {
+ mif6c_mifi int16
+ mif6c_flags flags[mif6c_flags, int8]
+ vifc_threshold int8
+ mif6c_pifi int16
+ vifc_rate_limit int32
+}
+
+mif6c_flags = MIFF_REGISTER
+
+mf6cctl {
+ mf6cc_origin sockaddr_in6
+ mf6cc_mcastgrp sockaddr_in6
+ mf6cc_parent int16
+ mf6cc_ifset array[int32, 8]
+}
+
+ipv6_mreq {
+ multi ipv6_addr
+ ifindex ifindex
+}
+
+group_req_in6 {
+ gr_interface int32
+ gr_group sockaddr_storage_in6
+}
+
+group_source_req_in6 {
+ gsr_interface int32
+ gsr_group sockaddr_storage_in6
+ gsr_source sockaddr_storage_in6
+}
+
+group_filter_in6 {
+ gf_interface int32
+ gf_group sockaddr_storage_in6
+ gf_fmode flags[ip_msfilter_mode, int32]
+ gf_numsrc len[gf_slist, int32]
+ gf_slist array[sockaddr_storage_in6]
+}
+
+in6_pktinfo {
+ ipi6_addr ipv6_addr
+ ipi6_ifindex ifindex
+}
+
+in6_ifreq {
+ ifr6_addr ipv6_addr
+ ifr6_prefixlen int32
+ ifr6_ifindex ifindex
+}
diff --git a/sys/freebsd/socket_inet6_amd64.const b/sys/freebsd/socket_inet6_amd64.const
new file mode 100644
index 000000000..75b5b6b07
--- /dev/null
+++ b/sys/freebsd/socket_inet6_amd64.const
@@ -0,0 +1,79 @@
+# AUTOGENERATED FILE
+AF_INET6 = 28
+IPPROTO_IPV6 = 41
+IPV6_2292DSTOPTS = 23
+IPV6_2292HOPLIMIT = 20
+IPV6_2292HOPOPTS = 22
+IPV6_2292PKTINFO = 19
+IPV6_2292PKTOPTIONS = 25
+IPV6_2292RTHDR = 24
+IPV6_AUTOFLOWLABEL = 59
+IPV6_CHECKSUM = 26
+IPV6_DONTFRAG = 62
+IPV6_DSTOPTS = 50
+IPV6_HOPLIMIT = 47
+IPV6_HOPOPTS = 49
+IPV6_IPSEC_POLICY = 28
+IPV6_MULTICAST_HOPS = 10
+IPV6_MULTICAST_IF = 9
+IPV6_MULTICAST_LOOP = 11
+IPV6_NEXTHOP = 48
+IPV6_PATHMTU = 44
+IPV6_PKTINFO = 46
+IPV6_RECVDSTOPTS = 40
+IPV6_RECVHOPLIMIT = 37
+IPV6_RECVHOPOPTS = 39
+IPV6_RECVORIGDSTADDR = 72
+IPV6_RECVPATHMTU = 43
+IPV6_RECVPKTINFO = 36
+IPV6_RECVRTHDR = 38
+IPV6_RECVTCLASS = 57
+IPV6_RTHDR = 51
+IPV6_RTHDRDSTOPTS = 35
+IPV6_TCLASS = 61
+IPV6_UNICAST_HOPS = 4
+IPV6_V6ONLY = 27
+LINUX_AF_INET6 = 10
+LINUX_IPV6_CHECKSUM = 7
+LINUX_IPV6_DONTFRAG = 62
+LINUX_IPV6_DSTOPTS = 59
+LINUX_IPV6_HOPLIMIT = 52
+LINUX_IPV6_HOPOPTS = 54
+LINUX_IPV6_MULTICAST_HOPS = 18
+LINUX_IPV6_MULTICAST_IF = 17
+LINUX_IPV6_MULTICAST_LOOP = 19
+LINUX_IPV6_NEXTHOP = 9
+LINUX_IPV6_PATHMTU = 61
+LINUX_IPV6_PKTINFO = 50
+LINUX_IPV6_RECVDSTOPTS = 58
+LINUX_IPV6_RECVHOPLIMIT = 51
+LINUX_IPV6_RECVHOPOPTS = 53
+LINUX_IPV6_RECVPATHMTU = 60
+LINUX_IPV6_RECVPKTINFO = 49
+LINUX_IPV6_RECVRTHDR = 56
+LINUX_IPV6_RTHDR = 57
+LINUX_IPV6_RTHDRDSTOPTS = 55
+LINUX_IPV6_UNICAST_HOPS = 16
+LINUX_IPV6_V6ONLY = 26
+MCAST_BLOCK_SOURCE = 84
+MCAST_JOIN_GROUP = 80
+MCAST_JOIN_SOURCE_GROUP = 82
+MCAST_LEAVE_GROUP = 81
+MCAST_LEAVE_SOURCE_GROUP = 83
+MCAST_UNBLOCK_SOURCE = 85
+MIFF_REGISTER = 1
+MRT6_ADD_MFC = 104
+MRT6_ADD_MIF = 102
+MRT6_DEL_MFC = 105
+SYS_accept = 30
+SYS_accept4 = 541
+SYS_bind = 104
+SYS_connect = 98
+SYS_getpeername = 31
+SYS_getsockname = 32
+SYS_getsockopt = 118
+SYS_recvfrom = 29
+SYS_sendto = 133
+SYS_setsockopt = 105
+SYS_socket = 97
+SYS_socketpair = 135
diff --git a/sys/freebsd/socket_inet_amd64.const b/sys/freebsd/socket_inet_amd64.const
new file mode 100644
index 000000000..c75eb7584
--- /dev/null
+++ b/sys/freebsd/socket_inet_amd64.const
@@ -0,0 +1,42 @@
+# AUTOGENERATED FILE
+AF_INET = 2
+IPPROTO_IP = 0
+IP_ADD_MEMBERSHIP = 12
+IP_ADD_SOURCE_MEMBERSHIP = 70
+IP_BLOCK_SOURCE = 72
+IP_DROP_MEMBERSHIP = 13
+IP_DROP_SOURCE_MEMBERSHIP = 71
+IP_HDRINCL = 2
+IP_IPSEC_POLICY = 21
+IP_MINTTL = 66
+IP_MSFILTER = 74
+IP_MULTICAST_IF = 9
+IP_OPTIONS = 1
+IP_RECVOPTS = 5
+IP_RECVORIGDSTADDR = 27
+IP_RECVTOS = 68
+IP_RECVTTL = 65
+IP_RETOPTS = 8
+IP_TOS = 3
+IP_TTL = 4
+IP_UNBLOCK_SOURCE = 73
+MCAST_BLOCK_SOURCE = 84
+MCAST_EXCLUDE = 2
+MCAST_INCLUDE = 1
+MCAST_JOIN_GROUP = 80
+MCAST_JOIN_SOURCE_GROUP = 82
+MCAST_LEAVE_GROUP = 81
+MCAST_LEAVE_SOURCE_GROUP = 83
+MCAST_UNBLOCK_SOURCE = 85
+SYS_accept = 30
+SYS_accept4 = 541
+SYS_bind = 104
+SYS_connect = 98
+SYS_getpeername = 31
+SYS_getsockname = 32
+SYS_getsockopt = 118
+SYS_recvfrom = 29
+SYS_sendto = 133
+SYS_setsockopt = 105
+SYS_socket = 97
+SYS_socketpair = 135
diff --git a/sys/freebsd/socket_inet_icmp.txt b/sys/freebsd/socket_inet_icmp.txt
new file mode 100644
index 000000000..9607aa0e6
--- /dev/null
+++ b/sys/freebsd/socket_inet_icmp.txt
@@ -0,0 +1,34 @@
+# Copyright 2017 syzkaller project authors. All rights reserved.
+# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
+
+# AF_INET and AF_INET6: ICMP support
+
+include <sys/types.h>
+include <sys/socket.h>
+include <netinet/in.h>
+include <linux/linux.h>
+include <compat/linux/linux_socket.h>
+
+resource sock_icmp[sock_in]
+
+socket$inet_icmp(domain const[AF_INET], type const[SOCK_DGRAM], proto const[IPPROTO_ICMP]) sock_icmp
+socket$inet_icmp_raw(domain const[AF_INET], type const[SOCK_RAW], proto const[IPPROTO_ICMP]) sock_icmp
+socketpair$inet_icmp(domain const[AF_INET], type const[SOCK_DGRAM], proto const[IPPROTO_ICMP], fds ptr[out, icmp_pair])
+socketpair$inet_icmp_raw(domain const[AF_INET], type const[SOCK_RAW], proto const[IPPROTO_ICMP], fds ptr[out, icmp_pair])
+
+icmp_pair {
+ f0 sock_icmp
+ f1 sock_icmp
+}
+
+resource sock_icmp6[sock_in6]
+
+socket$inet6_icmp(domain const[AF_INET6], type const[SOCK_DGRAM], proto const[IPPROTO_ICMPV6]) sock_icmp6
+socket$inet6_icmp_raw(domain const[AF_INET6], type const[SOCK_RAW], proto const[IPPROTO_ICMPV6]) sock_icmp6
+socketpair$inet6_icmp(domain const[AF_INET6], type const[SOCK_DGRAM], proto const[IPPROTO_ICMPV6], fds ptr[out, icmp6_pair])
+socketpair$inet6_icmp_raw(domain const[AF_INET6], type const[SOCK_RAW], proto const[IPPROTO_ICMPV6], fds ptr[out, icmp6_pair])
+
+icmp6_pair {
+ f0 sock_icmp6
+ f1 sock_icmp6
+}
diff --git a/sys/freebsd/socket_inet_icmp_amd64.const b/sys/freebsd/socket_inet_icmp_amd64.const
new file mode 100644
index 000000000..1b4a97dfd
--- /dev/null
+++ b/sys/freebsd/socket_inet_icmp_amd64.const
@@ -0,0 +1,13 @@
+# AUTOGENERATED FILE
+AF_INET = 2
+AF_INET6 = 28
+IPPROTO_ICMP = 1
+IPPROTO_ICMPV6 = 58
+LINUX_AF_INET = 2
+LINUX_AF_INET6 = 10
+LINUX_SOCK_DGRAM = 2
+LINUX_SOCK_RAW = 3
+SOCK_DGRAM = 2
+SOCK_RAW = 3
+SYS_socket = 97
+SYS_socketpair = 135
diff --git a/sys/freebsd/socket_inet_tcp.txt b/sys/freebsd/socket_inet_tcp.txt
new file mode 100644
index 000000000..458ce06ed
--- /dev/null
+++ b/sys/freebsd/socket_inet_tcp.txt
@@ -0,0 +1,59 @@
+# Copyright 2017 syzkaller project authors. All rights reserved.
+# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
+
+# AF_INET and AF_INET6: TCP support
+
+include <sys/types.h>
+include <sys/socket.h>
+include <netinet/in.h>
+include <netinet/tcp.h>
+include <linux/linux.h>
+include <compat/linux/linux_socket.h>
+
+resource sock_tcp[sock_in]
+
+tcp_pair {
+ f0 sock_tcp
+ f1 sock_tcp
+}
+
+socket$inet_tcp(domain const[AF_INET], type const[SOCK_STREAM], proto const[0]) sock_tcp
+socketpair$inet_tcp(domain const[AF_INET], type const[SOCK_STREAM], proto const[0], fds ptr[out, tcp_pair])
+
+resource sock_tcp6[sock_in6]
+
+tcp6_pair {
+ f0 sock_tcp6
+ f1 sock_tcp6
+}
+
+socket$inet6_tcp(domain const[AF_INET6], type const[SOCK_STREAM], proto const[0]) sock_tcp6
+socketpair$inet6_tcp(domain const[AF_INET6], type const[SOCK_STREAM], proto const[0], fds ptr[out, tcp6_pair])
+
+# Generic TCP socket options
+
+tcp_option_types_int = TCP_NODELAY, TCP_KEEPIDLE, TCP_KEEPINTVL, TCP_FASTOPEN
+
+tcp_option_types_buf = TCP_INFO, TCP_CONGESTION
+
+getsockopt$inet_tcp_int(fd sock_tcp, level const[IPPROTO_TCP], optname flags[tcp_option_types_int], optval ptr[out, int32], optlen ptr[inout, len[optval, int32]])
+setsockopt$inet_tcp_int(fd sock_tcp, level const[IPPROTO_TCP], optname flags[tcp_option_types_int], optval ptr[in, int32], optlen len[optval])
+getsockopt$inet6_tcp_int(fd sock_tcp6, level const[IPPROTO_TCP], optname flags[tcp_option_types_int], optval ptr[out, int32], optlen ptr[inout, len[optval, int32]])
+setsockopt$inet6_tcp_int(fd sock_tcp6, level const[IPPROTO_TCP], optname flags[tcp_option_types_int], optval ptr[in, int32], optlen len[optval])
+
+getsockopt$inet_tcp_buf(fd sock_tcp, level const[IPPROTO_TCP], optname flags[tcp_option_types_buf], optval buffer[out], optlen ptr[inout, len[optval, int32]])
+setsockopt$inet_tcp_buf(fd sock_tcp, level const[IPPROTO_TCP], optname flags[tcp_option_types_buf], optval buffer[in], optlen len[optval])
+getsockopt$inet6_tcp_buf(fd sock_tcp6, level const[IPPROTO_TCP], optname flags[tcp_option_types_buf], optval buffer[out], optlen ptr[inout, len[optval, int32]])
+setsockopt$inet6_tcp_buf(fd sock_tcp6, level const[IPPROTO_TCP], optname flags[tcp_option_types_buf], optval buffer[in], optlen len[optval])
+
+# Specific TCP socket options
+
+setsockopt$inet_tcp_TCP_CONGESTION(fd sock_tcp, level const[IPPROTO_TCP], optname const[TCP_CONGESTION], optval ptr[in, string[tcp_congestion_control_alg_names]], optlen len[optval])
+setsockopt$inet6_tcp_TCP_CONGESTION(fd sock_tcp6, level const[IPPROTO_TCP], optname const[TCP_CONGESTION], optval ptr[in, string[tcp_congestion_control_alg_names]], optlen len[optval])
+
+tcp_congestion_control_alg_names = "cubic", "reno", "bic", "cdg", "dctcp", "westwood", "highspeed", "hybla", "htcp", "vegas", "nv", "veno", "scalable", "lp", "yeah", "illinois"
+
+sockaddr_storage_tcp {
+ in sockaddr_storage_in
+ in6 sockaddr_storage_in6
+}
diff --git a/sys/freebsd/socket_inet_tcp_amd64.const b/sys/freebsd/socket_inet_tcp_amd64.const
new file mode 100644
index 000000000..b834de54f
--- /dev/null
+++ b/sys/freebsd/socket_inet_tcp_amd64.const
@@ -0,0 +1,21 @@
+# AUTOGENERATED FILE
+AF_INET = 2
+AF_INET6 = 28
+IPPROTO_TCP = 6
+LINUX_AF_INET = 2
+LINUX_AF_INET6 = 10
+LINUX_SOCK_STREAM = 1
+LINUX_TCP_KEEPIDLE = 4
+LINUX_TCP_KEEPINTVL = 5
+LINUX_TCP_NODELAY = 1
+SOCK_STREAM = 1
+SYS_getsockopt = 118
+SYS_setsockopt = 105
+SYS_socket = 97
+SYS_socketpair = 135
+TCP_CONGESTION = 64
+TCP_FASTOPEN = 1025
+TCP_INFO = 32
+TCP_KEEPIDLE = 256
+TCP_KEEPINTVL = 512
+TCP_NODELAY = 1
diff --git a/sys/freebsd/socket_inet_udp.txt b/sys/freebsd/socket_inet_udp.txt
new file mode 100644
index 000000000..81f219130
--- /dev/null
+++ b/sys/freebsd/socket_inet_udp.txt
@@ -0,0 +1,30 @@
+# Copyright 2017 syzkaller project authors. All rights reserved.
+# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
+
+# AF_INET and AF_INET6: UDP support
+
+include <sys/types.h>
+include <sys/socket.h>
+include <netinet/in.h>
+include <linux/linux.h>
+include <compat/linux/linux_socket.h>
+
+resource sock_udp[sock_in]
+
+udp_pair {
+ f0 sock_udp
+ f1 sock_udp
+}
+
+socket$inet_udp(domain const[AF_INET], type const[SOCK_DGRAM], proto const[0]) sock_udp
+socketpair$inet_udp(domain const[AF_INET], type const[SOCK_DGRAM], proto const[0], fds ptr[out, udp_pair])
+
+resource sock_udp6[sock_in6]
+
+udp6_pair {
+ f0 sock_udp6
+ f1 sock_udp6
+}
+
+socket$inet6_udp(domain const[AF_INET6], type const[SOCK_DGRAM], proto const[0]) sock_udp6
+socketpair$inet6_udp(domain const[AF_INET6], type const[SOCK_DGRAM], proto const[0], fds ptr[out, udp6_pair])
diff --git a/sys/freebsd/socket_inet_udp_amd64.const b/sys/freebsd/socket_inet_udp_amd64.const
new file mode 100644
index 000000000..d3a081a08
--- /dev/null
+++ b/sys/freebsd/socket_inet_udp_amd64.const
@@ -0,0 +1,9 @@
+# AUTOGENERATED FILE
+AF_INET = 2
+AF_INET6 = 28
+LINUX_AF_INET = 2
+LINUX_AF_INET6 = 10
+LINUX_SOCK_DGRAM = 2
+SOCK_DGRAM = 2
+SYS_socket = 97
+SYS_socketpair = 135
diff --git a/sys/freebsd/socket_unix.txt b/sys/freebsd/socket_unix.txt
new file mode 100644
index 000000000..6eebd627f
--- /dev/null
+++ b/sys/freebsd/socket_unix.txt
@@ -0,0 +1,80 @@
+# Copyright 2017 syzkaller project authors. All rights reserved.
+# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
+
+# AF_UNIX support.
+
+include <sys/types.h>
+include <sys/socket.h>
+include <netinet/in.h>
+include <linux/linux.h>
+include <compat/linux/linux_socket.h>
+
+resource sock_unix[sock]
+
+socket$unix(domain const[AF_UNIX], type flags[unix_socket_type], proto const[0]) sock_unix
+socketpair$unix(domain const[AF_UNIX], type flags[unix_socket_type], proto const[0], fds ptr[out, unix_pair])
+bind$unix(fd sock_unix, addr ptr[in, sockaddr_un], addrlen len[addr])
+connect$unix(fd sock_unix, addr ptr[in, sockaddr_un], addrlen len[addr])
+accept$unix(fd sock_unix, peer ptr[out, sockaddr_un, opt], peerlen ptr[inout, len[peer, int32]]) sock_unix
+accept4$unix(fd sock_unix, peer ptr[out, sockaddr_un, opt], peerlen ptr[inout, len[peer, int32]], flags flags[accept_flags]) sock_unix
+
+sendto$unix(fd sock_unix, buf buffer[in], len len[buf], f flags[send_flags], addr ptr[in, sockaddr_un, opt], addrlen len[addr])
+sendmsg$unix(fd sock_unix, msg ptr[in, msghdr_un], f flags[send_flags])
+recvfrom$unix(fd sock_unix, buf buffer[out], len len[buf], f flags[recv_flags], addr ptr[in, sockaddr_un, opt], addrlen len[addr])
+getsockname$unix(fd sock_unix, addr ptr[out, sockaddr_un], addrlen ptr[inout, len[addr, int32]])
+getpeername$unix(fd sock_unix, peer ptr[out, sockaddr_un], peerlen ptr[inout, len[peer, int32]])
+
+unix_socket_type = SOCK_STREAM, SOCK_DGRAM, SOCK_SEQPACKET
+unix_socket_family = AF_UNIX, AF_UNSPEC
+
+unix_pair {
+ fd0 sock_unix
+ fd1 sock_unix
+}
+
+sockaddr_un [
+ file sockaddr_un_file
+ abs sockaddr_un_abstract
+] [varlen]
+
+sockaddr_un_file {
+ family flags[unix_socket_family, int16]
+ path filename
+} [packed]
+
+sockaddr_un_abstract {
+ family flags[unix_socket_family, int16]
+ ind const[0, int8]
+ id proc[20000, 4, int32]
+}
+
+msghdr_un {
+ addr ptr[in, sockaddr_un]
+ addrlen len[addr, int32]
+ vec ptr[in, array[iovec_in]]
+ vlen len[vec, intptr]
+ ctrl ptr[in, array[cmsghdr_un], opt]
+ ctrllen len[ctrl, intptr]
+ f flags[send_flags, int32]
+}
+
+cmsghdr_un [
+ rights cmsghdr_un_rights
+ cred cmsghdr_un_cred
+] [varlen]
+
+cmsghdr_un_rights {
+ len len[parent, intptr]
+ level const[SOL_SOCKET, int32]
+ type const[SCM_RIGHTS, int32]
+ fds array[fd]
+} [align_ptr]
+
+cmsghdr_un_cred {
+ len len[parent, intptr]
+ level const[SOL_SOCKET, int32]
+ type const[LINUX_SCM_CREDENTIALS, int32]
+ pid pid
+ uid uid
+ gid gid
+} [align_ptr]
diff --git a/sys/freebsd/socket_unix_amd64.const b/sys/freebsd/socket_unix_amd64.const
new file mode 100644
index 000000000..032c6e77d
--- /dev/null
+++ b/sys/freebsd/socket_unix_amd64.const
@@ -0,0 +1,27 @@
+# AUTOGENERATED FILE
+AF_UNIX = 1
+AF_UNSPEC = 0
+LINUX_AF_UNIX = 1
+LINUX_AF_UNSPEC = 0
+LINUX_SCM_CREDENTIALS = 2
+LINUX_SCM_RIGHTS = 1
+LINUX_SOCK_DGRAM = 2
+LINUX_SOCK_SEQPACKET = 5
+LINUX_SOCK_STREAM = 1
+LINUX_SOL_SOCKET = 1
+SCM_RIGHTS = 1
+SOCK_DGRAM = 2
+SOCK_SEQPACKET = 5
+SOCK_STREAM = 1
+SOL_SOCKET = 65535
+SYS_accept = 30
+SYS_accept4 = 541
+SYS_bind = 104
+SYS_connect = 98
+SYS_getpeername = 31
+SYS_getsockname = 32
+SYS_recvfrom = 29
+SYS_sendmsg = 28
+SYS_sendto = 133
+SYS_socket = 97
+SYS_socketpair = 135
diff --git a/sys/freebsd/sys.txt b/sys/freebsd/sys.txt
index 5910d26c0..1c5572179 100644
--- a/sys/freebsd/sys.txt
+++ b/sys/freebsd/sys.txt
@@ -1,17 +1,415 @@
# Copyright 2017 syzkaller project authors. All rights reserved.
# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
+include <sys/types.h>
include <sys/mman.h>
+include <sys/stat.h>
+include <fcntl.h>
+include <unistd.h>
+include <mqueue.h>
+include <poll.h>
+include <sys/socket.h>
+include <sys/uio.h>
+include <sys/param.h>
+include <sys/mount.h>
+include <sys/resource.h>
+include <time.h>
+include <signal.h>
+include <sys/wait.h>
+include <linux/linux.h>
+include <compat/linux/linux_event.h>
-resource fd[int32]: 0xffffffffffffffff
-
-mmap(addr vma, len len[addr], prot flags[mmap_prot], flags flags[mmap_flags], fd const[0xffffffffffffffff], offset const[0]) vma
pipe(pipefd ptr[out, pipefd])
-mmap_prot = PROT_READ, PROT_WRITE
-mmap_flags = MAP_PRIVATE, MAP_ANONYMOUS, MAP_FIXED
+sendfile(fdout fd, fdin fd, off ptr[inout, fileoff[int64], opt], count int64)
+
+stat(file ptr[in, filename], statbuf ptr[out, stat])
+lstat(file ptr[in, filename], statbuf ptr[out, stat])
+
+poll(fds ptr[in, array[pollfd]], nfds len[fds], timeout int32)
+ppoll(fds ptr[in, array[pollfd]], nfds len[fds], tsp ptr[in, timespec], sigmask ptr[in, sigset], size len[sigmask])
+select(n len[inp], inp ptr[inout, fd_set], outp ptr[inout, fd_set], exp ptr[inout, fd_set], tvp ptr[inout, timeval])
+
+mincore(addr vma, size len[addr], vec buffer[out])
+
+fcntl$dupfd(fd fd, cmd flags[fcntl_dupfd], arg fd) fd
+fcntl$getflags(fd fd, cmd flags[fcntl_getflags])
+fcntl$setflags(fd fd, cmd const[F_SETFD], flags flags[fcntl_flags])
+fcntl$setstatus(fd fd, cmd const[F_SETFL], flags flags[fcntl_status])
+fcntl$lock(fd fd, cmd flags[fcntl_lock], lock ptr[in, flock])
+fcntl$getown(fd fd, cmd const[F_GETOWN]) pid
+fcntl$setown(fd fd, cmd const[F_SETOWN], pid pid)
+
+mknod(file ptr[in, filename], mode flags[mknod_mode], dev int32)
+mknod$loop(file ptr[in, filename], mode flags[mknod_mode], dev proc[1792, 2])
+mknodat(dirfd fd_dir, file ptr[in, filename], mode flags[mknod_mode], dev int32)
+chmod(file ptr[in, filename], mode flags[open_mode])
+fchmod(fd fd, mode flags[open_mode])
+fchmodat(dirfd fd_dir, file ptr[in, filename], mode flags[open_mode])
+chown(file ptr[in, filename], uid uid, gid gid)
+lchown(file ptr[in, filename], uid uid, gid gid)
+fchown(fd fd, uid uid, gid gid)
+fchownat(dirfd fd_dir, file ptr[in, filename], uid uid, gid gid, flags flags[at_flags])
+faccessat(dirfd fd_dir, pathname ptr[in, filename], mode flags[open_mode], flags flags[faccessat_flags])
+utimes(filename ptr[in, filename], times ptr[in, itimerval])
+futimesat(dir fd_dir, pathname ptr[in, filename], times ptr[in, itimerval])
+utimensat(dir fd_dir, pathname ptr[in, filename], times ptr[in, itimerval], flags flags[utimensat_flags])
+
+execve(file ptr[in, filename], argv ptr[in, array[ptr[in, string]]], envp ptr[in, array[ptr[in, string]]])
+
+getgid() gid
+getegid() gid
+setuid(uid uid)
+setgid(gid gid)
+getuid() uid
+geteuid() uid
+setpgid(pid pid, pgid pid)
+getpgid(pid pid) pid
+getpgrp(pid pid) pid
+getpid() pid
+setreuid(ruid uid, euid uid)
+setregid(rgid gid, egid gid)
+setresuid(ruid uid, euid uid, suid uid)
+setresgid(rgid gid, egid gid, sgid gid)
+getresuid(ruid ptr[out, uid], euid ptr[out, uid], suid ptr[out, uid])
+getresgid(rgid ptr[out, gid], egid ptr[out, gid], sgid ptr[out, gid])
+getgroups(size len[list], list ptr[inout, array[gid]])
+setgroups(size len[list], list ptr[in, array[gid]])
+
+link(old ptr[in, filename], new ptr[in, filename])
+linkat(oldfd fd_dir, old ptr[in, filename], newfd fd_dir, new ptr[in, filename], flags flags[linkat_flags])
+symlinkat(old ptr[in, filename], newfd fd_dir, new ptr[in, filename])
+symlink(old ptr[in, filename], new ptr[in, filename])
+unlink(path ptr[in, filename])
+unlinkat(fd fd_dir, path ptr[in, filename], flags flags[unlinkat_flags])
+readlink(path ptr[in, filename], buf buffer[out], siz len[buf])
+readlinkat(fd fd_dir, path ptr[in, filename], buf buffer[out], siz len[buf])
+rename(old ptr[in, filename], new ptr[in, filename])
+renameat(oldfd fd_dir, old ptr[in, filename], newfd fd_dir, new ptr[in, filename])
+mkdir(path ptr[in, filename], mode flags[open_mode])
+mkdirat(fd fd_dir, path ptr[in, filename], mode flags[open_mode])
+rmdir(path ptr[in, filename])
+truncate(file ptr[in, filename], len intptr)
+ftruncate(fd fd, len intptr)
+flock(fd fd, op flags[flock_op])
+fsync(fd fd)
+fdatasync(fd fd)
+sync()
+getdents(fd fd_dir, ent buffer[out], count len[ent])
+chroot(dir ptr[in, filename])
+getcwd(buf buffer[out], size len[buf])
+chdir(dir ptr[in, filename])
+fchdir(fd fd)
+
+getrusage(who flags[rusage_who], usage ptr[out, rusage])
+getrlimit(res flags[rlimit_type], rlim ptr[out, rlimit])
+setrlimit(res flags[rlimit_type], rlim ptr[in, rlimit])
+
+clock_gettime(id flags[clock_id], tp ptr[out, timespec])
+clock_settime(id flags[clock_id], tp ptr[in, timespec])
+clock_getres(id flags[clock_id], tp ptr[out, timespec])
+clock_nanosleep(id flags[clock_id], flags flags[timer_flags], rqtp ptr[in, timespec], rmtp ptr[out, timespec, opt])
+sigaltstack(ss vma, oss ptr[out, intptr, opt])
+nanosleep(req ptr[in, timespec], rem ptr[out, timespec, opt])
+getitimer(which flags[getitimer_which], cur ptr[out, itimerval])
+setitimer(which flags[getitimer_which], new ptr[in, itimerval], old ptr[out, itimerval, opt])
+exit(code intptr)
+wait4(pid pid, status ptr[out, int32, opt], options flags[wait_options], ru ptr[out, rusage, opt])
+
+pollfd {
+ fd fd
+ events flags[pollfd_events, int16]
+ revents const[0, int16]
+}
+
+sigset {
+ mask int64
+}
+
+sigset_size {
+ ss ptr[inout, sigset]
+ len len[ss, intptr]
+}
+
+resource time_sec[intptr]
+resource time_nsec[intptr]
+resource time_usec[intptr]
+
+# prog knowns about this struct type
+timespec {
+ sec intptr
+ nsec intptr
+}
+
+# prog knowns about this struct type
+timeval {
+ sec intptr
+ usec intptr
+}
+
+statx_timestamp {
+ sec int64
+ nsec int32
+ __reserved int32
+}
+
+itimerspec {
+ interv timespec
+ value timespec
+}
+
+itimerval {
+ interv timeval
+ value timeval
+}
+
+utimbuf {
+ actime intptr
+ modtime intptr
+}
+
+io_event {
+ data int64
+ obj int64
+ res int64
+ res2 int32
+}
+
+sigevent {
+ val const[0, intptr]
+ signo signalno
+ notify flags[sigev_notify, int32]
+ u sigevent_u
+ pad array[const[0, int64], 8]
+}
+
+sigevent_u [
+ tid pid
+ thr sigevent_thread
+]
+
+sigevent_thread {
+# TODO: this is function pointer and pthread_attr_t (?)
+ func buffer[in]
+ attr buffer[in]
+}
+
+cap_header {
+ var flags[cap_version, int32]
+ pid pid
+}
-pipefd {
- rfd fd
- wfd fd
+cap_data {
+ eff0 int32
+ perm0 int32
+ inher0 int32
+ eff1 int32
+ perm1 int32
+ inher1 int32
}
+
+# TODO: fd_set needs to be a separate type
+fd_set {
+ mask0 int64
+ mask1 int64
+ mask2 int64
+ mask3 int64
+ mask4 int64
+ mask5 int64
+ mask6 int64
+ mask7 int64
+}
+
+sock_fprog {
+ len len[filter, int16]
+ filter ptr[in, array[sock_filter]]
+}
+
+sock_filter {
+ code int16
+ jt int8
+ jf int8
+ k int32
+}
+
+file_handle {
+ bytes len[parent, int32]
+ type int32
+ handle array[int8]
+}
+
+mq_attr {
+ flags intptr
+ maxmsg intptr
+ msgsize intptr
+ curmsg intptr
+ res0 intptr
+ res1 intptr
+ res2 intptr
+ res3 intptr
+}
+
+kexec_segment {
+ buf buffer[in]
+ sz len[buf, intptr]
+# TODO: this is address in kernel
+ mem intptr
+ memsz intptr
+}
+
+robust_list {
+ next vma
+ off intptr
+ pend vma
+}
+
+rusage {
+ utime timeval
+ stime timeval
+ maxrss intptr
+ ixrss intptr
+ idrss intptr
+ isrss intptr
+ minflt intptr
+ majflt intptr
+ nswap intptr
+ inblock intptr
+ oublock intptr
+ msgsnd intptr
+ msgrcv intptr
+ signals intptr
+ nvcsw intptr
+ nivcsw intptr
+}
+
+rlimit {
+ soft intptr
+ hard intptr
+}
+
+sigaction {
+# TODO: function pointers need special support
+ handler intptr
+ mask sigset
+ flags flags[sigaction_flags, intptr]
+ restor intptr
+}
+
+tms {
+ utime intptr
+ stime intptr
+ cutime intptr
+ cstime intptr
+}
+
+siginfo {
+ signo signalno
+ errno int32
+ code int32
+ pad3 int32
+# actual size is 128 bytes
+}
+
+timex {
+ stuff0 intptr
+ stuff1 intptr
+ stuff2 intptr
+ stuff3 intptr
+ stuff4 intptr
+ stuff5 intptr
+ stuff6 intptr
+ stuff7 intptr
+ stuff8 intptr
+ stuff9 intptr
+ stuff10 intptr
+ stuff11 intptr
+ stuff12 intptr
+ stuff13 intptr
+ stuff14 intptr
+ stuff15 intptr
+ stuff16 intptr
+ stuff17 intptr
+ stuff18 intptr
+ stuff19 intptr
+ stuff20 intptr
+ stuff21 intptr
+ stuff22 intptr
+ stuff23 intptr
+ stuff24 intptr
+ stuff25 intptr
+}
+
+ustat {
+ free int32
+ inode intptr
+ nampac0 int32
+ nampac1 int32
+ nampac2 int32
+}
+
+user_desc {
+ entry_number int32
+# Base should be vma and limit should be len[base]
+# But these fields are int32, so we can't use vma.
+ base_addr flags[user_desc_bases, int32]
+ limit flags[user_desc_limits, int32]
+ seg_32bit int32:1
+ contents int32:2
+ read_exec_only int32:1
+ limit_in_pages int32:1
+ seg_not_present int32:1
+ useable int32:1
+ lm int32:1
+}
+
+user_desc_bases = 0, 4096, 1048576, 536870912, 536872960, 536875008, 0xffffffff
+user_desc_limits = 0, 1024, 4096, 8192, 16384, 0xffffffff
+
+flock {
+ type flags[flock_type, int16]
+ whence flags[seek_whence, int16]
+ start intptr
+ len intptr
+ pid pid
+}
+
+linger {
+ onoff int32
+ linger int32
+}
+
+ucred {
+ pid pid
+ uid uid
+ gid gid
+}
+
+fadvise_flags = POSIX_FADV_NORMAL, POSIX_FADV_SEQUENTIAL, POSIX_FADV_RANDOM, POSIX_FADV_NOREUSE, POSIX_FADV_WILLNEED, POSIX_FADV_DONTNEED
+dup_flags = O_CLOEXEC
+clock_type = CLOCK_REALTIME, CLOCK_MONOTONIC, CLOCK_PROCESS_CPUTIME_ID, CLOCK_THREAD_CPUTIME_ID
+sigev_notify = SIGEV_NONE, SIGEV_SIGNAL, SIGEV_THREAD, SIGEV_THREAD_ID
+cap_version = 0x19980330, 0x20071026, 0x20080522
+pollfd_events = POLLIN, POLLPRI, POLLOUT, POLLERR, POLLHUP, POLLNVAL, POLLRDNORM, POLLRDBAND, POLLWRNORM, POLLWRBAND
+mknod_mode = S_IFREG, S_IFCHR, S_IFBLK, S_IFIFO, S_IFSOCK, S_IRUSR, S_IWUSR, S_IXUSR, S_IRGRP, S_IWGRP, S_IXGRP, S_IROTH, S_IWOTH, S_IXOTH
+at_flags = AT_SYMLINK_NOFOLLOW, AT_SYMLINK_FOLLOW
+linkat_flags = AT_SYMLINK_FOLLOW
+unlinkat_flags = 0, AT_REMOVEDIR
+flock_op = LOCK_SH, LOCK_EX, LOCK_UN, LOCK_NB
+faccessat_flags = 0x100, 0x200, 0x400, 0x800, 0x1000
+rusage_who = RUSAGE_SELF, RUSAGE_CHILDREN, RUSAGE_THREAD
+rlimit_type = RLIMIT_AS, RLIMIT_CORE, RLIMIT_CPU, RLIMIT_DATA, RLIMIT_FSIZE, RLIMIT_MEMLOCK, RLIMIT_NOFILE, RLIMIT_NPROC, RLIMIT_RSS, RLIMIT_STACK
+clock_id = CLOCK_REALTIME, CLOCK_MONOTONIC, CLOCK_PROCESS_CPUTIME_ID, CLOCK_THREAD_CPUTIME_ID
+sigprocmask_how = SIG_BLOCK, SIG_UNBLOCK, SIG_SETMASK
+getitimer_which = ITIMER_REAL, ITIMER_VIRTUAL, ITIMER_PROF
+wait_options = WNOHANG, WUNTRACED, WCONTINUED, WEXITED, WSTOPPED, WCONTINUED, WNOHANG, WNOWAIT
+waitid_which = P_PID, P_PGID, P_ALL
+sigaction_flags = SA_NOCLDSTOP, SA_NOCLDWAIT, SA_NODEFER, SA_ONSTACK, SA_RESETHAND, SA_RESTART, SA_SIGINFO
+timer_flags = 0, TIMER_ABSTIME
+utimensat_flags = 0, AT_SYMLINK_NOFOLLOW
+priority_which = PRIO_PROCESS, PRIO_PGRP, PRIO_USER
+fcntl_dupfd = F_DUPFD, F_DUPFD_CLOEXEC
+fcntl_getflags = F_GETFD, F_GETFL
+fcntl_lock = F_SETLK, F_SETLKW, F_GETLK
+fcntl_flags = FD_CLOEXEC
+fcntl_status = O_APPEND, FASYNC, O_DIRECT, O_NONBLOCK
+flock_type = F_RDLCK, F_WRLCK, F_UNLCK
diff --git a/sys/freebsd/sys_amd64.const b/sys/freebsd/sys_amd64.const
index 327dfb024..c0fd030e6 100644
--- a/sys/freebsd/sys_amd64.const
+++ b/sys/freebsd/sys_amd64.const
@@ -1,8 +1,212 @@
# AUTOGENERATED FILE
-MAP_ANONYMOUS = 4096
-MAP_FIXED = 16
-MAP_PRIVATE = 2
-PROT_READ = 1
-PROT_WRITE = 2
-SYS_mmap = 477
+AT_REMOVEDIR = 2048
+AT_SYMLINK_FOLLOW = 1024
+AT_SYMLINK_NOFOLLOW = 512
+CLOCK_MONOTONIC = 4
+CLOCK_PROCESS_CPUTIME_ID = 15
+CLOCK_REALTIME = 0
+CLOCK_THREAD_CPUTIME_ID = 14
+FASYNC = 64
+FD_CLOEXEC = 1
+F_DUPFD = 0
+F_DUPFD_CLOEXEC = 17
+F_GETFD = 1
+F_GETFL = 3
+F_GETLK = 11
+F_GETOWN = 5
+F_RDLCK = 1
+F_SETFD = 2
+F_SETFL = 4
+F_SETLK = 12
+F_SETLKW = 13
+F_SETOWN = 6
+F_UNLCK = 2
+F_WRLCK = 3
+ITIMER_PROF = 2
+ITIMER_REAL = 0
+ITIMER_VIRTUAL = 1
+LINUX_POLLERR = 8
+LINUX_POLLHUP = 16
+LINUX_POLLIN = 1
+LINUX_POLLNVAL = 32
+LINUX_POLLOUT = 4
+LINUX_POLLPRI = 2
+LINUX_POLLRDBAND = 128
+LINUX_POLLRDNORM = 64
+LINUX_POLLWRBAND = 512
+LINUX_POLLWRNORM = 256
+LINUX_RLIMIT_AS = 9
+LINUX_RLIMIT_CORE = 4
+LINUX_RLIMIT_CPU = 0
+LINUX_RLIMIT_DATA = 2
+LINUX_RLIMIT_FSIZE = 1
+LINUX_RLIMIT_MEMLOCK = 8
+LINUX_RLIMIT_NOFILE = 7
+LINUX_RLIMIT_NPROC = 6
+LINUX_RLIMIT_RSS = 5
+LINUX_RLIMIT_STACK = 3
+LINUX_SA_NOCLDSTOP = 1
+LINUX_SA_NOCLDWAIT = 2
+LINUX_SA_ONSTACK = 134217728
+LINUX_SA_RESTART = 268435456
+LINUX_SA_SIGINFO = 4
+LINUX_SIG_BLOCK = 0
+LINUX_SIG_SETMASK = 2
+LINUX_SIG_UNBLOCK = 1
+LOCK_EX = 2
+LOCK_NB = 4
+LOCK_SH = 1
+LOCK_UN = 8
+O_APPEND = 8
+O_CLOEXEC = 1048576
+O_DIRECT = 65536
+O_NONBLOCK = 4
+POLLERR = 8
+POLLHUP = 16
+POLLIN = 1
+POLLNVAL = 32
+POLLOUT = 4
+POLLPRI = 2
+POLLRDBAND = 128
+POLLRDNORM = 64
+POLLWRBAND = 256
+POLLWRNORM = 4
+POSIX_FADV_DONTNEED = 4
+POSIX_FADV_NOREUSE = 5
+POSIX_FADV_NORMAL = 0
+POSIX_FADV_RANDOM = 1
+POSIX_FADV_SEQUENTIAL = 2
+POSIX_FADV_WILLNEED = 3
+PRIO_PGRP = 1
+PRIO_PROCESS = 0
+PRIO_USER = 2
+P_ALL = 7
+P_PGID = 2
+P_PID = 0
+RLIMIT_AS = 10
+RLIMIT_CORE = 4
+RLIMIT_CPU = 0
+RLIMIT_DATA = 2
+RLIMIT_FSIZE = 1
+RLIMIT_MEMLOCK = 6
+RLIMIT_NOFILE = 8
+RLIMIT_NPROC = 7
+RLIMIT_RSS = 5
+RLIMIT_STACK = 3
+RUSAGE_CHILDREN = 18446744073709551615
+RUSAGE_SELF = 0
+RUSAGE_THREAD = 1
+SA_NOCLDSTOP = 8
+SA_NOCLDWAIT = 32
+SA_NODEFER = 16
+SA_ONSTACK = 1
+SA_RESETHAND = 4
+SA_RESTART = 2
+SA_SIGINFO = 64
+SIGEV_NONE = 0
+SIGEV_SIGNAL = 1
+SIGEV_THREAD = 2
+SIGEV_THREAD_ID = 4
+SIG_BLOCK = 1
+SIG_SETMASK = 3
+SIG_UNBLOCK = 2
+SYS_chdir = 12
+SYS_chmod = 15
+SYS_chown = 16
+SYS_chroot = 61
+SYS_clock_getres = 234
+SYS_clock_gettime = 232
+SYS_clock_nanosleep = 244
+SYS_clock_settime = 233
+SYS_execve = 59
+SYS_exit = 1
+SYS_faccessat = 489
+SYS_fchdir = 13
+SYS_fchmod = 124
+SYS_fchmodat = 490
+SYS_fchown = 123
+SYS_fchownat = 491
+SYS_fcntl = 92
+SYS_fdatasync = 550
+SYS_flock = 131
+SYS_freebsd11_mknodat = 498
+SYS_fsync = 95
+SYS_ftruncate = 480
+SYS_futimesat = 494
+SYS_getcwd = 326
+SYS_getdents = 272
+SYS_getegid = 43
+SYS_geteuid = 25
+SYS_getgid = 47
+SYS_getgroups = 79
+SYS_getitimer = 86
+SYS_getpgid = 207
+SYS_getpgrp = 81
+SYS_getpid = 20
+SYS_getresgid = 361
+SYS_getresuid = 360
+SYS_getrlimit = 194
+SYS_getrusage = 117
+SYS_getuid = 24
+SYS_lchown = 254
+SYS_link = 9
+SYS_linkat = 495
+SYS_lstat = 190
+SYS_mincore = 78
+SYS_mkdir = 136
+SYS_mkdirat = 496
+SYS_mknod = 14
+SYS_mknodat = 559
+SYS_nanosleep = 240
SYS_pipe = 42
+SYS_poll = 209
+SYS_ppoll = 545
+SYS_readlink = 58
+SYS_readlinkat = 500
+SYS_rename = 128
+SYS_renameat = 501
+SYS_rmdir = 137
+SYS_select = 93
+SYS_sendfile = 393
+SYS_setgid = 181
+SYS_setgroups = 80
+SYS_setitimer = 83
+SYS_setpgid = 82
+SYS_setregid = 127
+SYS_setresgid = 312
+SYS_setresuid = 311
+SYS_setreuid = 126
+SYS_setrlimit = 195
+SYS_setuid = 23
+SYS_sigaltstack = 53
+SYS_stat = 188
+SYS_symlink = 57
+SYS_symlinkat = 502
+SYS_sync = 36
+SYS_truncate = 479
+SYS_unlink = 10
+SYS_unlinkat = 503
+SYS_utimensat = 547
+SYS_utimes = 138
+SYS_wait4 = 7
+S_IFBLK = 24576
+S_IFCHR = 8192
+S_IFIFO = 4096
+S_IFREG = 32768
+S_IFSOCK = 49152
+S_IRGRP = 32
+S_IROTH = 4
+S_IRUSR = 256
+S_IWGRP = 16
+S_IWOTH = 2
+S_IWUSR = 128
+S_IXGRP = 8
+S_IXOTH = 1
+S_IXUSR = 64
+TIMER_ABSTIME = 1
+WCONTINUED = 4
+WEXITED = 16
+WNOHANG = 1
+WNOWAIT = 8
+WSTOPPED = 2
+WUNTRACED = 2
diff --git a/sys/freebsd/vnet.txt b/sys/freebsd/vnet.txt
new file mode 100644
index 000000000..a65bc3691
--- /dev/null
+++ b/sys/freebsd/vnet.txt
@@ -0,0 +1,75 @@
+# Copyright 2017 syzkaller project authors. All rights reserved.
+# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
+
+include <sys/types.h>
+include <sys/socket.h>
+include <netinet/in.h>
+
+# This corresponds to LOCAL_IPV4 ("172.20.%d.170" % pid) in executor/common.h
+ipv4_addr_local {
+ a0 const[0xac, int8]
+ a1 const[0x14, int8]
+ a2 proc[0, 1, int8]
+ a3 const[0xaa, int8]
+} [packed]
+
+# This corresponds to LOCAL_IPV4 ("172.20.%d.187" % pid) in executor/common.h
+ipv4_addr_remote {
+ a0 const[0xac, int8]
+ a1 const[0x14, int8]
+ a2 proc[0, 1, int8]
+ a3 const[0xbb, int8]
+} [packed]
+
+ipv4_addr [
+# 0.0.0.0
+ empty const[0x0, int32be]
+# 172.20.%d.170
+ local ipv4_addr_local
+# 172.20.%d.187
+ remote ipv4_addr_remote
+# 127.0.0.1
+ loopback const[0x7f000001, int32be]
+# 224.0.0.1
+ multicast1 const[0xe0000001, int32be]
+# 224.0.0.2
+ multicast2 const[0xe0000002, int32be]
+# 255.255.255.255
+ broadcast const[0xffffffff, int32be]
+# random
+ rand_addr int32be
+]
+
+ipv6_addr_empty {
+ a0 array[const[0x0, int8], 16]
+}
+
+# This corresponds to LOCAL_IPV6 ("fe80::%02hxaa" % pid) in executor/common.h
+ipv6_addr_local {
+ a0 const[0xfe, int8]
+ a1 const[0x80, int8]
+ a2 array[const[0x0, int8], 12]
+ a3 proc[0, 1, int8]
+ a4 const[0xaa, int8]
+} [packed]
+
+# This corresponds to REMOTE_IPV6 ("fe80::%02hxbb" % pid) in executor/common.h
+ipv6_addr_remote {
+ a0 const[0xfe, int8]
+ a1 const[0x80, int8]
+ a2 array[const[0x0, int8], 12]
+ a3 proc[0, 1, int8]
+ a4 const[0xbb, int8]
+} [packed]
+
+ipv6_addr_loopback {
+ a0 const[0, int64be]
+ a1 const[1, int64be]
+} [packed]
+
+ipv6_addr [
+ empty ipv6_addr_empty
+ local ipv6_addr_local
+ remote ipv6_addr_remote
+ loopback ipv6_addr_loopback
+]
diff --git a/sys/syz-extract/extract.go b/sys/syz-extract/extract.go
index bc82aaf10..0875b18aa 100644
--- a/sys/syz-extract/extract.go
+++ b/sys/syz-extract/extract.go
@@ -192,7 +192,12 @@ func main() {
if f.err != nil {
failf("%v", f.err)
}
+ var undeclared []string
for c := range f.undeclared {
+ undeclared = append(undeclared, c)
+ }
+ sort.Strings(undeclared)
+ for _, c := range undeclared {
fmt.Printf("undefined const: %v\n", c)
}
}
diff --git a/sys/syz-extract/freebsd.go b/sys/syz-extract/freebsd.go
index 66c1e9207..7e29673de 100644
--- a/sys/syz-extract/freebsd.go
+++ b/sys/syz-extract/freebsd.go
@@ -25,10 +25,14 @@ func (*freebsd) prepare(sourcedir string, build bool, arches []string) error {
}
func (*freebsd) prepareArch(arch *Arch) error {
- if err := os.Symlink(filepath.Join(arch.sourceDir, "sys", "x86", "include"),
+ if err := os.Symlink(filepath.Join(arch.sourceDir, "sys", "amd64", "include"),
filepath.Join(arch.buildDir, "machine")); err != nil {
return fmt.Errorf("failed to create link: %v", err)
}
+ if err := os.Symlink(filepath.Join(arch.sourceDir, "sys", "x86", "include"),
+ filepath.Join(arch.buildDir, "x86")); err != nil {
+ return fmt.Errorf("failed to create link: %v", err)
+ }
return nil
}
@@ -36,8 +40,11 @@ func (*freebsd) processFile(arch *Arch, info *compiler.ConstInfo) (map[string]ui
args := []string{
"-fmessage-length=0",
"-nostdinc",
+ "-D_KERNEL",
+ "-D__BSD_VISIBLE=1",
"-I", filepath.Join(arch.sourceDir, "sys"),
"-I", filepath.Join(arch.sourceDir, "sys", "sys"),
+ "-I", filepath.Join(arch.sourceDir, "sys", "amd64"),
"-I", arch.buildDir,
}
for _, incdir := range info.Incdirs {
@@ -54,6 +61,10 @@ func (*freebsd) processFile(arch *Arch, info *compiler.ConstInfo) (map[string]ui
compatNames[val] = append(compatNames[val], compat)
info.Consts = append(info.Consts, compat)
}
+ } else {
+ compat := "LINUX_" + val
+ compatNames[val] = append(compatNames[val], compat)
+ info.Consts = append(info.Consts, compat)
}
}
res, undeclared, err := extract(info, "gcc", args, "#include <sys/syscall.h>")