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)