# 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/cobalt/c/fidl.h>
fuchsia_cobalt_ReleaseStage = fuchsia_cobalt_ReleaseStage_GA, fuchsia_cobalt_ReleaseStage_DOGFOOD, fuchsia_cobalt_ReleaseStage_FISHFOOD, fuchsia_cobalt_ReleaseStage_DEBUG

fuchsia_cobalt_ProjectProfileInLine {
	configInLine	fuchsia_mem_BufferInLine
	release_stage	flags[fuchsia_cobalt_ReleaseStage, int32]
} [packed]

fuchsia_cobalt_ProjectProfileOutOfLine {
	configOutOfLine	fuchsia_mem_BufferOutOfLine
} [packed]

fuchsia_cobalt_ProjectProfileHandles {
	config	fuchsia_mem_BufferHandles
} [packed]

fuchsia_cobalt_CustomEventValueInLine {
	dimension_nameInLine	fidl_string
	valueInLine		fuchsia_cobalt_ValueInLine
} [packed]

fuchsia_cobalt_CustomEventValueOutOfLine {
	dimension_nameOutOfLine	fidl_aligned[stringnoz]
} [packed]

fuchsia_cobalt_CustomEventValueHandles {
	void	void
} [packed]

fuchsia_cobalt_HistogramBucketInLine {
	index	int32
	count	int64
} [packed]

fuchsia_cobalt_HistogramBucketOutOfLine {
	void	void
} [packed]

fuchsia_cobalt_HistogramBucketHandles {
	void	void
} [packed]

fuchsia_cobalt_CountEventInLine {
	period_duration_micros	int64
	count			int64
} [packed]

fuchsia_cobalt_CobaltEventInLine {
	metric_id		int32
	event_codesInLine	fidl_vector
	componentInLine		fidl_string
	payloadInLine		fuchsia_cobalt_EventPayloadInLine
} [packed]

fuchsia_cobalt_CobaltEventOutOfLine {
	event_codesOutOfLine	array[int32]
	componentOutOfLine	fidl_aligned[stringnoz]
} [packed]

fuchsia_cobalt_CobaltEventHandles {
	void	void
} [packed]

fuchsia_cobalt_ExperimentInLine {
	experiment_id	int64
	arm_id		int32
} [packed]

fuchsia_cobalt_ExperimentOutOfLine {
	void	void
} [packed]

fuchsia_cobalt_ExperimentHandles {
	void	void
} [packed]

fuchsia_cobalt_ValueInLine [
	string_valueInLine	fidl_union_member[fuchsia_cobalt_ValueTag_string_value, fidl_string]
	int_value		fidl_union_member[fuchsia_cobalt_ValueTag_int_value, int64]
	double_value		fidl_union_member[fuchsia_cobalt_ValueTag_double_value, int64]
	index_value		fidl_union_member[fuchsia_cobalt_ValueTag_index_value, int32]
]

fuchsia_cobalt_EventPayloadInLine [
	event_countInLine	fidl_union_member[fuchsia_cobalt_EventPayloadTag_event_count, fuchsia_cobalt_CountEventInLine]
	int_histogramInLine	fidl_union_member[fuchsia_cobalt_EventPayloadTag_int_histogram, fidl_vector]
]

fuchsia_cobalt_LoggerFactoryCreateLoggerRequest {
	hdr			fidl_message_header[1594393985]
	profileInLine		fuchsia_cobalt_ProjectProfileInLine
	logger			flags[fidl_handle_presence, int32]
	profileOutOfLine	fuchsia_cobalt_ProjectProfileOutOfLine
} [packed]

fuchsia_cobalt_LoggerFactoryCreateLoggerRequestHandles {
	profile	fuchsia_cobalt_ProjectProfileHandles
	logger	zx_chan_fuchsia_cobalt_Logger_server
} [packed]

fuchsia_cobalt_LoggerFactoryCreateLoggerResponseHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerFactoryCreateLoggerSimpleRequest {
	hdr			fidl_message_header[1594344351]
	profileInLine		fuchsia_cobalt_ProjectProfileInLine
	logger			flags[fidl_handle_presence, int32]
	profileOutOfLine	fuchsia_cobalt_ProjectProfileOutOfLine
} [packed]

fuchsia_cobalt_LoggerFactoryCreateLoggerSimpleRequestHandles {
	profile	fuchsia_cobalt_ProjectProfileHandles
	logger	zx_chan_fuchsia_cobalt_LoggerSimple_server
} [packed]

