diff options
| author | Ange Albertini <corkami@google.com> | 2022-10-19 15:54:45 +0000 |
|---|---|---|
| committer | Chris Palmer <snackypants@gmail.com> | 2022-10-25 14:59:09 -0700 |
| commit | 2159e4d29f58ffa1107fc2213dbc87185ff4498f (patch) | |
| tree | 37e9897dd509431c2d078349aa6bcf0c531a2ee4 /sys/fuchsia | |
| parent | 1984aebd4ba26b9765012660d23d6c2bf54c3d91 (diff) | |
sys/fuchsia: updated channel syscall definitions
Diffstat (limited to 'sys/fuchsia')
| -rw-r--r-- | sys/fuchsia/channel.txt | 54 | ||||
| -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.txt | 26 |
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 |
