blob: 530ff8775f21252681e63097a70bb57c88e0dce3 [file] [log] [blame]
// Copyright 2017 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.
#include "fidl_coded_types.h"
#include <lib/fidl/internal.h>
#include "fidl_structs.h"
namespace {
// All sizes in fidl encoding tables are 32 bits. The fidl compiler
// normally enforces this. Check manually in manual tests.
template <typename T, size_t N>
uint32_t ArrayCount(T const (&array)[N]) {
static_assert(N < UINT32_MAX, "Array is too large!");
return N;
}
} // namespace
// Handle types.
const fidl_type_t nonnullable_handle =
fidl_type_t(fidl::FidlCodedHandle(ZX_OBJ_TYPE_NONE, fidl::kNonnullable));
const fidl_type_t nullable_handle =
fidl_type_t(fidl::FidlCodedHandle(ZX_OBJ_TYPE_NONE, fidl::kNullable));
const fidl_type_t nullable_channel_handle =
fidl_type_t(fidl::FidlCodedHandle(ZX_OBJ_TYPE_CHANNEL, fidl::kNullable));
const fidl_type_t nullable_vmo_handle =
fidl_type_t(fidl::FidlCodedHandle(ZX_OBJ_TYPE_VMO, fidl::kNullable));
const fidl_type_t nonnullable_channel_handle =
fidl_type_t(fidl::FidlCodedHandle(ZX_OBJ_TYPE_CHANNEL, fidl::kNonnullable));
const fidl_type_t nonnullable_vmo_handle =
fidl_type_t(fidl::FidlCodedHandle(ZX_OBJ_TYPE_VMO, fidl::kNonnullable));
// Array types.
const fidl_type_t array_of_two_nonnullable_handles = fidl_type_t(
fidl::FidlCodedArray(&nonnullable_handle, 2 * sizeof(zx_handle_t), sizeof(zx_handle_t)));
const fidl_type_t array_of_four_nonnullable_handles = fidl_type_t(
fidl::FidlCodedArray(&nonnullable_handle, 4 * sizeof(zx_handle_t), sizeof(zx_handle_t)));
const fidl_type_t array_of_five_nullable_handles = fidl_type_t(
fidl::FidlCodedArray(&nullable_handle, 5 * sizeof(zx_handle_t), sizeof(zx_handle_t)));
const fidl_type_t array_of_three_arrays_of_four_nonnullable_handles =
fidl_type_t(fidl::FidlCodedArray(&array_of_four_nonnullable_handles,
3 * 4 * sizeof(zx_handle_t), 4 * sizeof(zx_handle_t)));
const fidl_type_t array_of_two_arrays_of_two_nonnullable_handles =
fidl_type_t(fidl::FidlCodedArray(&array_of_two_nonnullable_handles, 2 * 2 * sizeof(zx_handle_t),
2 * sizeof(zx_handle_t)));
// String types.
const fidl_type_t unbounded_nonnullable_string =
fidl_type_t(fidl::FidlCodedString(FIDL_MAX_SIZE, fidl::kNonnullable));
const fidl_type_t unbounded_nullable_string =
fidl_type_t(fidl::FidlCodedString(FIDL_MAX_SIZE, fidl::kNullable));
const fidl_type_t bounded_32_nonnullable_string =
fidl_type_t(fidl::FidlCodedString(32, fidl::kNonnullable));
const fidl_type_t bounded_32_nullable_string =
fidl_type_t(fidl::FidlCodedString(32, fidl::kNullable));
const fidl_type_t bounded_4_nonnullable_string =
fidl_type_t(fidl::FidlCodedString(4, fidl::kNonnullable));
const fidl_type_t bounded_4_nullable_string =
fidl_type_t(fidl::FidlCodedString(4, fidl::kNullable));
// Vector types.
const fidl_type_t unbounded_nonnullable_vector_of_handles =
fidl_type_t(fidl::FidlCodedVector(&nonnullable_handle, FIDL_MAX_SIZE, sizeof(zx_handle_t),
fidl::kNonnullable));
const fidl_type_t unbounded_nullable_vector_of_handles = fidl_type_t(fidl::FidlCodedVector(
&nonnullable_handle, FIDL_MAX_SIZE, sizeof(zx_handle_t), fidl::kNullable));
const fidl_type_t bounded_32_nonnullable_vector_of_handles = fidl_type_t(
fidl::FidlCodedVector(&nonnullable_handle, 32, sizeof(zx_handle_t), fidl::kNonnullable));
const fidl_type_t bounded_32_nullable_vector_of_handles = fidl_type_t(
fidl::FidlCodedVector(&nonnullable_handle, 32, sizeof(zx_handle_t), fidl::kNullable));
const fidl_type_t bounded_2_nonnullable_vector_of_handles = fidl_type_t(
fidl::FidlCodedVector(&nonnullable_handle, 2, sizeof(zx_handle_t), fidl::kNonnullable));
const fidl_type_t bounded_2_nullable_vector_of_handles = fidl_type_t(
fidl::FidlCodedVector(&nonnullable_handle, 2, sizeof(zx_handle_t), fidl::kNullable));
const fidl_type_t unbounded_nonnullable_vector_of_uint32 =
fidl_type_t(fidl::FidlCodedVector(nullptr, FIDL_MAX_SIZE, sizeof(uint32_t),
fidl::kNonnullable));
const fidl_type_t unbounded_nullable_vector_of_uint32 = fidl_type_t(fidl::FidlCodedVector(
nullptr, FIDL_MAX_SIZE, sizeof(uint32_t), fidl::kNullable));
const fidl_type_t bounded_32_nonnullable_vector_of_uint32 = fidl_type_t(
fidl::FidlCodedVector(nullptr, 32, sizeof(uint32_t), fidl::kNonnullable));
const fidl_type_t bounded_32_nullable_vector_of_uint32 = fidl_type_t(
fidl::FidlCodedVector(nullptr, 32, sizeof(uint32_t), fidl::kNullable));
const fidl_type_t bounded_2_nonnullable_vector_of_uint32 = fidl_type_t(
fidl::FidlCodedVector(nullptr, 2, sizeof(uint32_t), fidl::kNonnullable));
const fidl_type_t bounded_2_nullable_vector_of_uint32 = fidl_type_t(
fidl::FidlCodedVector(nullptr, 2, sizeof(uint32_t), fidl::kNullable));
// Handle messages.
static const fidl::FidlStructField nonnullable_handle_message_fields[] = {
fidl::FidlStructField(&nonnullable_handle,
offsetof(nonnullable_handle_message_layout, inline_struct.handle)),
};
const fidl_type_t nonnullable_handle_message_type = fidl_type_t(fidl::FidlCodedStruct(
nonnullable_handle_message_fields, ArrayCount(nonnullable_handle_message_fields),
sizeof(nonnullable_handle_inline_data),
"nonnullable_handle_message"));
static const fidl::FidlStructField multiple_nonnullable_handles_fields[] = {
fidl::FidlStructField(&nonnullable_handle,
offsetof(multiple_nonnullable_handles_message_layout, inline_struct.handle_0)),
fidl::FidlStructField(&nonnullable_channel_handle,
offsetof(multiple_nonnullable_handles_message_layout, inline_struct.handle_1)),
fidl::FidlStructField(&nonnullable_vmo_handle,
offsetof(multiple_nonnullable_handles_message_layout, inline_struct.handle_2)),
};
const fidl_type_t multiple_nonnullable_handles_message_type = fidl_type_t(fidl::FidlCodedStruct(
multiple_nonnullable_handles_fields, ArrayCount(multiple_nonnullable_handles_fields),
sizeof(multiple_nonnullable_handles_inline_data),
"multiple_nonnullable_handles_message"));
static const fidl::FidlStructField nullable_handle_fields[] = {
fidl::FidlStructField(&nullable_handle,
offsetof(nullable_handle_message_layout, inline_struct.handle)),
};
const fidl_type_t nullable_handle_message_type =
fidl_type_t(fidl::FidlCodedStruct(nullable_handle_fields, ArrayCount(nullable_handle_fields),
sizeof(nullable_handle_inline_data),
"nullable_handle_message"));
static const fidl::FidlStructField multiple_nullable_handles_fields[] = {
fidl::FidlStructField(&nullable_handle,
offsetof(multiple_nullable_handles_message_layout, inline_struct.handle_0)),
fidl::FidlStructField(&nullable_channel_handle,
offsetof(multiple_nullable_handles_message_layout, inline_struct.handle_1)),
fidl::FidlStructField(&nullable_vmo_handle,
offsetof(multiple_nullable_handles_message_layout, inline_struct.handle_2)),
};
const fidl_type_t multiple_nullable_handles_message_type = fidl_type_t(fidl::FidlCodedStruct(
multiple_nullable_handles_fields, ArrayCount(multiple_nullable_handles_fields),
sizeof(multiple_nullable_handles_inline_data),
"multiple_nullable_handles_message"));
// Array messages.
static const fidl::FidlStructField array_of_nonnullable_handles_fields[] = {
fidl::FidlStructField(&array_of_four_nonnullable_handles,
offsetof(array_of_nonnullable_handles_message_layout, inline_struct.handles)),
};
const fidl_type_t array_of_nonnullable_handles_message_type = fidl_type_t(fidl::FidlCodedStruct(
array_of_nonnullable_handles_fields, ArrayCount(array_of_nonnullable_handles_fields),
sizeof(array_of_nonnullable_handles_inline_data),
"array_of_nonnullable_handles_message"));
static const fidl::FidlStructField array_of_nullable_handles_fields[] = {
fidl::FidlStructField(&array_of_five_nullable_handles,
offsetof(array_of_nullable_handles_message_layout, inline_struct.handles)),
};
const fidl_type_t array_of_nullable_handles_message_type = fidl_type_t(fidl::FidlCodedStruct(
array_of_nullable_handles_fields, ArrayCount(array_of_nullable_handles_fields),
sizeof(array_of_nullable_handles_inline_data),
"array_of_nullable_handles_message"));
static const fidl::FidlStructField array_of_array_of_nonnullable_handles_fields[] = {
fidl::FidlStructField(
&array_of_three_arrays_of_four_nonnullable_handles,
offsetof(array_of_array_of_nonnullable_handles_message_layout, inline_struct.handles)),
};
const fidl_type_t array_of_array_of_nonnullable_handles_message_type =
fidl_type_t(fidl::FidlCodedStruct(array_of_array_of_nonnullable_handles_fields,
ArrayCount(array_of_array_of_nonnullable_handles_fields),
sizeof(array_of_array_of_nonnullable_handles_inline_data),
"array_of_array_of_nonnullable_handles_message"));
static const fidl::FidlStructField out_of_line_fields[] = {
fidl::FidlStructField(&array_of_four_nonnullable_handles,
offsetof(array_of_nonnullable_handles, handles)),
};
static const fidl_type_t out_of_line_type = fidl_type_t(fidl::FidlCodedStruct(
out_of_line_fields, ArrayCount(out_of_line_fields), sizeof(array_of_nonnullable_handles),
"out_of_line"));
static const fidl_type_t out_of_line_pointer_type =
fidl_type_t(fidl::FidlCodedStructPointer(&out_of_line_type.coded_struct));
static const fidl::FidlStructField out_of_line_array_of_nonnullable_handles_fields[] = {
fidl::FidlStructField(&out_of_line_pointer_type,
offsetof(out_of_line_array_of_nonnullable_handles_message_layout,
inline_struct.maybe_array)),
};
const fidl_type_t out_of_line_array_of_nonnullable_handles_message_type = fidl_type_t(
fidl::FidlCodedStruct(out_of_line_array_of_nonnullable_handles_fields,
ArrayCount(out_of_line_array_of_nonnullable_handles_fields),
sizeof(out_of_line_array_of_nonnullable_handles_inline_data),
"out_of_line_array_of_nonnullable_handles_message"));
// String messages.
static const fidl::FidlStructField unbounded_nonnullable_string_fields[] = {
fidl::FidlStructField(&unbounded_nonnullable_string,
offsetof(unbounded_nonnullable_string_message_layout, inline_struct.string)),
};
const fidl_type_t unbounded_nonnullable_string_message_type = fidl_type_t(fidl::FidlCodedStruct(
unbounded_nonnullable_string_fields, ArrayCount(unbounded_nonnullable_string_fields),
sizeof(unbounded_nonnullable_string_inline_data),
"unbounded_nonnullable_string_message"));
static const fidl::FidlStructField unbounded_nullable_string_fields[] = {
fidl::FidlStructField(&unbounded_nullable_string,
offsetof(unbounded_nullable_string_message_layout, inline_struct.string)),
};
const fidl_type_t unbounded_nullable_string_message_type = fidl_type_t(fidl::FidlCodedStruct(
unbounded_nullable_string_fields, ArrayCount(unbounded_nullable_string_fields),
sizeof(unbounded_nullable_string_inline_data),
"unbounded_nullable_string_message"));
static const fidl::FidlStructField bounded_32_nonnullable_string_fields[] = {
fidl::FidlStructField(&bounded_32_nonnullable_string,
offsetof(bounded_32_nonnullable_string_message_layout, inline_struct.string)),
};
const fidl_type_t bounded_32_nonnullable_string_message_type = fidl_type_t(fidl::FidlCodedStruct(
bounded_32_nonnullable_string_fields, ArrayCount(bounded_32_nonnullable_string_fields),
sizeof(bounded_32_nonnullable_string_inline_data),
"bounded_32_nonnullable_string_message"));
static const fidl::FidlStructField bounded_32_nullable_string_fields[] = {
fidl::FidlStructField(&bounded_32_nullable_string,
offsetof(bounded_32_nullable_string_message_layout, inline_struct.string)),
};
const fidl_type_t bounded_32_nullable_string_message_type = fidl_type_t(fidl::FidlCodedStruct(
bounded_32_nullable_string_fields, ArrayCount(bounded_32_nullable_string_fields),
sizeof(bounded_32_nullable_string_inline_data),
"bounded_32_nullable_string_message"));
static const fidl::FidlStructField multiple_nonnullable_strings_fields[] = {
fidl::FidlStructField(&bounded_32_nonnullable_string,
offsetof(multiple_nonnullable_strings_message_layout, inline_struct.string)),
fidl::FidlStructField(&bounded_32_nonnullable_string,
offsetof(multiple_nonnullable_strings_message_layout, inline_struct.string2)),
};
const fidl_type_t multiple_nonnullable_strings_message_type = fidl_type_t(fidl::FidlCodedStruct(
multiple_nonnullable_strings_fields, ArrayCount(multiple_nonnullable_strings_fields),
sizeof(multiple_nonnullable_strings_inline_data),
"multiple_nonnullable_strings_message"));
static const fidl::FidlStructField multiple_nullable_strings_fields[] = {
fidl::FidlStructField(&bounded_32_nullable_string,
offsetof(multiple_nullable_strings_message_layout, inline_struct.string)),
fidl::FidlStructField(&bounded_32_nullable_string,
offsetof(multiple_nullable_strings_message_layout, inline_struct.string2)),
};
const fidl_type_t multiple_nullable_strings_message_type = fidl_type_t(fidl::FidlCodedStruct(
multiple_nullable_strings_fields, ArrayCount(multiple_nullable_strings_fields),
sizeof(multiple_nullable_strings_inline_data),
"multiple_nullable_strings_message"));
static const fidl::FidlStructField multiple_short_nonnullable_strings_fields[] = {
fidl::FidlStructField(
&bounded_4_nonnullable_string,
offsetof(multiple_short_nonnullable_strings_message_layout, inline_struct.string)),
fidl::FidlStructField(
&bounded_32_nonnullable_string,
offsetof(multiple_short_nonnullable_strings_message_layout, inline_struct.string2)),
};
const fidl_type_t multiple_short_nonnullable_strings_message_type =
fidl_type_t(fidl::FidlCodedStruct(multiple_short_nonnullable_strings_fields,
ArrayCount(multiple_short_nonnullable_strings_fields),
sizeof(multiple_short_nonnullable_strings_inline_data),
"multiple_short_nonnullable_strings_message"));
static const fidl::FidlStructField multiple_short_nullable_strings_fields[] = {
fidl::FidlStructField(&bounded_4_nullable_string,
offsetof(multiple_short_nullable_strings_message_layout, inline_struct.string)),
fidl::FidlStructField(
&bounded_32_nullable_string,
offsetof(multiple_short_nullable_strings_message_layout, inline_struct.string2)),
};
const fidl_type_t multiple_short_nullable_strings_message_type = fidl_type_t(fidl::FidlCodedStruct(
multiple_short_nullable_strings_fields, ArrayCount(multiple_short_nullable_strings_fields),
sizeof(multiple_short_nullable_strings_inline_data),
"multiple_short_nullable_strings_message"));
// Vector messages.
static const fidl::FidlStructField unbounded_nonnullable_vector_of_handles_fields[] = {
fidl::FidlStructField(
&unbounded_nonnullable_vector_of_handles,
offsetof(unbounded_nonnullable_vector_of_handles_message_layout, inline_struct.vector)),
};
const fidl_type_t unbounded_nonnullable_vector_of_handles_message_type =
fidl_type_t(fidl::FidlCodedStruct(unbounded_nonnullable_vector_of_handles_fields,
ArrayCount(unbounded_nonnullable_vector_of_handles_fields),
sizeof(unbounded_nonnullable_vector_of_handles_inline_data),
"unbounded_nonnullable_vector_of_handles_message"));
static const fidl::FidlStructField unbounded_nullable_vector_of_handles_fields[] = {
fidl::FidlStructField(
&unbounded_nullable_vector_of_handles,
offsetof(unbounded_nullable_vector_of_handles_message_layout, inline_struct.vector)),
};
const fidl_type_t unbounded_nullable_vector_of_handles_message_type =
fidl_type_t(fidl::FidlCodedStruct(unbounded_nullable_vector_of_handles_fields,
ArrayCount(unbounded_nullable_vector_of_handles_fields),
sizeof(unbounded_nullable_vector_of_handles_inline_data),
"unbounded_nullable_vector_of_handles_message"));
static const fidl::FidlStructField bounded_32_nonnullable_vector_of_handles_fields[] = {
fidl::FidlStructField(
&bounded_32_nonnullable_vector_of_handles,
offsetof(bounded_32_nonnullable_vector_of_handles_message_layout, inline_struct.vector)),
};
const fidl_type_t bounded_32_nonnullable_vector_of_handles_message_type = fidl_type_t(
fidl::FidlCodedStruct(bounded_32_nonnullable_vector_of_handles_fields,
ArrayCount(bounded_32_nonnullable_vector_of_handles_fields),
sizeof(bounded_32_nonnullable_vector_of_handles_inline_data),
"bounded_32_nonnullable_vector_of_handles_message"));
static const fidl::FidlStructField bounded_32_nullable_vector_of_handles_fields[] = {
fidl::FidlStructField(
&bounded_32_nullable_vector_of_handles,
offsetof(bounded_32_nullable_vector_of_handles_message_layout, inline_struct.vector)),
};
const fidl_type_t bounded_32_nullable_vector_of_handles_message_type =
fidl_type_t(fidl::FidlCodedStruct(bounded_32_nullable_vector_of_handles_fields,
ArrayCount(bounded_32_nullable_vector_of_handles_fields),
sizeof(bounded_32_nullable_vector_of_handles_inline_data),
"bounded_32_nullable_vector_of_handles_message"));
static const fidl::FidlStructField multiple_nonnullable_vectors_of_handles_fields[] = {
fidl::FidlStructField(
&bounded_2_nonnullable_vector_of_handles,
offsetof(multiple_nonnullable_vectors_of_handles_message_layout, inline_struct.vector)),
fidl::FidlStructField(
&unbounded_nonnullable_vector_of_handles,
offsetof(multiple_nonnullable_vectors_of_handles_message_layout, inline_struct.vector2)),
};
const fidl_type_t multiple_nonnullable_vectors_of_handles_message_type =
fidl_type_t(fidl::FidlCodedStruct(multiple_nonnullable_vectors_of_handles_fields,
ArrayCount(multiple_nonnullable_vectors_of_handles_fields),
sizeof(multiple_nonnullable_vectors_of_handles_inline_data),
"multiple_nonnullable_vectors_of_handles_message"));
static const fidl::FidlStructField multiple_nullable_vectors_of_handles_fields[] = {
fidl::FidlStructField(
&bounded_2_nullable_vector_of_handles,
offsetof(multiple_nullable_vectors_of_handles_message_layout, inline_struct.vector)),
fidl::FidlStructField(
&unbounded_nullable_vector_of_handles,
offsetof(multiple_nullable_vectors_of_handles_message_layout, inline_struct.vector2)),
};
const fidl_type_t multiple_nullable_vectors_of_handles_message_type =
fidl_type_t(fidl::FidlCodedStruct(multiple_nullable_vectors_of_handles_fields,
ArrayCount(multiple_nullable_vectors_of_handles_fields),
sizeof(multiple_nullable_vectors_of_handles_inline_data),
"multiple_nullable_vectors_of_handles_message"));
static const fidl::FidlStructField unbounded_nonnullable_vector_of_uint32_fields[] = {
fidl::FidlStructField(
&unbounded_nonnullable_vector_of_uint32,
offsetof(unbounded_nonnullable_vector_of_uint32_message_layout, inline_struct.vector)),
};
const fidl_type_t unbounded_nonnullable_vector_of_uint32_message_type =
fidl_type_t(fidl::FidlCodedStruct(unbounded_nonnullable_vector_of_uint32_fields,
ArrayCount(unbounded_nonnullable_vector_of_uint32_fields),
sizeof(unbounded_nonnullable_vector_of_uint32_inline_data),
"unbounded_nonnullable_vector_of_uint32_message"));
static const fidl::FidlStructField unbounded_nullable_vector_of_uint32_fields[] = {
fidl::FidlStructField(
&unbounded_nullable_vector_of_uint32,
offsetof(unbounded_nullable_vector_of_uint32_message_layout, inline_struct.vector)),
};
const fidl_type_t unbounded_nullable_vector_of_uint32_message_type =
fidl_type_t(fidl::FidlCodedStruct(unbounded_nullable_vector_of_uint32_fields,
ArrayCount(unbounded_nullable_vector_of_uint32_fields),
sizeof(unbounded_nullable_vector_of_uint32_inline_data),
"unbounded_nullable_vector_of_uint32_message"));
static const fidl::FidlStructField bounded_32_nonnullable_vector_of_uint32_fields[] = {
fidl::FidlStructField(
&bounded_32_nonnullable_vector_of_uint32,
offsetof(bounded_32_nonnullable_vector_of_uint32_message_layout, inline_struct.vector)),
};
const fidl_type_t bounded_32_nonnullable_vector_of_uint32_message_type = fidl_type_t(
fidl::FidlCodedStruct(bounded_32_nonnullable_vector_of_uint32_fields,
ArrayCount(bounded_32_nonnullable_vector_of_uint32_fields),
sizeof(bounded_32_nonnullable_vector_of_uint32_inline_data),
"bounded_32_nonnullable_vector_of_uint32_message"));
static const fidl::FidlStructField bounded_32_nullable_vector_of_uint32_fields[] = {
fidl::FidlStructField(
&bounded_32_nullable_vector_of_uint32,
offsetof(bounded_32_nullable_vector_of_uint32_message_layout, inline_struct.vector)),
};
const fidl_type_t bounded_32_nullable_vector_of_uint32_message_type =
fidl_type_t(fidl::FidlCodedStruct(bounded_32_nullable_vector_of_uint32_fields,
ArrayCount(bounded_32_nullable_vector_of_uint32_fields),
sizeof(bounded_32_nullable_vector_of_uint32_inline_data),
"bounded_32_nullable_vector_of_uint32_message"));
static const fidl::FidlStructField multiple_nonnullable_vectors_of_uint32_fields[] = {
fidl::FidlStructField(
&bounded_2_nonnullable_vector_of_uint32,
offsetof(multiple_nonnullable_vectors_of_uint32_message_layout, inline_struct.vector)),
fidl::FidlStructField(
&unbounded_nonnullable_vector_of_uint32,
offsetof(multiple_nonnullable_vectors_of_uint32_message_layout, inline_struct.vector2)),
};
const fidl_type_t multiple_nonnullable_vectors_of_uint32_message_type =
fidl_type_t(fidl::FidlCodedStruct(multiple_nonnullable_vectors_of_uint32_fields,
ArrayCount(multiple_nonnullable_vectors_of_uint32_fields),
sizeof(multiple_nonnullable_vectors_of_uint32_inline_data),
"multiple_nonnullable_vectors_of_uint32_message"));
static const fidl::FidlStructField multiple_nullable_vectors_of_uint32_fields[] = {
fidl::FidlStructField(
&bounded_2_nullable_vector_of_uint32,
offsetof(multiple_nullable_vectors_of_uint32_message_layout, inline_struct.vector)),
fidl::FidlStructField(
&unbounded_nullable_vector_of_uint32,
offsetof(multiple_nullable_vectors_of_uint32_message_layout, inline_struct.vector2)),
};
const fidl_type_t multiple_nullable_vectors_of_uint32_message_type =
fidl_type_t(fidl::FidlCodedStruct(multiple_nullable_vectors_of_uint32_fields,
ArrayCount(multiple_nullable_vectors_of_uint32_fields),
sizeof(multiple_nullable_vectors_of_uint32_inline_data),
"multiple_nullable_vectors_of_uint32_message"));
// Union messages.
static const fidl_type_t* nonnullable_handle_union_members[] = {
&nonnullable_handle,
};
const fidl_type_t nonnullable_handle_union_type = fidl_type_t(fidl::FidlCodedUnion(
nonnullable_handle_union_members,
ArrayCount(nonnullable_handle_union_members),
offsetof(nonnullable_handle_union, handle),
sizeof(nonnullable_handle_union),
"nonnullable_handle_union"));
static const fidl::FidlStructField nonnullable_handle_union_fields[] = {
fidl::FidlStructField(&nonnullable_handle_union_type,
offsetof(nonnullable_handle_union_message_layout, inline_struct.data)),
};
const fidl_type_t nonnullable_handle_union_message_type = fidl_type_t(fidl::FidlCodedStruct(
nonnullable_handle_union_fields, ArrayCount(nonnullable_handle_union_fields),
sizeof(nonnullable_handle_union_inline_data),
"nonnullable_handle_union_message"));
static const fidl_type_t* array_of_nonnullable_handles_union_members[] = {
&nonnullable_handle,
&array_of_two_nonnullable_handles,
&array_of_two_arrays_of_two_nonnullable_handles,
};
static const fidl_type_t array_of_nonnullable_handles_union_type = fidl_type_t(
fidl::FidlCodedUnion(array_of_nonnullable_handles_union_members,
ArrayCount(array_of_nonnullable_handles_union_members),
offsetof(array_of_nonnullable_handles_union, handle),
sizeof(array_of_nonnullable_handles_union),
"array_of_nonnullable_handles_union"));
static const fidl::FidlStructField array_of_nonnullable_handles_union_fields[] = {
fidl::FidlStructField(
&array_of_nonnullable_handles_union_type,
offsetof(array_of_nonnullable_handles_union_message_layout, inline_struct.data)),
};
const fidl_type_t array_of_nonnullable_handles_union_message_type =
fidl_type_t(fidl::FidlCodedStruct(array_of_nonnullable_handles_union_fields,
ArrayCount(array_of_nonnullable_handles_union_fields),
sizeof(array_of_nonnullable_handles_union_inline_data),
"array_of_nonnullable_handles_union_message"));
// Union pointer messages.
const fidl_type_t nonnullable_handle_union_ptr =
fidl_type_t(fidl::FidlCodedUnionPointer(&nonnullable_handle_union_type.coded_union));
static const fidl::FidlStructField nonnullable_handle_union_ptr_fields[] = {
fidl::FidlStructField(&nonnullable_handle_union_ptr,
offsetof(nonnullable_handle_union_ptr_inline_data, data)),
};
const fidl_type_t nonnullable_handle_union_ptr_message_type = fidl_type_t(fidl::FidlCodedStruct(
nonnullable_handle_union_ptr_fields, ArrayCount(nonnullable_handle_union_ptr_fields),
sizeof(nonnullable_handle_union_ptr_inline_data),
"nonnullable_handle_union_ptr_message"));
static const fidl_type_t array_of_nonnullable_handles_union_ptr =
fidl_type_t(fidl::FidlCodedUnionPointer(&array_of_nonnullable_handles_union_type.coded_union));
static const fidl::FidlStructField array_of_nonnullable_handles_union_ptr_fields[] = {
fidl::FidlStructField(&array_of_nonnullable_handles_union_ptr,
offsetof(array_of_nonnullable_handles_union_ptr_inline_data, data)),
};
const fidl_type_t array_of_nonnullable_handles_union_ptr_message_type =
fidl_type_t(fidl::FidlCodedStruct(array_of_nonnullable_handles_union_ptr_fields,
ArrayCount(array_of_nonnullable_handles_union_ptr_fields),
sizeof(array_of_nonnullable_handles_union_ptr_inline_data),
"array_of_nonnullable_handles_union_ptr_message"));
// Struct messages.
static const fidl::FidlStructField struct_level_3_fields[] = {
fidl::FidlStructField(&nonnullable_handle, offsetof(struct_level_3, handle_3)),
};
static const fidl_type_t struct_level_3_struct = fidl_type_t(fidl::FidlCodedStruct(
struct_level_3_fields, ArrayCount(struct_level_3_fields), sizeof(struct_level_3),
"struct_level_3"));
static const fidl::FidlStructField struct_level_2_fields[] = {
fidl::FidlStructField(&struct_level_3_struct, offsetof(struct_level_2, l3)),
fidl::FidlStructField(&nonnullable_handle, offsetof(struct_level_2, handle_2)),
};
static const fidl_type_t struct_level_2_struct = fidl_type_t(fidl::FidlCodedStruct(
struct_level_2_fields, ArrayCount(struct_level_2_fields), sizeof(struct_level_2),
"struct_level_2"));
static const fidl::FidlStructField struct_level_1_fields[] = {
fidl::FidlStructField(&nonnullable_handle, offsetof(struct_level_1, handle_1)),
fidl::FidlStructField(&struct_level_2_struct, offsetof(struct_level_1, l2)),
};
static const fidl_type_t struct_level_1_struct = fidl_type_t(fidl::FidlCodedStruct(
struct_level_1_fields, ArrayCount(struct_level_1_fields), sizeof(struct_level_1),
"struct_level_1"));
static const fidl::FidlStructField struct_level_0_fields[] = {
fidl::FidlStructField(&struct_level_1_struct, offsetof(struct_level_0, l1)),
fidl::FidlStructField(&nonnullable_handle, offsetof(struct_level_0, handle_0)),
};
const fidl_type_t struct_level_0_struct = fidl_type_t(fidl::FidlCodedStruct(
struct_level_0_fields, ArrayCount(struct_level_1_fields), sizeof(struct_level_0),
"struct_level_0"));
static const fidl::FidlStructField nested_structs_fields[] = {
fidl::FidlStructField(&struct_level_0_struct,
offsetof(nested_structs_message_layout, inline_struct.l0)),
};
const fidl_type_t nested_structs_message_type = fidl_type_t(fidl::FidlCodedStruct(
nested_structs_fields, ArrayCount(nested_structs_fields), sizeof(nested_structs_inline_data),
"nested_structs_message"));
// Struct pointer messages.
static const fidl::FidlStructField struct_ptr_level_3_fields[] = {
fidl::FidlStructField(&nonnullable_handle, offsetof(struct_ptr_level_3, handle_3)),
};
static const fidl_type_t struct_ptr_level_3_struct = fidl_type_t(fidl::FidlCodedStruct(
struct_ptr_level_3_fields, ArrayCount(struct_ptr_level_3_fields), sizeof(struct_ptr_level_3),
"struct_ptr_level_3"));
static const fidl_type_t struct_ptr_level_3_struct_pointer =
fidl_type_t(fidl::FidlCodedStructPointer(&struct_ptr_level_3_struct.coded_struct));
static const fidl::FidlStructField struct_ptr_level_2_fields[] = {
fidl::FidlStructField(&struct_ptr_level_3_struct_pointer, offsetof(struct_ptr_level_2, l3_present)),
fidl::FidlStructField(&struct_ptr_level_3_struct_pointer, offsetof(struct_ptr_level_2, l3_absent)),
fidl::FidlStructField(&struct_ptr_level_3_struct, offsetof(struct_ptr_level_2, l3_inline)),
fidl::FidlStructField(&nonnullable_handle, offsetof(struct_ptr_level_2, handle_2)),
};
static const fidl_type_t struct_ptr_level_2_struct = fidl_type_t(fidl::FidlCodedStruct(
struct_ptr_level_2_fields, ArrayCount(struct_ptr_level_2_fields), sizeof(struct_ptr_level_2),
"struct_ptr_level_2"));
static const fidl_type_t struct_ptr_level_2_struct_pointer =
fidl_type_t(fidl::FidlCodedStructPointer(&struct_ptr_level_2_struct.coded_struct));
static const fidl::FidlStructField struct_ptr_level_1_fields[] = {
fidl::FidlStructField(&nonnullable_handle, offsetof(struct_ptr_level_1, handle_1)),
fidl::FidlStructField(&struct_ptr_level_2_struct_pointer, offsetof(struct_ptr_level_1, l2_present)),
fidl::FidlStructField(&struct_ptr_level_2_struct, offsetof(struct_ptr_level_1, l2_inline)),
fidl::FidlStructField(&struct_ptr_level_2_struct_pointer, offsetof(struct_ptr_level_1, l2_absent)),
};
static const fidl_type_t struct_ptr_level_1_struct = fidl_type_t(fidl::FidlCodedStruct(
struct_ptr_level_1_fields, ArrayCount(struct_ptr_level_1_fields), sizeof(struct_ptr_level_1),
"struct_ptr_level_1"));
static const fidl_type_t struct_ptr_level_1_struct_pointer =
fidl_type_t(fidl::FidlCodedStructPointer(&struct_ptr_level_1_struct.coded_struct));
static const fidl::FidlStructField struct_ptr_level_0_fields[] = {
fidl::FidlStructField(&struct_ptr_level_1_struct_pointer, offsetof(struct_ptr_level_0, l1_absent)),
fidl::FidlStructField(&struct_ptr_level_1_struct, offsetof(struct_ptr_level_0, l1_inline)),
fidl::FidlStructField(&nonnullable_handle, offsetof(struct_ptr_level_0, handle_0)),
fidl::FidlStructField(&struct_ptr_level_1_struct_pointer, offsetof(struct_ptr_level_0, l1_present)),
};
static const fidl_type_t struct_ptr_level_0_struct = fidl_type_t(fidl::FidlCodedStruct(
struct_ptr_level_0_fields, ArrayCount(struct_ptr_level_0_fields), sizeof(struct_ptr_level_0),
"struct_ptr_level_0"));
const fidl_type_t struct_ptr_level_0_struct_pointer =
fidl_type_t(fidl::FidlCodedStructPointer(&struct_ptr_level_0_struct.coded_struct));
static const fidl::FidlStructField nested_struct_ptrs_fields[] = {
fidl::FidlStructField(&struct_ptr_level_0_struct,
offsetof(nested_struct_ptrs_inline_data, l0_inline)),
fidl::FidlStructField(&struct_ptr_level_0_struct_pointer,
offsetof(nested_struct_ptrs_inline_data, l0_absent)),
fidl::FidlStructField(&struct_ptr_level_0_struct_pointer,
offsetof(nested_struct_ptrs_inline_data, l0_present)),
};
const fidl_type_t nested_struct_ptrs_message_type = fidl_type_t(
fidl::FidlCodedStruct(nested_struct_ptrs_fields, ArrayCount(nested_struct_ptrs_fields),
sizeof(nested_struct_ptrs_inline_data),
"nested_struct_ptrs_message"));
// Recursive struct pointer messages.
const fidl_type_t recursion_message_ptr_type = fidl_type_t(fidl::FidlCodedStructPointer(
&recursion_message_type.coded_struct));
static const fidl_type_t* maybe_recurse_union_members[] = {
&nonnullable_handle,
&recursion_message_ptr_type,
};
const fidl_type_t maybe_recurse_type = fidl_type_t(fidl::FidlCodedUnion(
maybe_recurse_union_members, ArrayCount(maybe_recurse_union_members),
offsetof(maybe_recurse, handle), sizeof(maybe_recurse), "maybe_recurse"));
static const fidl::FidlStructField recursion_fields[] = {
fidl::FidlStructField(&maybe_recurse_type, offsetof(recursion_inline_data, inline_union)),
};
const fidl_type_t recursion_message_type = fidl_type_t(fidl::FidlCodedStruct(
recursion_fields, ArrayCount(recursion_fields), sizeof(recursion_inline_data),
"recursion_message"));