From ed2c77ae5935789c2f5ecc6000e300ab78deef68 Mon Sep 17 00:00:00 2001 From: Mark Johnston Date: Thu, 26 Mar 2020 14:59:17 -0400 Subject: sys/freebsd: add connectat(2) --- sys/freebsd/gen/386.go | 15 ++++++++++++++- sys/freebsd/gen/amd64.go | 15 ++++++++++++++- sys/freebsd/socket.txt | 1 + sys/freebsd/socket_386.const | 1 + sys/freebsd/socket_amd64.const | 1 + sys/freebsd/socket_unix.txt | 1 + sys/freebsd/socket_unix_386.const | 1 + sys/freebsd/socket_unix_amd64.const | 1 + 8 files changed, 34 insertions(+), 2 deletions(-) (limited to 'sys') diff --git a/sys/freebsd/gen/386.go b/sys/freebsd/gen/386.go index 07be4e5fc..ea4fbb88e 100644 --- a/sys/freebsd/gen/386.go +++ b/sys/freebsd/gen/386.go @@ -1986,6 +1986,18 @@ var syscalls_386 = []*Syscall{ &PtrType{TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 4}, &UnionType{Key: StructKey{Name: "sockaddr_un"}}}, &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "addrlen", TypeSize: 4}}, Path: []string{"addr"}}, }}, + {NR: 539, Name: "connectat", CallName: "connectat", Args: []Type{ + &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "dirfd", TypeSize: 4}}, + &ResourceType{TypeCommon: TypeCommon{TypeName: "sock", FldName: "fd", TypeSize: 4}}, + &PtrType{TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 4}, &UnionType{Key: StructKey{Name: "sockaddr_storage"}}}, + &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "addrlen", TypeSize: 4}}, Path: []string{"addr"}}, + }}, + {NR: 539, Name: "connectat$unix", CallName: "connectat", Args: []Type{ + &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "dirfd", TypeSize: 4}}, + &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_unix", FldName: "fd", TypeSize: 4}}, + &PtrType{TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 4}, &UnionType{Key: StructKey{Name: "sockaddr_un"}}}, + &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "addrlen", TypeSize: 4}}, Path: []string{"addr"}}, + }}, {NR: 569, Name: "copy_file_range", CallName: "copy_file_range", Args: []Type{ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "infd", TypeSize: 4}}, &PtrType{TypeCommon{TypeName: "ptr", FldName: "inoffp", TypeSize: 4}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", TypeSize: 8, ArgDir: 2}}}}, @@ -5595,6 +5607,7 @@ var consts_386 = []ConstValue{ {"SYS_clock_settime", 233}, {"SYS_close", 6}, {"SYS_connect", 98}, + {"SYS_connectat", 539}, {"SYS_copy_file_range", 569}, {"SYS_dup", 41}, {"SYS_dup2", 90}, @@ -5797,4 +5810,4 @@ var consts_386 = []ConstValue{ {"WUNTRACED", 2}, } -const revision_386 = "ce7560b0a32eb01017cb21cee645788bf75a7ed9" +const revision_386 = "9aa913dd00fd9a77ce8244e6e146d09fdad95e8f" diff --git a/sys/freebsd/gen/amd64.go b/sys/freebsd/gen/amd64.go index 8f2508512..48dc844be 100644 --- a/sys/freebsd/gen/amd64.go +++ b/sys/freebsd/gen/amd64.go @@ -2013,6 +2013,18 @@ var syscalls_amd64 = []*Syscall{ &PtrType{TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 8}, &UnionType{Key: StructKey{Name: "sockaddr_un"}}}, &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "addrlen", TypeSize: 8}}, Path: []string{"addr"}}, }}, + {NR: 539, Name: "connectat", CallName: "connectat", Args: []Type{ + &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "dirfd", TypeSize: 4}}, + &ResourceType{TypeCommon: TypeCommon{TypeName: "sock", FldName: "fd", TypeSize: 4}}, + &PtrType{TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 8}, &UnionType{Key: StructKey{Name: "sockaddr_storage"}}}, + &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "addrlen", TypeSize: 8}}, Path: []string{"addr"}}, + }}, + {NR: 539, Name: "connectat$unix", CallName: "connectat", Args: []Type{ + &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "dirfd", TypeSize: 4}}, + &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_unix", FldName: "fd", TypeSize: 4}}, + &PtrType{TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 8}, &UnionType{Key: StructKey{Name: "sockaddr_un"}}}, + &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "addrlen", TypeSize: 8}}, Path: []string{"addr"}}, + }}, {NR: 569, Name: "copy_file_range", CallName: "copy_file_range", Args: []Type{ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "infd", TypeSize: 4}}, &PtrType{TypeCommon{TypeName: "ptr", FldName: "inoffp", TypeSize: 8}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", TypeSize: 8, ArgDir: 2}}}}, @@ -5622,6 +5634,7 @@ var consts_amd64 = []ConstValue{ {"SYS_clock_settime", 233}, {"SYS_close", 6}, {"SYS_connect", 98}, + {"SYS_connectat", 539}, {"SYS_copy_file_range", 569}, {"SYS_dup", 41}, {"SYS_dup2", 90}, @@ -5824,4 +5837,4 @@ var consts_amd64 = []ConstValue{ {"WUNTRACED", 2}, } -const revision_amd64 = "649ca6e7f658089a75150592b5117517423f96be" +const revision_amd64 = "d6baa2c780ceca787d2bfc2b770607581ff9e055" diff --git a/sys/freebsd/socket.txt b/sys/freebsd/socket.txt index 18a35c3eb..decce4da1 100644 --- a/sys/freebsd/socket.txt +++ b/sys/freebsd/socket.txt @@ -18,6 +18,7 @@ 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, sock_pair]) bind(fd sock, addr ptr[in, sockaddr_storage], addrlen len[addr]) connect(fd sock, addr ptr[in, sockaddr_storage], addrlen len[addr]) +connectat(dirfd fd, 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]) diff --git a/sys/freebsd/socket_386.const b/sys/freebsd/socket_386.const index f34f4fc60..c1cc05d32 100644 --- a/sys/freebsd/socket_386.const +++ b/sys/freebsd/socket_386.const @@ -70,6 +70,7 @@ SYS_accept = 30 SYS_accept4 = 541 SYS_bind = 104 SYS_connect = 98 +SYS_connectat = 539 SYS_getpeername = 31 SYS_getsockname = 32 SYS_getsockopt = 118 diff --git a/sys/freebsd/socket_amd64.const b/sys/freebsd/socket_amd64.const index f34f4fc60..c1cc05d32 100644 --- a/sys/freebsd/socket_amd64.const +++ b/sys/freebsd/socket_amd64.const @@ -70,6 +70,7 @@ SYS_accept = 30 SYS_accept4 = 541 SYS_bind = 104 SYS_connect = 98 +SYS_connectat = 539 SYS_getpeername = 31 SYS_getsockname = 32 SYS_getsockopt = 118 diff --git a/sys/freebsd/socket_unix.txt b/sys/freebsd/socket_unix.txt index ff2282330..833015046 100644 --- a/sys/freebsd/socket_unix.txt +++ b/sys/freebsd/socket_unix.txt @@ -15,6 +15,7 @@ socket$unix(domain const[AF_UNIX], type flags[unix_socket_type], proto const[0]) 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]) +connectat$unix(dirfd fd, 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 diff --git a/sys/freebsd/socket_unix_386.const b/sys/freebsd/socket_unix_386.const index e2b7f38fa..655cf43ca 100644 --- a/sys/freebsd/socket_unix_386.const +++ b/sys/freebsd/socket_unix_386.const @@ -11,6 +11,7 @@ SYS_accept = 30 SYS_accept4 = 541 SYS_bind = 104 SYS_connect = 98 +SYS_connectat = 539 SYS_getpeername = 31 SYS_getsockname = 32 SYS_recvfrom = 29 diff --git a/sys/freebsd/socket_unix_amd64.const b/sys/freebsd/socket_unix_amd64.const index e2b7f38fa..655cf43ca 100644 --- a/sys/freebsd/socket_unix_amd64.const +++ b/sys/freebsd/socket_unix_amd64.const @@ -11,6 +11,7 @@ SYS_accept = 30 SYS_accept4 = 541 SYS_bind = 104 SYS_connect = 98 +SYS_connectat = 539 SYS_getpeername = 31 SYS_getsockname = 32 SYS_recvfrom = 29 -- cgit mrf-deployment