github.com/google/syzkaller@v0.0.0-20240517125934-c0f1611a36d6/sys/fuchsia/channel.txt (about) 1 # Copyright 2017 syzkaller project authors. All rights reserved. 2 # Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. 3 4 # See https://cs.opensource.google/fuchsia/fuchsia/+/main:zircon/vdso/channel.fidl 5 6 include <zircon/syscalls.h> 7 8 resource zx_chan[zx_handle] 9 10 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]) 11 zx_channel_create(options const[0], out0 ptr[out, zx_chan], out1 ptr[out, zx_chan]) 12 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]) 13 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]) 14 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]) 15 16 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]) 17 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]) 18 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]) 19 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]) 20 21 zx_channel_call_args { 22 wr_bytes ptr[in, array[int8]] 23 wr_handles ptr[in, array[zx_handle]] 24 rd_bytes ptr[out, array[int8]] 25 rd_handles ptr[out, array[zx_handle]] 26 wr_num_bytes len[wr_bytes, int32] 27 wr_num_handles len[wr_handles, int32] 28 rd_num_bytes len[rd_bytes, int32] 29 rd_num_handles len[rd_handles, int32] 30 } 31 32 zx_handle_info { 33 handle zx_handle 34 type int32 35 rights int32 36 unused int32 37 } 38 39 zx_channel_iovec { 40 buffer ptr[in, array[int8]] 41 capacity int32 42 reserved int32 43 } 44 45 zx_handle_disposition { 46 operation int32 47 handle zx_handle 48 type int32 49 rights int32 50 result int32 51 } 52 53 chan_read_options = ZX_CHANNEL_READ_MAY_DISCARD 54 chan_write_options = ZX_CHANNEL_WRITE_USE_IOVEC