fuchsia_cobalt_LoggerFactoryCreateLoggerSimpleResponseHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerFactoryCreateLoggerFromProjectNameRequest {
	hdr			fidl_message_header[537166031]
	project_nameInLine	fidl_string
	release_stage		flags[fuchsia_cobalt_ReleaseStage, int32]
	logger			flags[fidl_handle_presence, int32]
	project_nameOutOfLine	fidl_aligned[stringnoz]
} [packed]

fuchsia_cobalt_LoggerFactoryCreateLoggerFromProjectNameRequestHandles {
	logger	zx_chan_fuchsia_cobalt_Logger_server
} [packed]

fuchsia_cobalt_LoggerFactoryCreateLoggerFromProjectNameResponseHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerFactoryCreateLoggerSimpleFromProjectNameRequest {
	hdr			fidl_message_header[930272946]
	project_nameInLine	fidl_string
	release_stage		flags[fuchsia_cobalt_ReleaseStage, int32]
	logger			flags[fidl_handle_presence, int32]
	project_nameOutOfLine	fidl_aligned[stringnoz]
} [packed]

fuchsia_cobalt_LoggerFactoryCreateLoggerSimpleFromProjectNameRequestHandles {
	logger	zx_chan_fuchsia_cobalt_LoggerSimple_server
} [packed]

fuchsia_cobalt_LoggerFactoryCreateLoggerSimpleFromProjectNameResponseHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerFactoryCreateLoggerFromProjectIdRequest {
	hdr		fidl_message_header[721700981]
	project_id	int32
	release_stage	flags[fuchsia_cobalt_ReleaseStage, int32]
	logger		flags[fidl_handle_presence, int32]
} [packed]

fuchsia_cobalt_LoggerFactoryCreateLoggerFromProjectIdRequestHandles {
	logger	zx_chan_fuchsia_cobalt_Logger_server
} [packed]

fuchsia_cobalt_LoggerFactoryCreateLoggerFromProjectIdResponseHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerFactoryCreateLoggerSimpleFromProjectIdRequest {
	hdr		fidl_message_header[294571825]
	project_id	int32
	release_stage	flags[fuchsia_cobalt_ReleaseStage, int32]
	logger		flags[fidl_handle_presence, int32]
} [packed]

fuchsia_cobalt_LoggerFactoryCreateLoggerSimpleFromProjectIdRequestHandles {
	logger	zx_chan_fuchsia_cobalt_LoggerSimple_server
} [packed]

fuchsia_cobalt_LoggerFactoryCreateLoggerSimpleFromProjectIdResponseHandles {
	void	void
} [packed]

resource zx_chan_fuchsia_cobalt_LoggerFactory_client[zx_chan]
resource zx_chan_fuchsia_cobalt_LoggerFactory_server[zx_chan]

