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