aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2018-06-29 20:55:42 +0200
committerDmitry Vyukov <dvyukov@google.com>2018-06-29 20:55:42 +0200
commit5739f7bef21ce8e3cee6b67f3cde2b37cb9891d4 (patch)
tree7716becd7785eab2f6420b77cc6c13286ab4f2eb
parent1974bc48eefca7018ca2721c9a1451ccd0584193 (diff)
sys/fuchsia: add few new syscalls
-rw-r--r--executor/syscalls_fuchsia.h18
-rw-r--r--sys/fuchsia/channels.txt2
-rw-r--r--sys/fuchsia/gen/amd64.go29
-rw-r--r--sys/fuchsia/gen/arm64.go29
-rw-r--r--sys/fuchsia/handles.txt1
-rw-r--r--sys/fuchsia/objects.txt1
-rw-r--r--sys/fuchsia/sockets.txt2
7 files changed, 76 insertions, 6 deletions
diff --git a/executor/syscalls_fuchsia.h b/executor/syscalls_fuchsia.h
index 3266ca81c..a969c2070 100644
--- a/executor/syscalls_fuchsia.h
+++ b/executor/syscalls_fuchsia.h
@@ -2,13 +2,13 @@
#if defined(__x86_64__) || 0
#define GOARCH "amd64"
-#define SYZ_REVISION "221d37f0d1790191b43e5892bb21f7fa292fa530"
+#define SYZ_REVISION "20265be5cc9017ab4755cfae72327279ff50da99"
#define SYZ_EXECUTOR_USES_FORK_SERVER false
#define SYZ_EXECUTOR_USES_SHMEM false
#define SYZ_PAGE_SIZE 4096
#define SYZ_NUM_PAGES 4096
#define SYZ_DATA_OFFSET 536870912
-#define SYZ_SYSCALL_COUNT 157
+#define SYZ_SYSCALL_COUNT 162
const call_t syscalls[] = {
{"chdir", 0, (syscall_t)chdir},
{"chmod", 0, (syscall_t)chmod},
@@ -74,6 +74,7 @@ const call_t syscalls[] = {
{"zx_channel_call", 0, (syscall_t)zx_channel_call},
{"zx_channel_create", 0, (syscall_t)zx_channel_create},
{"zx_channel_read", 0, (syscall_t)zx_channel_read},
+ {"zx_channel_read_etc", 0, (syscall_t)zx_channel_read_etc},
{"zx_channel_write", 0, (syscall_t)zx_channel_write},
{"zx_clock_get", 0, (syscall_t)zx_clock_get},
{"zx_cprng_add_entropy", 0, (syscall_t)zx_cprng_add_entropy},
@@ -88,6 +89,7 @@ const call_t syscalls[] = {
{"zx_futex_wake", 0, (syscall_t)zx_futex_wake},
{"zx_futex_wake_handle_close_thread_exit", 0, (syscall_t)zx_futex_wake_handle_close_thread_exit},
{"zx_handle_close", 0, (syscall_t)zx_handle_close},
+ {"zx_handle_close_many", 0, (syscall_t)zx_handle_close_many},
{"zx_handle_duplicate", 0, (syscall_t)zx_handle_duplicate},
{"zx_handle_replace", 0, (syscall_t)zx_handle_replace},
{"zx_job_create", 0, (syscall_t)zx_job_create},
@@ -114,6 +116,7 @@ const call_t syscalls[] = {
{"zx_object_get_info$ZX_INFO_VMAR", 0, (syscall_t)zx_object_get_info},
{"zx_object_get_property", 0, (syscall_t)zx_object_get_property},
{"zx_object_set_cookie", 0, (syscall_t)zx_object_set_cookie},
+ {"zx_object_set_profile", 0, (syscall_t)zx_object_set_profile},
{"zx_object_set_property", 0, (syscall_t)zx_object_set_property},
{"zx_object_signal", 0, (syscall_t)zx_object_signal},
{"zx_object_signal_peer", 0, (syscall_t)zx_object_signal_peer},
@@ -128,8 +131,10 @@ const call_t syscalls[] = {
{"zx_process_exit", 0, (syscall_t)zx_process_exit},
{"zx_process_read_memory", 0, (syscall_t)zx_process_read_memory},
{"zx_process_start", 0, (syscall_t)zx_process_start},
+ {"zx_socket_accept", 0, (syscall_t)zx_socket_accept},
{"zx_socket_create", 0, (syscall_t)zx_socket_create},
{"zx_socket_read", 0, (syscall_t)zx_socket_read},
+ {"zx_socket_share", 0, (syscall_t)zx_socket_share},
{"zx_socket_write", 0, (syscall_t)zx_socket_write},
{"zx_system_get_num_cpus", 0, (syscall_t)zx_system_get_num_cpus},
{"zx_system_get_physmem", 0, (syscall_t)zx_system_get_physmem},
@@ -173,13 +178,13 @@ const call_t syscalls[] = {
#if defined(__aarch64__) || 0
#define GOARCH "arm64"
-#define SYZ_REVISION "b2a15a8a4841d4635c2f63e4b19a3966cc01908b"
+#define SYZ_REVISION "7d924bf21433b5120c6267acc126dccad054236d"
#define SYZ_EXECUTOR_USES_FORK_SERVER false
#define SYZ_EXECUTOR_USES_SHMEM false
#define SYZ_PAGE_SIZE 4096
#define SYZ_NUM_PAGES 4096
#define SYZ_DATA_OFFSET 536870912
-#define SYZ_SYSCALL_COUNT 157
+#define SYZ_SYSCALL_COUNT 162
const call_t syscalls[] = {
{"chdir", 0, (syscall_t)chdir},
{"chmod", 0, (syscall_t)chmod},
@@ -245,6 +250,7 @@ const call_t syscalls[] = {
{"zx_channel_call", 0, (syscall_t)zx_channel_call},
{"zx_channel_create", 0, (syscall_t)zx_channel_create},
{"zx_channel_read", 0, (syscall_t)zx_channel_read},
+ {"zx_channel_read_etc", 0, (syscall_t)zx_channel_read_etc},
{"zx_channel_write", 0, (syscall_t)zx_channel_write},
{"zx_clock_get", 0, (syscall_t)zx_clock_get},
{"zx_cprng_add_entropy", 0, (syscall_t)zx_cprng_add_entropy},
@@ -259,6 +265,7 @@ const call_t syscalls[] = {
{"zx_futex_wake", 0, (syscall_t)zx_futex_wake},
{"zx_futex_wake_handle_close_thread_exit", 0, (syscall_t)zx_futex_wake_handle_close_thread_exit},
{"zx_handle_close", 0, (syscall_t)zx_handle_close},
+ {"zx_handle_close_many", 0, (syscall_t)zx_handle_close_many},
{"zx_handle_duplicate", 0, (syscall_t)zx_handle_duplicate},
{"zx_handle_replace", 0, (syscall_t)zx_handle_replace},
{"zx_job_create", 0, (syscall_t)zx_job_create},
@@ -285,6 +292,7 @@ const call_t syscalls[] = {
{"zx_object_get_info$ZX_INFO_VMAR", 0, (syscall_t)zx_object_get_info},
{"zx_object_get_property", 0, (syscall_t)zx_object_get_property},
{"zx_object_set_cookie", 0, (syscall_t)zx_object_set_cookie},
+ {"zx_object_set_profile", 0, (syscall_t)zx_object_set_profile},
{"zx_object_set_property", 0, (syscall_t)zx_object_set_property},
{"zx_object_signal", 0, (syscall_t)zx_object_signal},
{"zx_object_signal_peer", 0, (syscall_t)zx_object_signal_peer},
@@ -299,8 +307,10 @@ const call_t syscalls[] = {
{"zx_process_exit", 0, (syscall_t)zx_process_exit},
{"zx_process_read_memory", 0, (syscall_t)zx_process_read_memory},
{"zx_process_start", 0, (syscall_t)zx_process_start},
+ {"zx_socket_accept", 0, (syscall_t)zx_socket_accept},
{"zx_socket_create", 0, (syscall_t)zx_socket_create},
{"zx_socket_read", 0, (syscall_t)zx_socket_read},
+ {"zx_socket_share", 0, (syscall_t)zx_socket_share},
{"zx_socket_write", 0, (syscall_t)zx_socket_write},
{"zx_system_get_num_cpus", 0, (syscall_t)zx_system_get_num_cpus},
{"zx_system_get_physmem", 0, (syscall_t)zx_system_get_physmem},
diff --git a/sys/fuchsia/channels.txt b/sys/fuchsia/channels.txt
index 15448bf40..a58d147b9 100644
--- a/sys/fuchsia/channels.txt
+++ b/sys/fuchsia/channels.txt
@@ -10,6 +10,8 @@ zx_channel_call(handle zx_chan, options const[0], deadline zx_time, args ptr[in,
zx_channel_read(handle zx_chan, options flags[chan_read_options], bytes ptr[out, array[int8]], handles ptr[out, zx_handle], num_bytes len[bytes], num_handles len[handles], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_write(handle zx_chan, options const[0], bytes ptr[in, array[int8]], num_bytes len[bytes], handles ptr[in, array[zx_handle]], num_handles len[handles])
+zx_channel_read_etc(handle zx_chan, options int32, bytes ptr[out, array[int8]], handles ptr[out, zx_handle], num_bytes len[bytes], num_handles len[handles], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
+
zx_channel_call_args {
wr_bytes ptr[in, array[int8]]
wr_handles ptr[in, array[zx_handle]]
diff --git a/sys/fuchsia/gen/amd64.go b/sys/fuchsia/gen/amd64.go
index fb54a04e1..4fcfd8d4c 100644
--- a/sys/fuchsia/gen/amd64.go
+++ b/sys/fuchsia/gen/amd64.go
@@ -508,6 +508,16 @@ var syscalls_amd64 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_bytes", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_handles", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
}},
+ {Name: "zx_channel_read_etc", CallName: "zx_channel_read_etc", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan", FldName: "handle", TypeSize: 4}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "options", TypeSize: 4}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "bytes", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "handles", TypeSize: 8}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_handle", TypeSize: 4, ArgDir: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "num_bytes", TypeSize: 8}}, Buf: "bytes"},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "num_handles", TypeSize: 8}}, Buf: "handles"},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_bytes", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_handles", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
+ }},
{Name: "zx_channel_write", CallName: "zx_channel_write", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan", FldName: "handle", TypeSize: 4}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "options", TypeSize: 8}}},
@@ -581,6 +591,10 @@ var syscalls_amd64 = []*Syscall{
{Name: "zx_handle_close", CallName: "zx_handle_close", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "zx_handle", FldName: "handle", TypeSize: 4}},
}},
+ {Name: "zx_handle_close_many", CallName: "zx_handle_close_many", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "handles", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_handle", TypeSize: 4}}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "num_handles", TypeSize: 8}}, Buf: "handles"},
+ }},
{Name: "zx_handle_duplicate", CallName: "zx_handle_duplicate", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "zx_handle", FldName: "handle", TypeSize: 4}},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "zx_rights", FldName: "rights", TypeSize: 8}}, Vals: []uint64{0, 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 2147483648}},
@@ -758,6 +772,11 @@ var syscalls_amd64 = []*Syscall{
&ResourceType{TypeCommon: TypeCommon{TypeName: "zx_handle", FldName: "scope", TypeSize: 4}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "cookie", TypeSize: 8}}},
}},
+ {Name: "zx_object_set_profile", CallName: "zx_object_set_profile", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_handle", FldName: "handle", TypeSize: 4}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_handle", FldName: "profile", TypeSize: 4}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "options", TypeSize: 4}}},
+ }},
{Name: "zx_object_set_property", CallName: "zx_object_set_property", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "zx_handle", FldName: "handle", TypeSize: 4}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "property", TypeSize: 4}}},
@@ -838,6 +857,10 @@ var syscalls_amd64 = []*Syscall{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "arg1", TypeSize: 8}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "arg2", TypeSize: 8}}},
}},
+ {Name: "zx_socket_accept", CallName: "zx_socket_accept", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_socket", FldName: "handle", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "out_socket", TypeSize: 8}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_socket", TypeSize: 4, ArgDir: 1}}},
+ }},
{Name: "zx_socket_create", CallName: "zx_socket_create", Args: []Type{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "socket_create_options", FldName: "options", TypeSize: 8}}, Vals: []uint64{0, 1, 2}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "out0", TypeSize: 8}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_socket", TypeSize: 4, ArgDir: 1}}},
@@ -850,6 +873,10 @@ var syscalls_amd64 = []*Syscall{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "size", TypeSize: 8}}, Buf: "buffer"},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", TypeSize: 8, ArgDir: 1}}}},
}},
+ {Name: "zx_socket_share", CallName: "zx_socket_share", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_socket", FldName: "handle", TypeSize: 4}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_socket", FldName: "socket_to_share", TypeSize: 4}},
+ }},
{Name: "zx_socket_write", CallName: "zx_socket_write", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "zx_socket", FldName: "handle", TypeSize: 4}},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "socket_write_options", FldName: "options", TypeSize: 8}}, Vals: []uint64{4, 2, 1}},
@@ -1205,4 +1232,4 @@ var consts_amd64 = []ConstValue{
{Name: "ZX_WAIT_ASYNC_REPEATING", Value: 1},
}
-const revision_amd64 = "221d37f0d1790191b43e5892bb21f7fa292fa530"
+const revision_amd64 = "20265be5cc9017ab4755cfae72327279ff50da99"
diff --git a/sys/fuchsia/gen/arm64.go b/sys/fuchsia/gen/arm64.go
index a53a12087..cabf11c4a 100644
--- a/sys/fuchsia/gen/arm64.go
+++ b/sys/fuchsia/gen/arm64.go
@@ -508,6 +508,16 @@ var syscalls_arm64 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_bytes", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_handles", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
}},
+ {Name: "zx_channel_read_etc", CallName: "zx_channel_read_etc", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan", FldName: "handle", TypeSize: 4}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "options", TypeSize: 4}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "bytes", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "handles", TypeSize: 8}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_handle", TypeSize: 4, ArgDir: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "num_bytes", TypeSize: 8}}, Buf: "bytes"},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "num_handles", TypeSize: 8}}, Buf: "handles"},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_bytes", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_handles", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
+ }},
{Name: "zx_channel_write", CallName: "zx_channel_write", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan", FldName: "handle", TypeSize: 4}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "options", TypeSize: 8}}},
@@ -581,6 +591,10 @@ var syscalls_arm64 = []*Syscall{
{Name: "zx_handle_close", CallName: "zx_handle_close", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "zx_handle", FldName: "handle", TypeSize: 4}},
}},
+ {Name: "zx_handle_close_many", CallName: "zx_handle_close_many", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "handles", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_handle", TypeSize: 4}}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "num_handles", TypeSize: 8}}, Buf: "handles"},
+ }},
{Name: "zx_handle_duplicate", CallName: "zx_handle_duplicate", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "zx_handle", FldName: "handle", TypeSize: 4}},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "zx_rights", FldName: "rights", TypeSize: 8}}, Vals: []uint64{0, 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 2147483648}},
@@ -758,6 +772,11 @@ var syscalls_arm64 = []*Syscall{
&ResourceType{TypeCommon: TypeCommon{TypeName: "zx_handle", FldName: "scope", TypeSize: 4}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "cookie", TypeSize: 8}}},
}},
+ {Name: "zx_object_set_profile", CallName: "zx_object_set_profile", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_handle", FldName: "handle", TypeSize: 4}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_handle", FldName: "profile", TypeSize: 4}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "options", TypeSize: 4}}},
+ }},
{Name: "zx_object_set_property", CallName: "zx_object_set_property", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "zx_handle", FldName: "handle", TypeSize: 4}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "property", TypeSize: 4}}},
@@ -838,6 +857,10 @@ var syscalls_arm64 = []*Syscall{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "arg1", TypeSize: 8}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "arg2", TypeSize: 8}}},
}},
+ {Name: "zx_socket_accept", CallName: "zx_socket_accept", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_socket", FldName: "handle", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "out_socket", TypeSize: 8}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_socket", TypeSize: 4, ArgDir: 1}}},
+ }},
{Name: "zx_socket_create", CallName: "zx_socket_create", Args: []Type{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "socket_create_options", FldName: "options", TypeSize: 8}}, Vals: []uint64{0, 1, 2}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "out0", TypeSize: 8}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_socket", TypeSize: 4, ArgDir: 1}}},
@@ -850,6 +873,10 @@ var syscalls_arm64 = []*Syscall{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "size", TypeSize: 8}}, Buf: "buffer"},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", TypeSize: 8, ArgDir: 1}}}},
}},
+ {Name: "zx_socket_share", CallName: "zx_socket_share", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_socket", FldName: "handle", TypeSize: 4}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_socket", FldName: "socket_to_share", TypeSize: 4}},
+ }},
{Name: "zx_socket_write", CallName: "zx_socket_write", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "zx_socket", FldName: "handle", TypeSize: 4}},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "socket_write_options", FldName: "options", TypeSize: 8}}, Vals: []uint64{4, 2, 1}},
@@ -1205,4 +1232,4 @@ var consts_arm64 = []ConstValue{
{Name: "ZX_WAIT_ASYNC_REPEATING", Value: 1},
}
-const revision_arm64 = "b2a15a8a4841d4635c2f63e4b19a3966cc01908b"
+const revision_arm64 = "7d924bf21433b5120c6267acc126dccad054236d"
diff --git a/sys/fuchsia/handles.txt b/sys/fuchsia/handles.txt
index e3a647456..c57e20a82 100644
--- a/sys/fuchsia/handles.txt
+++ b/sys/fuchsia/handles.txt
@@ -6,6 +6,7 @@ include <zircon/syscalls.h>
resource zx_handle[int32]: ZX_HANDLE_INVALID
zx_handle_close(handle zx_handle)
+zx_handle_close_many(handles ptr[in, array[zx_handle]], num_handles len[handles])
zx_handle_duplicate(handle zx_handle, rights flags[zx_rights], out ptr[out, zx_handle])
zx_handle_replace(handle zx_handle, rights flags[zx_rights], out ptr[out, zx_handle])
diff --git a/sys/fuchsia/objects.txt b/sys/fuchsia/objects.txt
index 71c6b49e9..e111c1160 100644
--- a/sys/fuchsia/objects.txt
+++ b/sys/fuchsia/objects.txt
@@ -37,6 +37,7 @@ zx_object_signal_peer(handle zx_handle, clear_mask int32, set_mask int32)
zx_object_wait_one(handle zx_handle, signals int32, deadline zx_time, observed ptr[out, int32])
zx_object_wait_async(handle zx_handle, port zx_port, key proc[1000, 4], signals int32, options flags[wait_async_options])
zx_object_wait_many(items ptr[in, array[zx_wait_item]], count len[items], deadline zx_time)
+zx_object_set_profile(handle zx_handle, profile zx_handle, options int32)
wait_async_options = ZX_WAIT_ASYNC_ONCE, ZX_WAIT_ASYNC_REPEATING
diff --git a/sys/fuchsia/sockets.txt b/sys/fuchsia/sockets.txt
index 707242131..a9a7a8853 100644
--- a/sys/fuchsia/sockets.txt
+++ b/sys/fuchsia/sockets.txt
@@ -8,6 +8,8 @@ resource zx_socket[zx_handle]
zx_socket_create(options flags[socket_create_options], out0 ptr[out, zx_socket], out1 ptr[out, zx_socket])
zx_socket_read(handle zx_socket, options flags[socket_read_options], buffer ptr[out, array[int8]], size len[buffer], actual ptr[out, intptr])
zx_socket_write(handle zx_socket, options flags[socket_write_options], buffer ptr[in, array[int8]], size len[buffer], actual ptr[out, intptr])
+zx_socket_share(handle zx_socket, socket_to_share zx_socket)
+zx_socket_accept(handle zx_socket, out_socket ptr[out, zx_socket])
socket_create_options = ZX_SOCKET_STREAM, ZX_SOCKET_DATAGRAM, ZX_SOCKET_HAS_CONTROL
socket_read_options = ZX_SOCKET_CONTROL