aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/fuchsia/channel.txt54
-rw-r--r--sys/fuchsia/channel_amd64.const (renamed from sys/fuchsia/channels_amd64.const)1
-rw-r--r--sys/fuchsia/channel_arm64.const (renamed from sys/fuchsia/channels_arm64.const)1
-rw-r--r--sys/fuchsia/channels.txt26
4 files changed, 56 insertions, 26 deletions
diff --git a/sys/fuchsia/channel.txt b/sys/fuchsia/channel.txt
new file mode 100644
index 000000000..9b4663049
--- /dev/null
+++ b/sys/fuchsia/channel.txt
@@ -0,0 +1,54 @@
+# 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.
+
+# See https://cs.opensource.google/fuchsia/fuchsia/+/main:zircon/vdso/channel.fidl
+
+include <zircon/syscalls.h>
+
+resource zx_chan[zx_handle]
+
+zx_channel_call(handle zx_chan, options const[0], deadline zx_time, args ptr[in, zx_channel_call_args], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
+zx_channel_create(options const[0], out0 ptr[out, zx_chan], out1 ptr[out, zx_chan])
+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 flags[chan_write_options], bytes ptr[in, array[int8]], num_bytes len[bytes], handles ptr[in, array[zx_handle]], num_handles len[handles])
+zx_channel_write$ZX_CHANNEL_IOVEC(handle zx_chan, options const[ZX_CHANNEL_WRITE_USE_IOVEC], bytes ptr[in, zx_channel_iovec], 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, array[zx_handle_info]], num_bytes len[bytes], num_handles len[handles], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
+zx_channel_call_etc(handle zx_chan, options int32, deadline zx_time, args ptr[in, zx_channel_call_args], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
+zx_channel_write_etc(handle zx_chan, options int32, bytes ptr[in, array[int8]], num_bytes len[bytes], handles ptr[in, array[zx_handle_disposition]], num_handles len[handles])
+zx_channel_write_etc$ZX_CHANNEL_IOVEC(handle zx_chan, options const[ZX_CHANNEL_WRITE_USE_IOVEC], bytes ptr[in, array[int8]], num_bytes len[bytes], handles ptr[in, array[zx_handle_disposition]], num_handles len[handles])
+
+zx_channel_call_args {
+ wr_bytes ptr[in, array[int8]]
+ wr_handles ptr[in, array[zx_handle]]
+ rd_bytes ptr[out, array[int8]]
+ rd_handles ptr[out, array[zx_handle]]
+ wr_num_bytes len[wr_bytes, int32]
+ wr_num_handles len[wr_handles, int32]
+ rd_num_bytes len[rd_bytes, int32]
+ rd_num_handles len[rd_handles, int32]
+}
+
+zx_handle_info {
+ handle zx_handle
+ type int32
+ rights int32
+ unused int32
+}
+
+zx_channel_iovec {
+ buffer ptr[in, array[int8]]
+ capacity int32
+ reserved int32
+}
+
+zx_handle_disposition {
+ operation int32
+ handle zx_handle
+ type int32
+ rights int32
+ result int32
+}
+
+chan_read_options = ZX_CHANNEL_READ_MAY_DISCARD
+chan_write_options = ZX_CHANNEL_WRITE_USE_IOVEC
diff --git a/sys/fuchsia/channels_amd64.const b/sys/fuchsia/channel_amd64.const
index 18356a182..b87076488 100644
--- a/sys/fuchsia/channels_amd64.const
+++ b/sys/fuchsia/channel_amd64.const
@@ -1,2 +1,3 @@
# AUTOGENERATED FILE
ZX_CHANNEL_READ_MAY_DISCARD = 1
+ZX_CHANNEL_WRITE_USE_IOVEC = 2
diff --git a/sys/fuchsia/channels_arm64.const b/sys/fuchsia/channel_arm64.const
index 18356a182..b87076488 100644
--- a/sys/fuchsia/channels_arm64.const
+++ b/sys/fuchsia/channel_arm64.const
@@ -1,2 +1,3 @@
# AUTOGENERATED FILE
ZX_CHANNEL_READ_MAY_DISCARD = 1
+ZX_CHANNEL_WRITE_USE_IOVEC = 2
diff --git a/sys/fuchsia/channels.txt b/sys/fuchsia/channels.txt
deleted file mode 100644
index 7d22cca59..000000000
--- a/sys/fuchsia/channels.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-# 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 <zircon/syscalls.h>
-
-resource zx_chan[zx_handle]
-
-zx_channel_call(handle zx_chan, options const[0], deadline zx_time, args ptr[in, zx_channel_call_args], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
-zx_channel_create(options const[0], out0 ptr[out, zx_chan], out1 ptr[out, zx_chan])
-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]]
- rd_bytes ptr[out, array[int8]]
- rd_handles ptr[out, array[zx_handle]]
- wr_num_bytes len[wr_bytes, int32]
- wr_num_handles len[wr_handles, int32]
- rd_num_bytes len[rd_bytes, int32]
- rd_num_handles len[rd_handles, int32]
-}
-
-chan_read_options = ZX_CHANNEL_READ_MAY_DISCARD