Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • D dmi
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1
    • Issues 1
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • redox-os
  • dmi
  • Issues
  • #1

Closed
Open
Created Jan 27, 2022 by Ian Douglas Scott@ids1024Maintainer

Provide some mechanism to handle fields added in later SMBIOS specs

https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_3.6.0WIP50.pdf

If a new field is added to an existing structure, that field is added at the end of the formatted area of that structure and the structure’s Length field is increased by the new field’s size.
...
Any software that interprets a structure shall use the structure’s Length field to determine the formatted area size for the structure rather than hard-coding or deriving the Length from structure field
...
Starting with version 2.3, each SMBIOS structure type has a minimum length — enabling the addition of new, but optional, fields to SMBIOS structures
...
Software that interprets a structure field must verify that the structure’s length is sufficient to encompass the optional field; if the length is insufficient, the optional field’s value is Unknown.

It should be possible to access fields added in newer spec versions without failing to parse older tables. That could be achieved by pushing padding bytes before converting the struct, but that wouldn't distinguish 0 values from unspecified optional fields.

Using packed Plain structs may not work well for addressing this...

Assignee
Assign to
Time tracking