# Copyright 2018 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
#
# WARNING: This file is machine generated by fidlgen.

include <fuchsia/io/c/fidl.h>
fuchsia_io_SeekOrigin = fuchsia_io_SeekOrigin_START, fuchsia_io_SeekOrigin_CURRENT, fuchsia_io_SeekOrigin_END

fuchsia_io_ServiceHandles {
	void	void
} [packed]

fuchsia_io_FileObjectHandles {
	event	zx_event
} [packed]

fuchsia_io_DirectoryObjectHandles {
	void	void
} [packed]

fuchsia_io_PipeHandles {
	socket	zx_socket
} [packed]

fuchsia_io_SocketHandles {
	socket	zx_socket
} [packed]

fuchsia_io_VmofileHandles {
	vmo	zx_vmo
} [packed]

fuchsia_io_DeviceHandles {
	event	zx_event
} [packed]

fuchsia_io_TtyHandles {
	event	zx_event
} [packed]

fuchsia_io_NodeAttributesInLine {
	mode			int32
	id			int64
	content_size		int64
	storage_size		int64
	link_count		int64
	creation_time		int64
	modification_time	int64
} [packed]

fuchsia_io_NodeAttributesOutOfLine {
	void	void
} [packed]

fuchsia_io_NodeAttributesHandles {
	void	void
} [packed]

fuchsia_io_FilesystemInfoHandles {
	void	void
} [packed]

fuchsia_io_NodeInfoHandles [
	service		fuchsia_io_ServiceHandles
	file		fuchsia_io_FileObjectHandles
	directory	fuchsia_io_DirectoryObjectHandles
	pipe		fuchsia_io_PipeHandles
	vmofile		fuchsia_io_VmofileHandles
	device		fuchsia_io_DeviceHandles
	tty		fuchsia_io_TtyHandles
	socket		fuchsia_io_SocketHandles
] [varlen]

fuchsia_io_NodeCloneRequest {
	hdr	fidl_message_header[402549324]
	flags_	int32
	object	flags[fidl_handle_presence, int32]
} [packed]

fuchsia_io_NodeCloneRequestHandles {
	object	zx_chan_fuchsia_io_Node_server
} [packed]

fuchsia_io_NodeCloseRequest {
	hdr	fidl_message_header[1387878023]
} [packed]

fuchsia_io_NodeCloseRequestHandles {
	void	void
} [packed]

fuchsia_io_NodeCloseResponseHandles {
	void	void
} [packed]

fuchsia_io_NodeDescribeRequest {
	hdr	fidl_message_header[526573406]
} [packed]

fuchsia_io_NodeDescribeRequestHandles {
	void	void
} [packed]

fuchsia_io_NodeDescribeResponseHandles {
	info	fuchsia_io_NodeInfoHandles
} [packed]

fuchsia_io_NodeOnOpenEventHandles {
	info	fuchsia_io_NodeInfoHandles
} [packed]

fuchsia_io_NodeSyncRequest {
	hdr	fidl_message_header[1648508842]
} [packed]

fuchsia_io_NodeSyncRequestHandles {
	void	void
} [packed]

fuchsia_io_NodeSyncResponseHandles {
	void	void
} [packed]

fuchsia_io_NodeGetAttrRequest {
	hdr	fidl_message_header[1166403528]
} [packed]

fuchsia_io_NodeGetAttrRequestHandles {
	void	void
} [packed]

fuchsia_io_NodeGetAttrResponseHandles {
	attributes	fuchsia_io_NodeAttributesHandles
} [packed]

fuchsia_io_NodeSetAttrRequest {
	hdr			fidl_message_header[198530458]
	flags_			int32
	attributesInLine	fuchsia_io_NodeAttributesInLine
	attributesOutOfLine	fuchsia_io_NodeAttributesOutOfLine
} [packed]

fuchsia_io_NodeSetAttrRequestHandles {
	attributes	fuchsia_io_NodeAttributesHandles
} [packed]

fuchsia_io_NodeSetAttrResponseHandles {
	void	void
} [packed]

fuchsia_io_NodeIoctlRequest {
	hdr			fidl_message_header[905161895]
	opcode			int32
	max_out			int64
	handlesInLine		fidl_vector
	inInLine		fidl_vector
	handlesOutOfLine	array[flags[fidl_handle_presence, int32]]
	inOutOfLine		array[int8]
} [packed]

fuchsia_io_NodeIoctlRequestHandles {
	handles	array[zx_handle]
} [packed]

fuchsia_io_NodeIoctlResponseHandles {
	handles	array[zx_handle]
} [packed]

resource zx_chan_fuchsia_io_Node_client[zx_chan]
resource zx_chan_fuchsia_io_Node_server[zx_chan]

