class Config

Defined at line 11237 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/hlcpp/fuchsia/sysmem2/cpp/fidl.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 Members

static const fidl_type_t * FidlType

Public Methods

bool IsEmpty ()

Returns whether no field is set.

const ::std::vector< ::fuchsia::sysmem2::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.

Defined at line 11258 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/hlcpp/fuchsia/sysmem2/cpp/fidl.h

bool has_format_costs ()

Defined at line 11262 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/hlcpp/fuchsia/sysmem2/cpp/fidl.h

::std::vector< ::fuchsia::sysmem2::FormatCostEntry> * mutable_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.

Defined at line 11281 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/hlcpp/fuchsia/sysmem2/cpp/fidl.h

void clear_format_costs ()

Defined at line 11289 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/hlcpp/fuchsia/sysmem2/cpp/fidl.h

Config & set_format_costs (::std::vector< ::fuchsia::sysmem2::FormatCostEntry> _value)
void Config ()
void Config (Config && other)
void ~Config ()
Config & operator= (Config && other)
::std::unique_ptr<Config> New ()
void Encode (::fidl::Encoder * _encoder, size_t _offset, std::optional< ::fidl::HandleInformation> maybe_handle_info)
void Decode (::fidl::Decoder * _decoder, Config * _value, size_t _offset)
zx_status_t Clone (Config * _result)