zx_channel_create$fuchsia_cobalt_LoggerFactory(options const[0], out0 ptr[out, zx_chan_fuchsia_cobalt_LoggerFactory_client], out1 ptr[out, zx_chan_fuchsia_cobalt_LoggerFactory_server])
fdio_service_connect$fuchsia_cobalt_LoggerFactory(path ptr[in, string["/svc/fuchsia.cobalt.LoggerFactory"]], handle zx_chan_fuchsia_cobalt_LoggerFactory_server)
zx_channel_call$fuchsia_cobalt_LoggerFactoryCreateLogger(handle zx_chan_fuchsia_cobalt_LoggerFactory_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_cobalt_LoggerFactoryCreateLoggerRequest, fuchsia_cobalt_LoggerFactoryCreateLoggerRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_cobalt_LoggerFactoryCreateLoggerResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_cobalt_LoggerFactoryCreateLoggerSimple(handle zx_chan_fuchsia_cobalt_LoggerFactory_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_cobalt_LoggerFactoryCreateLoggerSimpleRequest, fuchsia_cobalt_LoggerFactoryCreateLoggerSimpleRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_cobalt_LoggerFactoryCreateLoggerSimpleResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_cobalt_LoggerFactoryCreateLoggerFromProjectName(handle zx_chan_fuchsia_cobalt_LoggerFactory_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_cobalt_LoggerFactoryCreateLoggerFromProjectNameRequest, fuchsia_cobalt_LoggerFactoryCreateLoggerFromProjectNameRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_cobalt_LoggerFactoryCreateLoggerFromProjectNameResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_cobalt_LoggerFactoryCreateLoggerSimpleFromProjectName(handle zx_chan_fuchsia_cobalt_LoggerFactory_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_cobalt_LoggerFactoryCreateLoggerSimpleFromProjectNameRequest, fuchsia_cobalt_LoggerFactoryCreateLoggerSimpleFromProjectNameRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_cobalt_LoggerFactoryCreateLoggerSimpleFromProjectNameResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_cobalt_LoggerFactoryCreateLoggerFromProjectId(handle zx_chan_fuchsia_cobalt_LoggerFactory_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_cobalt_LoggerFactoryCreateLoggerFromProjectIdRequest, fuchsia_cobalt_LoggerFactoryCreateLoggerFromProjectIdRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_cobalt_LoggerFactoryCreateLoggerFromProjectIdResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_cobalt_LoggerFactoryCreateLoggerSimpleFromProjectId(handle zx_chan_fuchsia_cobalt_LoggerFactory_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_cobalt_LoggerFactoryCreateLoggerSimpleFromProjectIdRequest, fuchsia_cobalt_LoggerFactoryCreateLoggerSimpleFromProjectIdRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_cobalt_LoggerFactoryCreateLoggerSimpleFromProjectIdResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])

fuchsia_cobalt_LoggerBaseLogEventRequest {
	hdr		fidl_message_header[324887181]
	metric_id	int32
	event_code	int32
} [packed]

fuchsia_cobalt_LoggerBaseLogEventRequestHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerBaseLogEventResponseHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerBaseLogEventCountRequest {
	hdr			fidl_message_header[1875801957]
	metric_id		int32
	event_code		int32
	componentInLine		fidl_string
	period_duration_micros	int64
	count			int64
	componentOutOfLine	fidl_aligned[stringnoz]
} [packed]

fuchsia_cobalt_LoggerBaseLogEventCountRequestHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerBaseLogEventCountResponseHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerBaseLogElapsedTimeRequest {
	hdr			fidl_message_header[351572256]
	metric_id		int32
	event_code		int32
	componentInLine		fidl_string
	elapsed_micros		int64
	componentOutOfLine	fidl_aligned[stringnoz]
} [packed]

fuchsia_cobalt_LoggerBaseLogElapsedTimeRequestHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerBaseLogElapsedTimeResponseHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerBaseLogFrameRateRequest {
	hdr			fidl_message_header[730276536]
	metric_id		int32
	event_code		int32
	componentInLine		fidl_string
	fps			int32
	componentOutOfLine	fidl_aligned[stringnoz]
} [packed]

fuchsia_cobalt_LoggerBaseLogFrameRateRequestHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerBaseLogFrameRateResponseHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerBaseLogMemoryUsageRequest {
	hdr			fidl_message_header[1724292379]
	metric_id		int32
	event_code		int32
	componentInLine		fidl_string
	bytes			int64
	componentOutOfLine	fidl_aligned[stringnoz]
} [packed]

fuchsia_cobalt_LoggerBaseLogMemoryUsageRequestHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerBaseLogMemoryUsageResponseHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerBaseLogStringRequest {
	hdr		fidl_message_header[1288241002]
	metric_id	int32
	sInLine		fidl_string
	sOutOfLine	fidl_aligned[stringnoz]
} [packed]

fuchsia_cobalt_LoggerBaseLogStringRequestHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerBaseLogStringResponseHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerBaseStartTimerRequest {
	hdr			fidl_message_header[1247568160]
	metric_id		int32
	event_code		int32
	componentInLine		fidl_string
	timer_idInLine		fidl_string
	timestamp		int64
	timeout_s		int32
	componentOutOfLine	fidl_aligned[stringnoz]
	timer_idOutOfLine	fidl_aligned[stringnoz]
} [packed]

fuchsia_cobalt_LoggerBaseStartTimerRequestHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerBaseStartTimerResponseHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerBaseEndTimerRequest {
	hdr			fidl_message_header[1708879426]
	timer_idInLine		fidl_string
	timestamp		int64
	timeout_s		int32
	timer_idOutOfLine	fidl_aligned[stringnoz]
} [packed]

fuchsia_cobalt_LoggerBaseEndTimerRequestHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerBaseEndTimerResponseHandles {
	void	void
} [packed]

resource zx_chan_fuchsia_cobalt_LoggerBase_client[zx_chan]
resource zx_chan_fuchsia_cobalt_LoggerBase_server[zx_chan]

zx_channel_create$fuchsia_cobalt_LoggerBase(options const[0], out0 ptr[out, zx_chan_fuchsia_cobalt_LoggerBase_client], out1 ptr[out, zx_chan_fuchsia_cobalt_LoggerBase_server])
fdio_service_connect$fuchsia_cobalt_LoggerBase(path ptr[in, string["/svc/"]], handle zx_chan_fuchsia_cobalt_LoggerBase_server)
zx_channel_call$fuchsia_cobalt_LoggerBaseLogEvent(handle zx_chan_fuchsia_cobalt_LoggerBase_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_cobalt_LoggerBaseLogEventRequest, fuchsia_cobalt_LoggerBaseLogEventRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_cobalt_LoggerBaseLogEventResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_cobalt_LoggerBaseLogEventCount(handle zx_chan_fuchsia_cobalt_LoggerBase_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_cobalt_LoggerBaseLogEventCountRequest, fuchsia_cobalt_LoggerBaseLogEventCountRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_cobalt_LoggerBaseLogEventCountResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_cobalt_LoggerBaseLogElapsedTime(handle zx_chan_fuchsia_cobalt_LoggerBase_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_cobalt_LoggerBaseLogElapsedTimeRequest, fuchsia_cobalt_LoggerBaseLogElapsedTimeRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_cobalt_LoggerBaseLogElapsedTimeResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_cobalt_LoggerBaseLogFrameRate(handle zx_chan_fuchsia_cobalt_LoggerBase_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_cobalt_LoggerBaseLogFrameRateRequest, fuchsia_cobalt_LoggerBaseLogFrameRateRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_cobalt_LoggerBaseLogFrameRateResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_cobalt_LoggerBaseLogMemoryUsage(handle zx_chan_fuchsia_cobalt_LoggerBase_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_cobalt_LoggerBaseLogMemoryUsageRequest, fuchsia_cobalt_LoggerBaseLogMemoryUsageRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_cobalt_LoggerBaseLogMemoryUsageResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_cobalt_LoggerBaseLogString(handle zx_chan_fuchsia_cobalt_LoggerBase_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_cobalt_LoggerBaseLogStringRequest, fuchsia_cobalt_LoggerBaseLogStringRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_cobalt_LoggerBaseLogStringResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_cobalt_LoggerBaseStartTimer(handle zx_chan_fuchsia_cobalt_LoggerBase_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_cobalt_LoggerBaseStartTimerRequest, fuchsia_cobalt_LoggerBaseStartTimerRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_cobalt_LoggerBaseStartTimerResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_cobalt_LoggerBaseEndTimer(handle zx_chan_fuchsia_cobalt_LoggerBase_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_cobalt_LoggerBaseEndTimerRequest, fuchsia_cobalt_LoggerBaseEndTimerRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_cobalt_LoggerBaseEndTimerResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])

fuchsia_cobalt_LoggerLogEventRequest {
	hdr		fidl_message_header[324887181]
	metric_id	int32
	event_code	int32
} [packed]

fuchsia_cobalt_LoggerLogEventRequestHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerLogEventResponseHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerLogEventCountRequest {
	hdr			fidl_message_header[1875801957]
	metric_id		int32
	event_code		int32
	componentInLine		fidl_string
	period_duration_micros	int64
	count			int64
	componentOutOfLine	fidl_aligned[stringnoz]
} [packed]

fuchsia_cobalt_LoggerLogEventCountRequestHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerLogEventCountResponseHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerLogElapsedTimeRequest {
	hdr			fidl_message_header[351572256]
	metric_id		int32
	event_code		int32
	componentInLine		fidl_string
	elapsed_micros		int64
	componentOutOfLine	fidl_aligned[stringnoz]
} [packed]

fuchsia_cobalt_LoggerLogElapsedTimeRequestHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerLogElapsedTimeResponseHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerLogFrameRateRequest {
	hdr			fidl_message_header[730276536]
	metric_id		int32
	event_code		int32
	componentInLine		fidl_string
	fps			int32
	componentOutOfLine	fidl_aligned[stringnoz]
} [packed]

fuchsia_cobalt_LoggerLogFrameRateRequestHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerLogFrameRateResponseHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerLogMemoryUsageRequest {
	hdr			fidl_message_header[1724292379]
	metric_id		int32
	event_code		int32
	componentInLine		fidl_string
	bytes			int64
	componentOutOfLine	fidl_aligned[stringnoz]
} [packed]

fuchsia_cobalt_LoggerLogMemoryUsageRequestHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerLogMemoryUsageResponseHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerLogStringRequest {
	hdr		fidl_message_header[1288241002]
	metric_id	int32
	sInLine		fidl_string
	sOutOfLine	fidl_aligned[stringnoz]
} [packed]

fuchsia_cobalt_LoggerLogStringRequestHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerLogStringResponseHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerStartTimerRequest {
	hdr			fidl_message_header[1247568160]
	metric_id		int32
	event_code		int32
	componentInLine		fidl_string
	timer_idInLine		fidl_string
	timestamp		int64
	timeout_s		int32
	componentOutOfLine	fidl_aligned[stringnoz]
	timer_idOutOfLine	fidl_aligned[stringnoz]
} [packed]

fuchsia_cobalt_LoggerStartTimerRequestHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerStartTimerResponseHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerEndTimerRequest {
	hdr			fidl_message_header[1708879426]
	timer_idInLine		fidl_string
	timestamp		int64
	timeout_s		int32
	timer_idOutOfLine	fidl_aligned[stringnoz]
} [packed]

fuchsia_cobalt_LoggerEndTimerRequestHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerEndTimerResponseHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerLogIntHistogramRequest {
	hdr			fidl_message_header[2063400240]
	metric_id		int32
	event_code		int32
	componentInLine		fidl_string
	histogramInLine		fidl_vector
	componentOutOfLine	fidl_aligned[stringnoz]
	histogramOutOfLine	parallel_array[fuchsia_cobalt_HistogramBucketInLine, fuchsia_cobalt_HistogramBucketOutOfLine]
} [packed]

fuchsia_cobalt_LoggerLogIntHistogramRequestHandles {
	histogram	array[fuchsia_cobalt_HistogramBucketHandles]
} [packed]

fuchsia_cobalt_LoggerLogIntHistogramResponseHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerLogCustomEventRequest {
	hdr			fidl_message_header[1023246268]
	metric_id		int32
	event_valuesInLine	fidl_vector
	event_valuesOutOfLine	parallel_array[fuchsia_cobalt_CustomEventValueInLine, fuchsia_cobalt_CustomEventValueOutOfLine]
} [packed]

fuchsia_cobalt_LoggerLogCustomEventRequestHandles {
	event_values	array[fuchsia_cobalt_CustomEventValueHandles]
} [packed]

fuchsia_cobalt_LoggerLogCustomEventResponseHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerLogCobaltEventRequest {
	hdr		fidl_message_header[1719478404]
	eventInLine	fuchsia_cobalt_CobaltEventInLine
	eventOutOfLine	fuchsia_cobalt_CobaltEventOutOfLine
} [packed]

fuchsia_cobalt_LoggerLogCobaltEventRequestHandles {
	event	fuchsia_cobalt_CobaltEventHandles
} [packed]

fuchsia_cobalt_LoggerLogCobaltEventResponseHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerLogCobaltEventsRequest {
	hdr		fidl_message_header[688248468]
	eventsInLine	fidl_vector
	eventsOutOfLine	parallel_array[fuchsia_cobalt_CobaltEventInLine, fuchsia_cobalt_CobaltEventOutOfLine]
} [packed]

fuchsia_cobalt_LoggerLogCobaltEventsRequestHandles {
	events	array[fuchsia_cobalt_CobaltEventHandles]
} [packed]

fuchsia_cobalt_LoggerLogCobaltEventsResponseHandles {
	void	void
} [packed]

resource zx_chan_fuchsia_cobalt_Logger_client[zx_chan]
resource zx_chan_fuchsia_cobalt_Logger_server[zx_chan]

zx_channel_create$fuchsia_cobalt_Logger(options const[0], out0 ptr[out, zx_chan_fuchsia_cobalt_Logger_client], out1 ptr[out, zx_chan_fuchsia_cobalt_Logger_server])
fdio_service_connect$fuchsia_cobalt_Logger(path ptr[in, string["/svc/"]], handle zx_chan_fuchsia_cobalt_Logger_server)
zx_channel_call$fuchsia_cobalt_LoggerLogEvent(handle zx_chan_fuchsia_cobalt_Logger_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_cobalt_LoggerLogEventRequest, fuchsia_cobalt_LoggerLogEventRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_cobalt_LoggerLogEventResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_cobalt_LoggerLogEventCount(handle zx_chan_fuchsia_cobalt_Logger_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_cobalt_LoggerLogEventCountRequest, fuchsia_cobalt_LoggerLogEventCountRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_cobalt_LoggerLogEventCountResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_cobalt_LoggerLogElapsedTime(handle zx_chan_fuchsia_cobalt_Logger_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_cobalt_LoggerLogElapsedTimeRequest, fuchsia_cobalt_LoggerLogElapsedTimeRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_cobalt_LoggerLogElapsedTimeResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_cobalt_LoggerLogFrameRate(handle zx_chan_fuchsia_cobalt_Logger_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_cobalt_LoggerLogFrameRateRequest, fuchsia_cobalt_LoggerLogFrameRateRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_cobalt_LoggerLogFrameRateResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_cobalt_LoggerLogMemoryUsage(handle zx_chan_fuchsia_cobalt_Logger_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_cobalt_LoggerLogMemoryUsageRequest, fuchsia_cobalt_LoggerLogMemoryUsageRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_cobalt_LoggerLogMemoryUsageResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_cobalt_LoggerLogString(handle zx_chan_fuchsia_cobalt_Logger_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_cobalt_LoggerLogStringRequest, fuchsia_cobalt_LoggerLogStringRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_cobalt_LoggerLogStringResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_cobalt_LoggerStartTimer(handle zx_chan_fuchsia_cobalt_Logger_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_cobalt_LoggerStartTimerRequest, fuchsia_cobalt_LoggerStartTimerRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_cobalt_LoggerStartTimerResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_cobalt_LoggerEndTimer(handle zx_chan_fuchsia_cobalt_Logger_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_cobalt_LoggerEndTimerRequest, fuchsia_cobalt_LoggerEndTimerRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_cobalt_LoggerEndTimerResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_cobalt_LoggerLogIntHistogram(handle zx_chan_fuchsia_cobalt_Logger_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_cobalt_LoggerLogIntHistogramRequest, fuchsia_cobalt_LoggerLogIntHistogramRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_cobalt_LoggerLogIntHistogramResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_cobalt_LoggerLogCustomEvent(handle zx_chan_fuchsia_cobalt_Logger_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_cobalt_LoggerLogCustomEventRequest, fuchsia_cobalt_LoggerLogCustomEventRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_cobalt_LoggerLogCustomEventResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_cobalt_LoggerLogCobaltEvent(handle zx_chan_fuchsia_cobalt_Logger_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_cobalt_LoggerLogCobaltEventRequest, fuchsia_cobalt_LoggerLogCobaltEventRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_cobalt_LoggerLogCobaltEventResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_cobalt_LoggerLogCobaltEvents(handle zx_chan_fuchsia_cobalt_Logger_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_cobalt_LoggerLogCobaltEventsRequest, fuchsia_cobalt_LoggerLogCobaltEventsRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_cobalt_LoggerLogCobaltEventsResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])

fuchsia_cobalt_LoggerSimpleLogEventRequest {
	hdr		fidl_message_header[324887181]
	metric_id	int32
	event_code	int32
} [packed]

fuchsia_cobalt_LoggerSimpleLogEventRequestHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerSimpleLogEventResponseHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerSimpleLogEventCountRequest {
	hdr			fidl_message_header[1875801957]
	metric_id		int32
	event_code		int32
	componentInLine		fidl_string
	period_duration_micros	int64
	count			int64
	componentOutOfLine	fidl_aligned[stringnoz]
} [packed]

fuchsia_cobalt_LoggerSimpleLogEventCountRequestHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerSimpleLogEventCountResponseHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerSimpleLogElapsedTimeRequest {
	hdr			fidl_message_header[351572256]
	metric_id		int32
	event_code		int32
	componentInLine		fidl_string
	elapsed_micros		int64
	componentOutOfLine	fidl_aligned[stringnoz]
} [packed]

fuchsia_cobalt_LoggerSimpleLogElapsedTimeRequestHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerSimpleLogElapsedTimeResponseHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerSimpleLogFrameRateRequest {
	hdr			fidl_message_header[730276536]
	metric_id		int32
	event_code		int32
	componentInLine		fidl_string
	fps			int32
	componentOutOfLine	fidl_aligned[stringnoz]
} [packed]

fuchsia_cobalt_LoggerSimpleLogFrameRateRequestHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerSimpleLogFrameRateResponseHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerSimpleLogMemoryUsageRequest {
	hdr			fidl_message_header[1724292379]
	metric_id		int32
	event_code		int32
	componentInLine		fidl_string
	bytes			int64
	componentOutOfLine	fidl_aligned[stringnoz]
} [packed]

fuchsia_cobalt_LoggerSimpleLogMemoryUsageRequestHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerSimpleLogMemoryUsageResponseHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerSimpleLogStringRequest {
	hdr		fidl_message_header[1288241002]
	metric_id	int32
	sInLine		fidl_string
	sOutOfLine	fidl_aligned[stringnoz]
} [packed]

fuchsia_cobalt_LoggerSimpleLogStringRequestHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerSimpleLogStringResponseHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerSimpleStartTimerRequest {
	hdr			fidl_message_header[1247568160]
	metric_id		int32
	event_code		int32
	componentInLine		fidl_string
	timer_idInLine		fidl_string
	timestamp		int64
	timeout_s		int32
	componentOutOfLine	fidl_aligned[stringnoz]
	timer_idOutOfLine	fidl_aligned[stringnoz]
} [packed]

fuchsia_cobalt_LoggerSimpleStartTimerRequestHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerSimpleStartTimerResponseHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerSimpleEndTimerRequest {
	hdr			fidl_message_header[1708879426]
	timer_idInLine		fidl_string
	timestamp		int64
	timeout_s		int32
	timer_idOutOfLine	fidl_aligned[stringnoz]
} [packed]

fuchsia_cobalt_LoggerSimpleEndTimerRequestHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerSimpleEndTimerResponseHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerSimpleLogIntHistogramRequest {
	hdr			fidl_message_header[759190088]
	metric_id		int32
	event_code		int32
	componentInLine		fidl_string
	bucket_indicesInLine	fidl_vector
	bucket_countsInLine	fidl_vector
	componentOutOfLine	fidl_aligned[stringnoz]
	bucket_indicesOutOfLine	array[int32]
	bucket_countsOutOfLine	array[int64]
} [packed]

fuchsia_cobalt_LoggerSimpleLogIntHistogramRequestHandles {
	void	void
} [packed]

fuchsia_cobalt_LoggerSimpleLogIntHistogramResponseHandles {
	void	void
} [packed]

resource zx_chan_fuchsia_cobalt_LoggerSimple_client[zx_chan]
resource zx_chan_fuchsia_cobalt_LoggerSimple_server[zx_chan]

zx_channel_create$fuchsia_cobalt_LoggerSimple(options const[0], out0 ptr[out, zx_chan_fuchsia_cobalt_LoggerSimple_client], out1 ptr[out, zx_chan_fuchsia_cobalt_LoggerSimple_server])
fdio_service_connect$fuchsia_cobalt_LoggerSimple(path ptr[in, string["/svc/"]], handle zx_chan_fuchsia_cobalt_LoggerSimple_server)
zx_channel_call$fuchsia_cobalt_LoggerSimpleLogEvent(handle zx_chan_fuchsia_cobalt_LoggerSimple_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_cobalt_LoggerSimpleLogEventRequest, fuchsia_cobalt_LoggerSimpleLogEventRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_cobalt_LoggerSimpleLogEventResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_cobalt_LoggerSimpleLogEventCount(handle zx_chan_fuchsia_cobalt_LoggerSimple_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_cobalt_LoggerSimpleLogEventCountRequest, fuchsia_cobalt_LoggerSimpleLogEventCountRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_cobalt_LoggerSimpleLogEventCountResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_cobalt_LoggerSimpleLogElapsedTime(handle zx_chan_fuchsia_cobalt_LoggerSimple_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_cobalt_LoggerSimpleLogElapsedTimeRequest, fuchsia_cobalt_LoggerSimpleLogElapsedTimeRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_cobalt_LoggerSimpleLogElapsedTimeResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_cobalt_LoggerSimpleLogFrameRate(handle zx_chan_fuchsia_cobalt_LoggerSimple_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_cobalt_LoggerSimpleLogFrameRateRequest, fuchsia_cobalt_LoggerSimpleLogFrameRateRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_cobalt_LoggerSimpleLogFrameRateResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_cobalt_LoggerSimpleLogMemoryUsage(handle zx_chan_fuchsia_cobalt_LoggerSimple_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_cobalt_LoggerSimpleLogMemoryUsageRequest, fuchsia_cobalt_LoggerSimpleLogMemoryUsageRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_cobalt_LoggerSimpleLogMemoryUsageResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_cobalt_LoggerSimpleLogString(handle zx_chan_fuchsia_cobalt_LoggerSimple_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_cobalt_LoggerSimpleLogStringRequest, fuchsia_cobalt_LoggerSimpleLogStringRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_cobalt_LoggerSimpleLogStringResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_cobalt_LoggerSimpleStartTimer(handle zx_chan_fuchsia_cobalt_LoggerSimple_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_cobalt_LoggerSimpleStartTimerRequest, fuchsia_cobalt_LoggerSimpleStartTimerRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_cobalt_LoggerSimpleStartTimerResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_cobalt_LoggerSimpleEndTimer(handle zx_chan_fuchsia_cobalt_LoggerSimple_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_cobalt_LoggerSimpleEndTimerRequest, fuchsia_cobalt_LoggerSimpleEndTimerRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_cobalt_LoggerSimpleEndTimerResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_cobalt_LoggerSimpleLogIntHistogram(handle zx_chan_fuchsia_cobalt_LoggerSimple_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_cobalt_LoggerSimpleLogIntHistogramRequest, fuchsia_cobalt_LoggerSimpleLogIntHistogramRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_cobalt_LoggerSimpleLogIntHistogramResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])

fuchsia_cobalt_SystemDataUpdaterSetExperimentStateRequest {
	hdr			fidl_message_header[1903807121]
	experimentsInLine	fidl_vector
	experimentsOutOfLine	parallel_array[fuchsia_cobalt_ExperimentInLine, fuchsia_cobalt_ExperimentOutOfLine]
} [packed]

fuchsia_cobalt_SystemDataUpdaterSetExperimentStateRequestHandles {
	experiments	array[fuchsia_cobalt_ExperimentHandles]
} [packed]

fuchsia_cobalt_SystemDataUpdaterSetExperimentStateResponseHandles {
	void	void
} [packed]

resource zx_chan_fuchsia_cobalt_SystemDataUpdater_client[zx_chan]
resource zx_chan_fuchsia_cobalt_SystemDataUpdater_server[zx_chan]

zx_channel_create$fuchsia_cobalt_SystemDataUpdater(options const[0], out0 ptr[out, zx_chan_fuchsia_cobalt_SystemDataUpdater_client], out1 ptr[out, zx_chan_fuchsia_cobalt_SystemDataUpdater_server])
fdio_service_connect$fuchsia_cobalt_SystemDataUpdater(path ptr[in, string["/svc/fuchsia.cobalt.SystemDataUpdater"]], handle zx_chan_fuchsia_cobalt_SystemDataUpdater_server)
zx_channel_call$fuchsia_cobalt_SystemDataUpdaterSetExperimentState(handle zx_chan_fuchsia_cobalt_SystemDataUpdater_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_cobalt_SystemDataUpdaterSetExperimentStateRequest, fuchsia_cobalt_SystemDataUpdaterSetExperimentStateRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_cobalt_SystemDataUpdaterSetExperimentStateResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])

fuchsia_cobalt_ControllerRequestSendSoonRequest {
	hdr	fidl_message_header[148310311]
} [packed]

fuchsia_cobalt_ControllerRequestSendSoonRequestHandles {
	void	void
} [packed]

fuchsia_cobalt_ControllerRequestSendSoonResponseHandles {
	void	void
} [packed]

fuchsia_cobalt_ControllerBlockUntilEmptyRequest {
	hdr			fidl_message_header[737508914]
	max_wait_seconds	int32
} [packed]

fuchsia_cobalt_ControllerBlockUntilEmptyRequestHandles {
	void	void
} [packed]

fuchsia_cobalt_ControllerBlockUntilEmptyResponseHandles {
	void	void
} [packed]

fuchsia_cobalt_ControllerGetNumSendAttemptsRequest {
	hdr	fidl_message_header[1476784191]
} [packed]

fuchsia_cobalt_ControllerGetNumSendAttemptsRequestHandles {
	void	void
} [packed]

fuchsia_cobalt_ControllerGetNumSendAttemptsResponseHandles {
	void	void
} [packed]

fuchsia_cobalt_ControllerGetFailedSendAttemptsRequest {
	hdr	fidl_message_header[976719687]
} [packed]

fuchsia_cobalt_ControllerGetFailedSendAttemptsRequestHandles {
	void	void
} [packed]

fuchsia_cobalt_ControllerGetFailedSendAttemptsResponseHandles {
	void	void
} [packed]

resource zx_chan_fuchsia_cobalt_Controller_client[zx_chan]
resource zx_chan_fuchsia_cobalt_Controller_server[zx_chan]

zx_channel_create$fuchsia_cobalt_Controller(options const[0], out0 ptr[out, zx_chan_fuchsia_cobalt_Controller_client], out1 ptr[out, zx_chan_fuchsia_cobalt_Controller_server])
fdio_service_connect$fuchsia_cobalt_Controller(path ptr[in, string["/svc/fuchsia.cobalt.Controller"]], handle zx_chan_fuchsia_cobalt_Controller_server)
zx_channel_call$fuchsia_cobalt_ControllerRequestSendSoon(handle zx_chan_fuchsia_cobalt_Controller_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_cobalt_ControllerRequestSendSoonRequest, fuchsia_cobalt_ControllerRequestSendSoonRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_cobalt_ControllerRequestSendSoonResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_cobalt_ControllerBlockUntilEmpty(handle zx_chan_fuchsia_cobalt_Controller_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_cobalt_ControllerBlockUntilEmptyRequest, fuchsia_cobalt_ControllerBlockUntilEmptyRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_cobalt_ControllerBlockUntilEmptyResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_cobalt_ControllerGetNumSendAttempts(handle zx_chan_fuchsia_cobalt_Controller_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_cobalt_ControllerGetNumSendAttemptsRequest, fuchsia_cobalt_ControllerGetNumSendAttemptsRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_cobalt_ControllerGetNumSendAttemptsResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_cobalt_ControllerGetFailedSendAttempts(handle zx_chan_fuchsia_cobalt_Controller_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_cobalt_ControllerGetFailedSendAttemptsRequest, fuchsia_cobalt_ControllerGetFailedSendAttemptsRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_cobalt_ControllerGetFailedSendAttemptsResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