zx_channel_create$fuchsia_io_Node(options const[0], out0 ptr[out, zx_chan_fuchsia_io_Node_client], out1 ptr[out, zx_chan_fuchsia_io_Node_server])
fdio_service_connect$fuchsia_io_Node(path ptr[in, string["/svc/"]], handle zx_chan_fuchsia_io_Node_server)
zx_channel_write$fuchsia_io_NodeClone(handle zx_chan_fuchsia_io_Node_client, options const[0], bytes ptr[in, fuchsia_io_NodeCloneRequest], num_bytes bytesize[bytes], handles ptr[in, fuchsia_io_NodeCloneRequestHandles], num_handles bytesize[handles])
zx_channel_call$fuchsia_io_NodeClose(handle zx_chan_fuchsia_io_Node_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_NodeCloseRequest, fuchsia_io_NodeCloseRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_NodeCloseResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_NodeDescribe(handle zx_chan_fuchsia_io_Node_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_NodeDescribeRequest, fuchsia_io_NodeDescribeRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_NodeDescribeResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_read$fuchsia_io_NodeOnOpen(handle zx_chan_fuchsia_io_Node_client, options const[0], bytes ptr[out, array[int8, ZX_CHANNEL_MAX_MSG_BYTES]], num_bytes bytesize[bytes], handles ptr[out, fuchsia_io_NodeOnOpenEventHandles], num_handles bytesize[handles], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_NodeSync(handle zx_chan_fuchsia_io_Node_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_NodeSyncRequest, fuchsia_io_NodeSyncRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_NodeSyncResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_NodeGetAttr(handle zx_chan_fuchsia_io_Node_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_NodeGetAttrRequest, fuchsia_io_NodeGetAttrRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_NodeGetAttrResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_NodeSetAttr(handle zx_chan_fuchsia_io_Node_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_NodeSetAttrRequest, fuchsia_io_NodeSetAttrRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_NodeSetAttrResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_NodeIoctl(handle zx_chan_fuchsia_io_Node_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_NodeIoctlRequest, fuchsia_io_NodeIoctlRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_NodeIoctlResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])

fuchsia_io_FileCloneRequest {
	hdr	fidl_message_header[402549324]
	flags_	int32
	object	flags[fidl_handle_presence, int32]
} [packed]

fuchsia_io_FileCloneRequestHandles {
	object	zx_chan_fuchsia_io_Node_server
} [packed]

fuchsia_io_FileCloseRequest {
	hdr	fidl_message_header[1387878023]
} [packed]

fuchsia_io_FileCloseRequestHandles {
	void	void
} [packed]

fuchsia_io_FileCloseResponseHandles {
	void	void
} [packed]

fuchsia_io_FileDescribeRequest {
	hdr	fidl_message_header[526573406]
} [packed]

fuchsia_io_FileDescribeRequestHandles {
	void	void
} [packed]

fuchsia_io_FileDescribeResponseHandles {
	info	fuchsia_io_NodeInfoHandles
} [packed]

fuchsia_io_FileOnOpenEventHandles {
	info	fuchsia_io_NodeInfoHandles
} [packed]

fuchsia_io_FileSyncRequest {
	hdr	fidl_message_header[1648508842]
} [packed]

fuchsia_io_FileSyncRequestHandles {
	void	void
} [packed]

fuchsia_io_FileSyncResponseHandles {
	void	void
} [packed]

fuchsia_io_FileGetAttrRequest {
	hdr	fidl_message_header[1166403528]
} [packed]

fuchsia_io_FileGetAttrRequestHandles {
	void	void
} [packed]

fuchsia_io_FileGetAttrResponseHandles {
	attributes	fuchsia_io_NodeAttributesHandles
} [packed]

fuchsia_io_FileSetAttrRequest {
	hdr			fidl_message_header[198530458]
	flags_			int32
	attributesInLine	fuchsia_io_NodeAttributesInLine
	attributesOutOfLine	fuchsia_io_NodeAttributesOutOfLine
} [packed]

fuchsia_io_FileSetAttrRequestHandles {
	attributes	fuchsia_io_NodeAttributesHandles
} [packed]

fuchsia_io_FileSetAttrResponseHandles {
	void	void
} [packed]

fuchsia_io_FileIoctlRequest {
	hdr			fidl_message_header[905161895]
	opcode			int32
	max_out			int64
	handlesInLine		fidl_vector
	inInLine		fidl_vector
	handlesOutOfLine	array[flags[fidl_handle_presence, int32]]
	inOutOfLine		array[int8]
} [packed]

fuchsia_io_FileIoctlRequestHandles {
	handles	array[zx_handle]
} [packed]

fuchsia_io_FileIoctlResponseHandles {
	handles	array[zx_handle]
} [packed]

fuchsia_io_FileReadRequest {
	hdr	fidl_message_header[636961156]
	count	int64
} [packed]

fuchsia_io_FileReadRequestHandles {
	void	void
} [packed]

fuchsia_io_FileReadResponseHandles {
	void	void
} [packed]

fuchsia_io_FileReadAtRequest {
	hdr	fidl_message_header[2087865796]
	count	int64
	offset	int64
} [packed]

fuchsia_io_FileReadAtRequestHandles {
	void	void
} [packed]

fuchsia_io_FileReadAtResponseHandles {
	void	void
} [packed]

fuchsia_io_FileWriteRequest {
	hdr		fidl_message_header[85125024]
	dataInLine	fidl_vector
	dataOutOfLine	array[int8]
} [packed]

fuchsia_io_FileWriteRequestHandles {
	void	void
} [packed]

fuchsia_io_FileWriteResponseHandles {
	void	void
} [packed]

fuchsia_io_FileWriteAtRequest {
	hdr		fidl_message_header[1045766885]
	dataInLine	fidl_vector
	offset		int64
	dataOutOfLine	array[int8]
} [packed]

fuchsia_io_FileWriteAtRequestHandles {
	void	void
} [packed]

fuchsia_io_FileWriteAtResponseHandles {
	void	void
} [packed]

fuchsia_io_FileSeekRequest {
	hdr	fidl_message_header[2016048965]
	offset	int64
	start	flags[fuchsia_io_SeekOrigin, int32]
} [packed]

fuchsia_io_FileSeekRequestHandles {
	void	void
} [packed]

fuchsia_io_FileSeekResponseHandles {
	void	void
} [packed]

fuchsia_io_FileTruncateRequest {
	hdr	fidl_message_header[1118517818]
	length	int64
} [packed]

fuchsia_io_FileTruncateRequestHandles {
	void	void
} [packed]

fuchsia_io_FileTruncateResponseHandles {
	void	void
} [packed]

fuchsia_io_FileGetFlagsRequest {
	hdr	fidl_message_header[1679205366]
} [packed]

fuchsia_io_FileGetFlagsRequestHandles {
	void	void
} [packed]

fuchsia_io_FileGetFlagsResponseHandles {
	void	void
} [packed]

fuchsia_io_FileSetFlagsRequest {
	hdr	fidl_message_header[1059310710]
	flags_	int32
} [packed]

fuchsia_io_FileSetFlagsRequestHandles {
	void	void
} [packed]

fuchsia_io_FileSetFlagsResponseHandles {
	void	void
} [packed]

fuchsia_io_FileGetBufferRequest {
	hdr	fidl_message_header[1958938995]
	flags_	int32
} [packed]

fuchsia_io_FileGetBufferRequestHandles {
	void	void
} [packed]

fuchsia_io_FileGetBufferResponseHandles {
	buffer_	fuchsia_mem_BufferHandles
} [packed]

resource zx_chan_fuchsia_io_File_client[zx_chan]
resource zx_chan_fuchsia_io_File_server[zx_chan]

zx_channel_create$fuchsia_io_File(options const[0], out0 ptr[out, zx_chan_fuchsia_io_File_client], out1 ptr[out, zx_chan_fuchsia_io_File_server])
fdio_service_connect$fuchsia_io_File(path ptr[in, string["/svc/"]], handle zx_chan_fuchsia_io_File_server)
zx_channel_write$fuchsia_io_FileClone(handle zx_chan_fuchsia_io_File_client, options const[0], bytes ptr[in, fuchsia_io_FileCloneRequest], num_bytes bytesize[bytes], handles ptr[in, fuchsia_io_FileCloneRequestHandles], num_handles bytesize[handles])
zx_channel_call$fuchsia_io_FileClose(handle zx_chan_fuchsia_io_File_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_FileCloseRequest, fuchsia_io_FileCloseRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_FileCloseResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_FileDescribe(handle zx_chan_fuchsia_io_File_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_FileDescribeRequest, fuchsia_io_FileDescribeRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_FileDescribeResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_read$fuchsia_io_FileOnOpen(handle zx_chan_fuchsia_io_File_client, options const[0], bytes ptr[out, array[int8, ZX_CHANNEL_MAX_MSG_BYTES]], num_bytes bytesize[bytes], handles ptr[out, fuchsia_io_FileOnOpenEventHandles], num_handles bytesize[handles], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_FileSync(handle zx_chan_fuchsia_io_File_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_FileSyncRequest, fuchsia_io_FileSyncRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_FileSyncResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_FileGetAttr(handle zx_chan_fuchsia_io_File_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_FileGetAttrRequest, fuchsia_io_FileGetAttrRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_FileGetAttrResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_FileSetAttr(handle zx_chan_fuchsia_io_File_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_FileSetAttrRequest, fuchsia_io_FileSetAttrRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_FileSetAttrResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_FileIoctl(handle zx_chan_fuchsia_io_File_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_FileIoctlRequest, fuchsia_io_FileIoctlRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_FileIoctlResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_FileRead(handle zx_chan_fuchsia_io_File_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_FileReadRequest, fuchsia_io_FileReadRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_FileReadResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_FileReadAt(handle zx_chan_fuchsia_io_File_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_FileReadAtRequest, fuchsia_io_FileReadAtRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_FileReadAtResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_FileWrite(handle zx_chan_fuchsia_io_File_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_FileWriteRequest, fuchsia_io_FileWriteRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_FileWriteResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_FileWriteAt(handle zx_chan_fuchsia_io_File_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_FileWriteAtRequest, fuchsia_io_FileWriteAtRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_FileWriteAtResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_FileSeek(handle zx_chan_fuchsia_io_File_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_FileSeekRequest, fuchsia_io_FileSeekRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_FileSeekResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_FileTruncate(handle zx_chan_fuchsia_io_File_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_FileTruncateRequest, fuchsia_io_FileTruncateRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_FileTruncateResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_FileGetFlags(handle zx_chan_fuchsia_io_File_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_FileGetFlagsRequest, fuchsia_io_FileGetFlagsRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_FileGetFlagsResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_FileSetFlags(handle zx_chan_fuchsia_io_File_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_FileSetFlagsRequest, fuchsia_io_FileSetFlagsRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_FileSetFlagsResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_FileGetBuffer(handle zx_chan_fuchsia_io_File_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_FileGetBufferRequest, fuchsia_io_FileGetBufferRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_FileGetBufferResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])

fuchsia_io_DirectoryWatcherOnEventRequest {
	hdr		fidl_message_header[546032797]
	eventsInLine	fidl_vector
	eventsOutOfLine	array[int8]
} [packed]

fuchsia_io_DirectoryWatcherOnEventRequestHandles {
	void	void
} [packed]

resource zx_chan_fuchsia_io_DirectoryWatcher_client[zx_chan]
resource zx_chan_fuchsia_io_DirectoryWatcher_server[zx_chan]

zx_channel_create$fuchsia_io_DirectoryWatcher(options const[0], out0 ptr[out, zx_chan_fuchsia_io_DirectoryWatcher_client], out1 ptr[out, zx_chan_fuchsia_io_DirectoryWatcher_server])
fdio_service_connect$fuchsia_io_DirectoryWatcher(path ptr[in, string["/svc/"]], handle zx_chan_fuchsia_io_DirectoryWatcher_server)
zx_channel_write$fuchsia_io_DirectoryWatcherOnEvent(handle zx_chan_fuchsia_io_DirectoryWatcher_client, options const[0], bytes ptr[in, fuchsia_io_DirectoryWatcherOnEventRequest], num_bytes bytesize[bytes], handles ptr[in, fuchsia_io_DirectoryWatcherOnEventRequestHandles], num_handles bytesize[handles])

fuchsia_io_DirectoryCloneRequest {
	hdr	fidl_message_header[402549324]
	flags_	int32
	object	flags[fidl_handle_presence, int32]
} [packed]

fuchsia_io_DirectoryCloneRequestHandles {
	object	zx_chan_fuchsia_io_Node_server
} [packed]

fuchsia_io_DirectoryCloseRequest {
	hdr	fidl_message_header[1387878023]
} [packed]

fuchsia_io_DirectoryCloseRequestHandles {
	void	void
} [packed]

fuchsia_io_DirectoryCloseResponseHandles {
	void	void
} [packed]

fuchsia_io_DirectoryDescribeRequest {
	hdr	fidl_message_header[526573406]
} [packed]

fuchsia_io_DirectoryDescribeRequestHandles {
	void	void
} [packed]

fuchsia_io_DirectoryDescribeResponseHandles {
	info	fuchsia_io_NodeInfoHandles
} [packed]

fuchsia_io_DirectoryOnOpenEventHandles {
	info	fuchsia_io_NodeInfoHandles
} [packed]

fuchsia_io_DirectorySyncRequest {
	hdr	fidl_message_header[1648508842]
} [packed]

fuchsia_io_DirectorySyncRequestHandles {
	void	void
} [packed]

fuchsia_io_DirectorySyncResponseHandles {
	void	void
} [packed]

fuchsia_io_DirectoryGetAttrRequest {
	hdr	fidl_message_header[1166403528]
} [packed]

fuchsia_io_DirectoryGetAttrRequestHandles {
	void	void
} [packed]

fuchsia_io_DirectoryGetAttrResponseHandles {
	attributes	fuchsia_io_NodeAttributesHandles
} [packed]

fuchsia_io_DirectorySetAttrRequest {
	hdr			fidl_message_header[198530458]
	flags_			int32
	attributesInLine	fuchsia_io_NodeAttributesInLine
	attributesOutOfLine	fuchsia_io_NodeAttributesOutOfLine
} [packed]

fuchsia_io_DirectorySetAttrRequestHandles {
	attributes	fuchsia_io_NodeAttributesHandles
} [packed]

fuchsia_io_DirectorySetAttrResponseHandles {
	void	void
} [packed]

fuchsia_io_DirectoryIoctlRequest {
	hdr			fidl_message_header[905161895]
	opcode			int32
	max_out			int64
	handlesInLine		fidl_vector
	inInLine		fidl_vector
	handlesOutOfLine	array[flags[fidl_handle_presence, int32]]
	inOutOfLine		array[int8]
} [packed]

fuchsia_io_DirectoryIoctlRequestHandles {
	handles	array[zx_handle]
} [packed]

fuchsia_io_DirectoryIoctlResponseHandles {
	handles	array[zx_handle]
} [packed]

fuchsia_io_DirectoryOpenRequest {
	hdr		fidl_message_header[2011483371]
	flags_		int32
	mode		int32
	pathInLine	fidl_string
	object		flags[fidl_handle_presence, int32]
	pathOutOfLine	fidl_aligned[stringnoz]
} [packed]

fuchsia_io_DirectoryOpenRequestHandles {
	object	zx_chan_fuchsia_io_Node_server
} [packed]

fuchsia_io_DirectoryUnlinkRequest {
	hdr		fidl_message_header[750443289]
	pathInLine	fidl_string
	pathOutOfLine	fidl_aligned[stringnoz]
} [packed]

fuchsia_io_DirectoryUnlinkRequestHandles {
	void	void
} [packed]

fuchsia_io_DirectoryUnlinkResponseHandles {
	void	void
} [packed]

fuchsia_io_DirectoryReadDirentsRequest {
	hdr		fidl_message_header[782580781]
	max_bytes	int64
} [packed]

fuchsia_io_DirectoryReadDirentsRequestHandles {
	void	void
} [packed]

fuchsia_io_DirectoryReadDirentsResponseHandles {
	void	void
} [packed]

fuchsia_io_DirectoryRewindRequest {
	hdr	fidl_message_header[1886584199]
} [packed]

fuchsia_io_DirectoryRewindRequestHandles {
	void	void
} [packed]

fuchsia_io_DirectoryRewindResponseHandles {
	void	void
} [packed]

fuchsia_io_DirectoryGetTokenRequest {
	hdr	fidl_message_header[840416493]
} [packed]

fuchsia_io_DirectoryGetTokenRequestHandles {
	void	void
} [packed]

fuchsia_io_DirectoryGetTokenResponseHandles {
	token	zx_handle
} [packed]

fuchsia_io_DirectoryRenameRequest {
	hdr			fidl_message_header[1251258540]
	srcInLine		fidl_string
	dst_parent_token	flags[fidl_handle_presence, int32]
	dstInLine		fidl_string
	srcOutOfLine		fidl_aligned[stringnoz]
	dstOutOfLine		fidl_aligned[stringnoz]
} [packed]

fuchsia_io_DirectoryRenameRequestHandles {
	dst_parent_token	zx_handle
} [packed]

fuchsia_io_DirectoryRenameResponseHandles {
	void	void
} [packed]

fuchsia_io_DirectoryLinkRequest {
	hdr			fidl_message_header[462052964]
	srcInLine		fidl_string
	dst_parent_token	flags[fidl_handle_presence, int32]
	dstInLine		fidl_string
	srcOutOfLine		fidl_aligned[stringnoz]
	dstOutOfLine		fidl_aligned[stringnoz]
} [packed]

fuchsia_io_DirectoryLinkRequestHandles {
	dst_parent_token	zx_handle
} [packed]

fuchsia_io_DirectoryLinkResponseHandles {
	void	void
} [packed]

fuchsia_io_DirectoryWatchRequest {
	hdr	fidl_message_header[1522700084]
	mask	int32
	options	int32
	watcher	flags[fidl_handle_presence, int32]
} [packed]

fuchsia_io_DirectoryWatchRequestHandles {
	watcher	zx_chan
} [packed]

fuchsia_io_DirectoryWatchResponseHandles {
	void	void
} [packed]

resource zx_chan_fuchsia_io_Directory_client[zx_chan]
resource zx_chan_fuchsia_io_Directory_server[zx_chan]

zx_channel_create$fuchsia_io_Directory(options const[0], out0 ptr[out, zx_chan_fuchsia_io_Directory_client], out1 ptr[out, zx_chan_fuchsia_io_Directory_server])
fdio_service_connect$fuchsia_io_Directory(path ptr[in, string["/svc/"]], handle zx_chan_fuchsia_io_Directory_server)
zx_channel_write$fuchsia_io_DirectoryClone(handle zx_chan_fuchsia_io_Directory_client, options const[0], bytes ptr[in, fuchsia_io_DirectoryCloneRequest], num_bytes bytesize[bytes], handles ptr[in, fuchsia_io_DirectoryCloneRequestHandles], num_handles bytesize[handles])
zx_channel_call$fuchsia_io_DirectoryClose(handle zx_chan_fuchsia_io_Directory_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_DirectoryCloseRequest, fuchsia_io_DirectoryCloseRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_DirectoryCloseResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_DirectoryDescribe(handle zx_chan_fuchsia_io_Directory_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_DirectoryDescribeRequest, fuchsia_io_DirectoryDescribeRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_DirectoryDescribeResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_read$fuchsia_io_DirectoryOnOpen(handle zx_chan_fuchsia_io_Directory_client, options const[0], bytes ptr[out, array[int8, ZX_CHANNEL_MAX_MSG_BYTES]], num_bytes bytesize[bytes], handles ptr[out, fuchsia_io_DirectoryOnOpenEventHandles], num_handles bytesize[handles], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_DirectorySync(handle zx_chan_fuchsia_io_Directory_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_DirectorySyncRequest, fuchsia_io_DirectorySyncRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_DirectorySyncResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_DirectoryGetAttr(handle zx_chan_fuchsia_io_Directory_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_DirectoryGetAttrRequest, fuchsia_io_DirectoryGetAttrRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_DirectoryGetAttrResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_DirectorySetAttr(handle zx_chan_fuchsia_io_Directory_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_DirectorySetAttrRequest, fuchsia_io_DirectorySetAttrRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_DirectorySetAttrResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_DirectoryIoctl(handle zx_chan_fuchsia_io_Directory_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_DirectoryIoctlRequest, fuchsia_io_DirectoryIoctlRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_DirectoryIoctlResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_write$fuchsia_io_DirectoryOpen(handle zx_chan_fuchsia_io_Directory_client, options const[0], bytes ptr[in, fuchsia_io_DirectoryOpenRequest], num_bytes bytesize[bytes], handles ptr[in, fuchsia_io_DirectoryOpenRequestHandles], num_handles bytesize[handles])
zx_channel_call$fuchsia_io_DirectoryUnlink(handle zx_chan_fuchsia_io_Directory_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_DirectoryUnlinkRequest, fuchsia_io_DirectoryUnlinkRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_DirectoryUnlinkResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_DirectoryReadDirents(handle zx_chan_fuchsia_io_Directory_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_DirectoryReadDirentsRequest, fuchsia_io_DirectoryReadDirentsRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_DirectoryReadDirentsResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_DirectoryRewind(handle zx_chan_fuchsia_io_Directory_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_DirectoryRewindRequest, fuchsia_io_DirectoryRewindRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_DirectoryRewindResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_DirectoryGetToken(handle zx_chan_fuchsia_io_Directory_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_DirectoryGetTokenRequest, fuchsia_io_DirectoryGetTokenRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_DirectoryGetTokenResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_DirectoryRename(handle zx_chan_fuchsia_io_Directory_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_DirectoryRenameRequest, fuchsia_io_DirectoryRenameRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_DirectoryRenameResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_DirectoryLink(handle zx_chan_fuchsia_io_Directory_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_DirectoryLinkRequest, fuchsia_io_DirectoryLinkRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_DirectoryLinkResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_DirectoryWatch(handle zx_chan_fuchsia_io_Directory_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_DirectoryWatchRequest, fuchsia_io_DirectoryWatchRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_DirectoryWatchResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])

fuchsia_io_DirectoryAdminCloneRequest {
	hdr	fidl_message_header[402549324]
	flags_	int32
	object	flags[fidl_handle_presence, int32]
} [packed]

fuchsia_io_DirectoryAdminCloneRequestHandles {
	object	zx_chan_fuchsia_io_Node_server
} [packed]

fuchsia_io_DirectoryAdminCloseRequest {
	hdr	fidl_message_header[1387878023]
} [packed]

fuchsia_io_DirectoryAdminCloseRequestHandles {
	void	void
} [packed]

fuchsia_io_DirectoryAdminCloseResponseHandles {
	void	void
} [packed]

fuchsia_io_DirectoryAdminDescribeRequest {
	hdr	fidl_message_header[526573406]
} [packed]

fuchsia_io_DirectoryAdminDescribeRequestHandles {
	void	void
} [packed]

fuchsia_io_DirectoryAdminDescribeResponseHandles {
	info	fuchsia_io_NodeInfoHandles
} [packed]

fuchsia_io_DirectoryAdminOnOpenEventHandles {
	info	fuchsia_io_NodeInfoHandles
} [packed]

fuchsia_io_DirectoryAdminSyncRequest {
	hdr	fidl_message_header[1648508842]
} [packed]

fuchsia_io_DirectoryAdminSyncRequestHandles {
	void	void
} [packed]

fuchsia_io_DirectoryAdminSyncResponseHandles {
	void	void
} [packed]

fuchsia_io_DirectoryAdminGetAttrRequest {
	hdr	fidl_message_header[1166403528]
} [packed]

fuchsia_io_DirectoryAdminGetAttrRequestHandles {
	void	void
} [packed]

fuchsia_io_DirectoryAdminGetAttrResponseHandles {
	attributes	fuchsia_io_NodeAttributesHandles
} [packed]

fuchsia_io_DirectoryAdminSetAttrRequest {
	hdr			fidl_message_header[198530458]
	flags_			int32
	attributesInLine	fuchsia_io_NodeAttributesInLine
	attributesOutOfLine	fuchsia_io_NodeAttributesOutOfLine
} [packed]

fuchsia_io_DirectoryAdminSetAttrRequestHandles {
	attributes	fuchsia_io_NodeAttributesHandles
} [packed]

fuchsia_io_DirectoryAdminSetAttrResponseHandles {
	void	void
} [packed]

fuchsia_io_DirectoryAdminIoctlRequest {
	hdr			fidl_message_header[905161895]
	opcode			int32
	max_out			int64
	handlesInLine		fidl_vector
	inInLine		fidl_vector
	handlesOutOfLine	array[flags[fidl_handle_presence, int32]]
	inOutOfLine		array[int8]
} [packed]

fuchsia_io_DirectoryAdminIoctlRequestHandles {
	handles	array[zx_handle]
} [packed]

fuchsia_io_DirectoryAdminIoctlResponseHandles {
	handles	array[zx_handle]
} [packed]

fuchsia_io_DirectoryAdminOpenRequest {
	hdr		fidl_message_header[2011483371]
	flags_		int32
	mode		int32
	pathInLine	fidl_string
	object		flags[fidl_handle_presence, int32]
	pathOutOfLine	fidl_aligned[stringnoz]
} [packed]

fuchsia_io_DirectoryAdminOpenRequestHandles {
	object	zx_chan_fuchsia_io_Node_server
} [packed]

fuchsia_io_DirectoryAdminUnlinkRequest {
	hdr		fidl_message_header[750443289]
	pathInLine	fidl_string
	pathOutOfLine	fidl_aligned[stringnoz]
} [packed]

fuchsia_io_DirectoryAdminUnlinkRequestHandles {
	void	void
} [packed]

fuchsia_io_DirectoryAdminUnlinkResponseHandles {
	void	void
} [packed]

fuchsia_io_DirectoryAdminReadDirentsRequest {
	hdr		fidl_message_header[782580781]
	max_bytes	int64
} [packed]

fuchsia_io_DirectoryAdminReadDirentsRequestHandles {
	void	void
} [packed]

fuchsia_io_DirectoryAdminReadDirentsResponseHandles {
	void	void
} [packed]

fuchsia_io_DirectoryAdminRewindRequest {
	hdr	fidl_message_header[1886584199]
} [packed]

fuchsia_io_DirectoryAdminRewindRequestHandles {
	void	void
} [packed]

fuchsia_io_DirectoryAdminRewindResponseHandles {
	void	void
} [packed]

fuchsia_io_DirectoryAdminGetTokenRequest {
	hdr	fidl_message_header[840416493]
} [packed]

fuchsia_io_DirectoryAdminGetTokenRequestHandles {
	void	void
} [packed]

fuchsia_io_DirectoryAdminGetTokenResponseHandles {
	token	zx_handle
} [packed]

fuchsia_io_DirectoryAdminRenameRequest {
	hdr			fidl_message_header[1251258540]
	srcInLine		fidl_string
	dst_parent_token	flags[fidl_handle_presence, int32]
	dstInLine		fidl_string
	srcOutOfLine		fidl_aligned[stringnoz]
	dstOutOfLine		fidl_aligned[stringnoz]
} [packed]

fuchsia_io_DirectoryAdminRenameRequestHandles {
	dst_parent_token	zx_handle
} [packed]

fuchsia_io_DirectoryAdminRenameResponseHandles {
	void	void
} [packed]

fuchsia_io_DirectoryAdminLinkRequest {
	hdr			fidl_message_header[462052964]
	srcInLine		fidl_string
	dst_parent_token	flags[fidl_handle_presence, int32]
	dstInLine		fidl_string
	srcOutOfLine		fidl_aligned[stringnoz]
	dstOutOfLine		fidl_aligned[stringnoz]
} [packed]

fuchsia_io_DirectoryAdminLinkRequestHandles {
	dst_parent_token	zx_handle
} [packed]

fuchsia_io_DirectoryAdminLinkResponseHandles {
	void	void
} [packed]

fuchsia_io_DirectoryAdminWatchRequest {
	hdr	fidl_message_header[1522700084]
	mask	int32
	options	int32
	watcher	flags[fidl_handle_presence, int32]
} [packed]

fuchsia_io_DirectoryAdminWatchRequestHandles {
	watcher	zx_chan
} [packed]

fuchsia_io_DirectoryAdminWatchResponseHandles {
	void	void
} [packed]

fuchsia_io_DirectoryAdminMountRequest {
	hdr	fidl_message_header[2120159974]
	remote	flags[fidl_handle_presence, int32]
} [packed]

fuchsia_io_DirectoryAdminMountRequestHandles {
	remote	zx_chan_fuchsia_io_Directory_client
} [packed]

fuchsia_io_DirectoryAdminMountResponseHandles {
	void	void
} [packed]

fuchsia_io_DirectoryAdminMountAndCreateRequest {
	hdr		fidl_message_header[841348753]
	remote		flags[fidl_handle_presence, int32]
	nameInLine	fidl_string
	flags_		int32
	nameOutOfLine	fidl_aligned[stringnoz]
} [packed]

fuchsia_io_DirectoryAdminMountAndCreateRequestHandles {
	remote	zx_chan_fuchsia_io_Directory_client
} [packed]

fuchsia_io_DirectoryAdminMountAndCreateResponseHandles {
	void	void
} [packed]

fuchsia_io_DirectoryAdminUnmountRequest {
	hdr	fidl_message_header[620898132]
} [packed]

fuchsia_io_DirectoryAdminUnmountRequestHandles {
	void	void
} [packed]

fuchsia_io_DirectoryAdminUnmountResponseHandles {
	void	void
} [packed]

fuchsia_io_DirectoryAdminUnmountNodeRequest {
	hdr	fidl_message_header[383400103]
} [packed]

fuchsia_io_DirectoryAdminUnmountNodeRequestHandles {
	void	void
} [packed]

fuchsia_io_DirectoryAdminUnmountNodeResponseHandles {
	remote	zx_chan_fuchsia_io_Directory_client
} [packed]

fuchsia_io_DirectoryAdminQueryFilesystemRequest {
	hdr	fidl_message_header[1713999250]
} [packed]

fuchsia_io_DirectoryAdminQueryFilesystemRequestHandles {
	void	void
} [packed]

fuchsia_io_DirectoryAdminQueryFilesystemResponseHandles {
	info	fuchsia_io_FilesystemInfoHandles
} [packed]

fuchsia_io_DirectoryAdminGetDevicePathRequest {
	hdr	fidl_message_header[787943096]
} [packed]

fuchsia_io_DirectoryAdminGetDevicePathRequestHandles {
	void	void
} [packed]

fuchsia_io_DirectoryAdminGetDevicePathResponseHandles {
	void	void
} [packed]

resource zx_chan_fuchsia_io_DirectoryAdmin_client[zx_chan]
resource zx_chan_fuchsia_io_DirectoryAdmin_server[zx_chan]

zx_channel_create$fuchsia_io_DirectoryAdmin(options const[0], out0 ptr[out, zx_chan_fuchsia_io_DirectoryAdmin_client], out1 ptr[out, zx_chan_fuchsia_io_DirectoryAdmin_server])
fdio_service_connect$fuchsia_io_DirectoryAdmin(path ptr[in, string["/svc/"]], handle zx_chan_fuchsia_io_DirectoryAdmin_server)
zx_channel_write$fuchsia_io_DirectoryAdminClone(handle zx_chan_fuchsia_io_DirectoryAdmin_client, options const[0], bytes ptr[in, fuchsia_io_DirectoryAdminCloneRequest], num_bytes bytesize[bytes], handles ptr[in, fuchsia_io_DirectoryAdminCloneRequestHandles], num_handles bytesize[handles])
zx_channel_call$fuchsia_io_DirectoryAdminClose(handle zx_chan_fuchsia_io_DirectoryAdmin_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_DirectoryAdminCloseRequest, fuchsia_io_DirectoryAdminCloseRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_DirectoryAdminCloseResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_DirectoryAdminDescribe(handle zx_chan_fuchsia_io_DirectoryAdmin_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_DirectoryAdminDescribeRequest, fuchsia_io_DirectoryAdminDescribeRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_DirectoryAdminDescribeResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_read$fuchsia_io_DirectoryAdminOnOpen(handle zx_chan_fuchsia_io_DirectoryAdmin_client, options const[0], bytes ptr[out, array[int8, ZX_CHANNEL_MAX_MSG_BYTES]], num_bytes bytesize[bytes], handles ptr[out, fuchsia_io_DirectoryAdminOnOpenEventHandles], num_handles bytesize[handles], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_DirectoryAdminSync(handle zx_chan_fuchsia_io_DirectoryAdmin_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_DirectoryAdminSyncRequest, fuchsia_io_DirectoryAdminSyncRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_DirectoryAdminSyncResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_DirectoryAdminGetAttr(handle zx_chan_fuchsia_io_DirectoryAdmin_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_DirectoryAdminGetAttrRequest, fuchsia_io_DirectoryAdminGetAttrRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_DirectoryAdminGetAttrResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_DirectoryAdminSetAttr(handle zx_chan_fuchsia_io_DirectoryAdmin_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_DirectoryAdminSetAttrRequest, fuchsia_io_DirectoryAdminSetAttrRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_DirectoryAdminSetAttrResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_DirectoryAdminIoctl(handle zx_chan_fuchsia_io_DirectoryAdmin_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_DirectoryAdminIoctlRequest, fuchsia_io_DirectoryAdminIoctlRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_DirectoryAdminIoctlResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_write$fuchsia_io_DirectoryAdminOpen(handle zx_chan_fuchsia_io_DirectoryAdmin_client, options const[0], bytes ptr[in, fuchsia_io_DirectoryAdminOpenRequest], num_bytes bytesize[bytes], handles ptr[in, fuchsia_io_DirectoryAdminOpenRequestHandles], num_handles bytesize[handles])
zx_channel_call$fuchsia_io_DirectoryAdminUnlink(handle zx_chan_fuchsia_io_DirectoryAdmin_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_DirectoryAdminUnlinkRequest, fuchsia_io_DirectoryAdminUnlinkRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_DirectoryAdminUnlinkResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_DirectoryAdminReadDirents(handle zx_chan_fuchsia_io_DirectoryAdmin_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_DirectoryAdminReadDirentsRequest, fuchsia_io_DirectoryAdminReadDirentsRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_DirectoryAdminReadDirentsResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_DirectoryAdminRewind(handle zx_chan_fuchsia_io_DirectoryAdmin_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_DirectoryAdminRewindRequest, fuchsia_io_DirectoryAdminRewindRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_DirectoryAdminRewindResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_DirectoryAdminGetToken(handle zx_chan_fuchsia_io_DirectoryAdmin_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_DirectoryAdminGetTokenRequest, fuchsia_io_DirectoryAdminGetTokenRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_DirectoryAdminGetTokenResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_DirectoryAdminRename(handle zx_chan_fuchsia_io_DirectoryAdmin_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_DirectoryAdminRenameRequest, fuchsia_io_DirectoryAdminRenameRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_DirectoryAdminRenameResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_DirectoryAdminLink(handle zx_chan_fuchsia_io_DirectoryAdmin_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_DirectoryAdminLinkRequest, fuchsia_io_DirectoryAdminLinkRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_DirectoryAdminLinkResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_DirectoryAdminWatch(handle zx_chan_fuchsia_io_DirectoryAdmin_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_DirectoryAdminWatchRequest, fuchsia_io_DirectoryAdminWatchRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_DirectoryAdminWatchResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_DirectoryAdminMount(handle zx_chan_fuchsia_io_DirectoryAdmin_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_DirectoryAdminMountRequest, fuchsia_io_DirectoryAdminMountRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_DirectoryAdminMountResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_DirectoryAdminMountAndCreate(handle zx_chan_fuchsia_io_DirectoryAdmin_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_DirectoryAdminMountAndCreateRequest, fuchsia_io_DirectoryAdminMountAndCreateRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_DirectoryAdminMountAndCreateResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_DirectoryAdminUnmount(handle zx_chan_fuchsia_io_DirectoryAdmin_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_DirectoryAdminUnmountRequest, fuchsia_io_DirectoryAdminUnmountRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_DirectoryAdminUnmountResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_DirectoryAdminUnmountNode(handle zx_chan_fuchsia_io_DirectoryAdmin_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_DirectoryAdminUnmountNodeRequest, fuchsia_io_DirectoryAdminUnmountNodeRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_DirectoryAdminUnmountNodeResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_DirectoryAdminQueryFilesystem(handle zx_chan_fuchsia_io_DirectoryAdmin_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_DirectoryAdminQueryFilesystemRequest, fuchsia_io_DirectoryAdminQueryFilesystemRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_DirectoryAdminQueryFilesystemResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_io_DirectoryAdminGetDevicePath(handle zx_chan_fuchsia_io_DirectoryAdmin_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_io_DirectoryAdminGetDevicePathRequest, fuchsia_io_DirectoryAdminGetDevicePathRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_io_DirectoryAdminGetDevicePathResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
