PlatformSysmemConfig

sysmem 的平台配置选项。

此配置同时存在于主板配置和平台配置中,以允许主板配置替换静态默认值,并允许平台配置替换主板配置。

字段类型说明默认
protected_memory_size MemorySize 替换了主板驱动程序为 sysmem 的默认受保护内存池指定的大小。如果未通过主板或平台配置设置,则默认值为 0。
format_costs Vec 可选的有序文件列表,每个文件都包含一个持久性 FIDL \['fuchsia.sysmem2.FormatCosts']。 通常情况下,json\[5] 更适合用于配置,但我们使用 FIDL 类型在 Rust 中生成此配置(以避免重复并利用 FIDL Rust 代码生成),并且 FIDL 类型没有 JSON 架构。 在 board_config::PlatformSettings.sysmem_defaults 中,此字段必须为 None(请改为参阅 BoardProvidedConfig.sysmem_format_costs)。在 platform_settings::PlatformSettings.sysmem 中,此字段可以是 Some。 具有相同 FormatCostKey 的后续条目将覆盖之前的条目(无论是在单个文件中还是在多个文件中)。platform_settings::PlatformSettings.sysmem 字段中的条目在逻辑上位于 BoardProvidedConfig.sysmem_format_costs 字段中的条目之后。
contiguous_memory_size MemorySize 替换了主板驱动程序为 sysmem 的连续内存池指定的大小。如果未通过主板或平台配置进行设置,则默认值为 5%。
contiguous_guard_pages_unused bool 如果为 true,sysmem 会将一部分当前未使用的页面视为保护页面,并尝试将剩余页面借回给 Zircon。如果为 false,sysmem 将尝试将所有当前未使用的页面借回给 Zircon。 启用此功能后,系统内存中将启用定期计时器,以检查未使用的页面是否存在意外的 DMA 写入。默认值为 false,以避免使用周期性计时器。如果为 true,则在检测到页面写入不当后,sysmem 会尝试记录之前使用过该页面的分配的相关调试信息。