+ CurrentTableSignature = ((EFI_ACPI_COMMON_HEADER *) Table->Table)->Signature;\r
+\r
+ //\r
+ // Basic tasks to accomplish delete are:\r
+ // Determine removal requirements (in RSDT/XSDT or not)\r
+ // Remove entry from RSDT/XSDT\r
+ // Remove any table references to the table\r
+ // If no one is using the table\r
+ // Free the table (removing pointers from private data and tables)\r
+ // Remove from list\r
+ // Free list structure\r
+ //\r
+ //\r
+ // Determine if this table is in the RSDT or XSDT\r
+ //\r
+ if ((CurrentTableSignature == EFI_ACPI_1_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE) ||\r
+ (CurrentTableSignature == EFI_ACPI_2_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE) ||\r
+ (CurrentTableSignature == EFI_ACPI_3_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE)\r
+ ) {\r
+ RemoveFromRsdt = FALSE;\r
+ }\r
+ //\r
+ // We don't remove the FADT in the standard way because some\r
+ // OS expect the FADT to be early in the table list.\r
+ // So we always put it as the first element in the list.\r
+ //\r
+ if (CurrentTableSignature == EFI_ACPI_1_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE) {\r
+ RemoveFromRsdt = FALSE;\r
+ }\r
+\r
+ //\r
+ // Remove the table from RSDT and XSDT\r
+ //\r
+\r