Skip to content

Commit ba97acd

Browse files
committed
DynamicTablesPkg: Add Ordered dispatch support for SMBIOS tables
Some SMBIOS tables do not have a fixed dependency and can depend on any other SMBIOS tables. Therefore, the SMBIOS dispatcher cannot define a fixed sequence for dispatching these tables. A possible solution is to defer the dispatch of such SMBIOS tables towards the end, assuming that the dependent SMBIOS tables would have been dispatched by then. Therefore, introduce a dispatch order attribute such that SMBIOS tables that have a fixed dependency sequence are configured as Default Ordered, and the SMBIOS tables that do not have a fixed dependency have an Order attribute specifying an Order Level. An Order Level is used to sequence the dispatch of Ordered SMBIOS tables. The Default Ordered SMBIOS tables are dispatched first and a dependency walk is performed to dispatch the dependent tables by iterating through the SMBIOS_TABLE_DISPATCHER.Dependency[]. Once all Default ordered SMBIOS tables have been dispatched, the Ordered SMBIOS tables would be scheduled for dispatch in increasing order as of the Order Level, e.g. OrderL1, OrderL2, ... Note: The dispatcher does not perform a dependency walk for the Ordered SMBIOS tables as the expectation is that the dependent SMBIOS tables would be already dispatched. A top level dispatch function DispatchSmbiosTables() has been introduced to schedule the dispatch of Default Ordered and Ordered SMBIOS tables. Signed-off-by: Sami Mujawar <[email protected]> Cc: Alexei Fedorov <[email protected]> Cc: Pierre Gondois <[email protected]> Cc: Girish Mahadevan <[email protected]> Cc: Jeff Brasen <[email protected]> Cc: Ashish Singhal <[email protected]> Cc: Nick Ramirez <[email protected]> Cc: William Watson <[email protected]> Cc: Abner Chang <[email protected]> Cc: Samer El-Haj-Mahmoud <[email protected]> Cc: Jose Marinho <[email protected]>
1 parent 722a3bb commit ba97acd

File tree

2 files changed

+484
-74
lines changed

2 files changed

+484
-74
lines changed

0 commit comments

Comments
 (0)