class Config

Defined at line 13819 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/cpp/fidl/fuchsia.sysmem2/cpp/wire_types.h

This type is fidl::Persist()'ed in the sysmem_config.persistent_fidl file

within the sysmem domain config by the assembly tool, and read by the sysmem

driver.

Normally json[5] would be preferable for config, but we generate this config

in rust using FIDL types (to avoid repetition and to take advantage of FIDL

rust codegen), and there's no json schema for FIDL types.

Currently there is no mechanism to change anything in this config at runtime

or from boot to boot. This config is static per run of the assembly tool.

See src/lib/assembly/config_schema/src/platform_config/sysmem_config.rs for

aspects of sysmem config which are specified directly inline in board info

or assembly platform config. The two parts of sysmem config don't

(currently) overlap. The config here is for aspects of sysmem config which

would be too verbose for direct inclusion in board info or assembly platform

config. In addition, some/most of the pixel format cost entries are

programmatically generated (as of this comment).

Prior to aggregation by assembly tool, there are multiple .persistent_fidl

files each storing its own Config instance. The board info and assembly

platform config lists the input persistent_fidl files, with board info

logically before assembly platform config. The overall list of files is

processed, which allows later files to override/replace info in prior files.

Because this type is only intended for use with persistent fidl, where the

length of a serialized instance isn't bounded, we don't bound the internal

vector element counts.

Public Methods

void Config ()

Defined at line 13821 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/cpp/fidl/fuchsia.sysmem2/cpp/wire_types.h

void Config (const Config & other)

Defined at line 13822 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/cpp/fidl/fuchsia.sysmem2/cpp/wire_types.h

Config & operator= (const Config & other)

Defined at line 13823 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/cpp/fidl/fuchsia.sysmem2/cpp/wire_types.h

void Config (Config && other)

Defined at line 13824 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/cpp/fidl/fuchsia.sysmem2/cpp/wire_types.h

bool IsEmpty ()

Returns whether no field is set.

bool HasUnknownData ()

Returns whether the table references unknown fields.

::fidl::WireTableBuilder< ::fuchsia_sysmem2::wire::Config> Builder (::fidl::AnyArena & arena)

Return a builder that by defaults allocates of an arena.

::fidl::WireTableExternalBuilder< ::fuchsia_sysmem2::wire::Config> ExternalBuilder (::fidl::ObjectView< ::fidl::WireTableFrame< ::fuchsia_sysmem2::wire::Config>> frame)

Return a builder that relies on explicitly allocating |fidl::ObjectView|s.

::fidl::VectorView< ::fuchsia_sysmem2::wire::FormatCostEntry> & format_costs ()

This is the ordered list of FormatCost entries which will be considered

by sysmem when breaking ties among formats supported by all participants

of a buffer collection.

During config aggregation, if a later entry has matching FormatCostKey,

the earlier entry is omitted/removed. This allows later files to

override entries in earlier files, and allows files specified in

assembly platform config to override entries in files specified in the

board info.

This vector will normally not have any two entries with matching

pixel_format, pixel_format_modifier, and buffer_usage_bits in the Config

instance loaded from sysmem_config.persistent_fidl by sysmem. If somehow

two entries do match in those fields, sysmem can ignore all but one of

the entries chosen arbitrarily.

bool has_format_costs ()
Config & operator= (Config && other)

Defined at line 13825 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/cpp/fidl/fuchsia.sysmem2/cpp/wire_types.h

Config & set_format_costs (::fidl::ObjectView< ::fidl::VectorView< ::fuchsia_sysmem2::wire::FormatCostEntry>> elem)
Config & set_format_costs (std::nullptr_t )
Config & clear_format_costs ()
void Config (::fidl::AnyArena & allocator)
void Config (::fidl::ObjectView< ::fidl::WireTableFrame< ::fuchsia_sysmem2::wire::Config>> && frame)

This constructor allows a user controlled allocation (not using a Arena).

It should only be used when performance is key.

As soon as the frame is given to the table, it must not be used directly or for another table.

void Allocate (::fidl::AnyArena & allocator)
void Init (::fidl::ObjectView< ::fidl::WireTableFrame< ::fuchsia_sysmem2::wire::Config>> && frame_ptr)
void ~Config ()

Defined at line 13827 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/cpp/fidl/fuchsia.sysmem2/cpp/wire_types.h

Friends

class WireTableBaseBuilder
class WireTableBaseBuilder