class Config
Defined at line 8036 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/cpp/fidl/fuchsia.sysmem2/cpp/natural_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 (Storage_ storage)
void Config ()
Defined at line 8041 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/cpp/fidl/fuchsia.sysmem2/cpp/natural_types.h
void Config (Config && )
Defined at line 8042 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/cpp/fidl/fuchsia.sysmem2/cpp/natural_types.h
void Config (const Config & other)
Config & operator= (Config && )
Defined at line 8043 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/cpp/fidl/fuchsia.sysmem2/cpp/natural_types.h
Config & operator= (const Config & other)
bool operator== (const Config & other)
bool operator!= (const Config & other)
bool IsEmpty ()
const std::optional< ::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.
::std::optional< ::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.
Config & format_costs (std::optional< ::std::vector< ::fuchsia_sysmem2::FormatCostEntry>> value)
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.
void Config (::fidl::internal::DefaultConstructPossiblyInvalidObjectTag )
Friends
class MemberVisitor
class NaturalTableCodingTraits