-/**\r
- Determine whether the FADT table passed in as parameter requires mutual\r
- exclusion between the DSDT and X_DSDT fields. (That is, whether there exists\r
- an explicit requirement that at most one of those fields is permitted to be\r
- nonzero.)\r
-\r
- @param[in] Fadt The EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE object to\r
- check.\r
-\r
- @retval TRUE Fadt requires mutual exclusion between DSDT and X_DSDT.\r
- @retval FALSE Otherwise.\r
-**/\r
-BOOLEAN\r
-RequireDsdtXDsdtExclusion (\r
- IN EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE *Fadt\r
- )\r
-{\r
- //\r
- // Mantis ticket #1393 was addressed in ACPI 5.1 Errata B. Unfortunately, we\r
- // can't tell apart 5.1 Errata A and 5.1 Errata B just from looking at the\r
- // FADT table. Therefore let's require exclusion for table versions >= 5.1.\r
- //\r
- // While this needlessly covers 5.1 and 5.1A too, it is safer to require\r
- // DSDT<->X_DSDT exclusion for lax (5.1, 5.1A) versions of the spec than to\r
- // permit DSDT<->X_DSDT duplication for strict (5.1B) versions of the spec.\r
- //\r
- // The same applies to 6.0 vs. 6.0A. While 6.0 does not require the\r
- // exclusion, 6.0A and 6.1 do. Since we cannot distinguish 6.0 from 6.0A\r
- // based on just the FADT, we lump 6.0 in with the rest of >= 5.1.\r
- //\r
- if ((Fadt->Header.Revision < 5) ||\r
- ((Fadt->Header.Revision == 5) &&\r
- (((EFI_ACPI_5_1_FIXED_ACPI_DESCRIPTION_TABLE *)Fadt)->MinorVersion == 0))) {\r
- //\r
- // version <= 5.0\r
- //\r
- return FALSE;\r
- }\r
- //\r
- // version >= 5.1\r
- //\r
- return TRUE;\r
-}\r
-\r