Copyright (c) 2008 - 2012, Intel Corporation. All rights reserved.<BR>\r
Copyright (c) 2012, Bei Guan <gbtju85@gmail.com>\r
\r
- This program and the accompanying materials\r
- are licensed and made available under the terms and conditions of the BSD License\r
- which accompanies this distribution. The full text of the license may be found at\r
- http://opensource.org/licenses/bsd-license.php\r
-\r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+ SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/ \r
\r
CurrentTableEntry = (VOID *) ((UINT8 *) Xsdt +\r
sizeof (EFI_ACPI_DESCRIPTION_HEADER) +\r
Index * sizeof (UINT64));\r
- CurrentTablePointer = *(UINT64 *)CurrentTableEntry;\r
+ CurrentTablePointer = (UINTN) *(UINT64 *)CurrentTableEntry;\r
CurrentTable = (EFI_ACPI_DESCRIPTION_HEADER *) CurrentTablePointer;\r
\r
//\r
}\r
\r
//\r
- // Install DSDT table.\r
+ // Install DSDT table. If we reached this point without finding the DSDT,\r
+ // then we're out of sync with the hypervisor, and cannot continue.\r
//\r
+ if (DsdtTable == NULL) {\r
+ DEBUG ((DEBUG_ERROR, "%a: no DSDT found\n", __FUNCTION__));\r
+ ASSERT (FALSE);\r
+ CpuDeadLoop ();\r
+ }\r
+\r
Status = InstallAcpiTable (\r
AcpiProtocol,\r
DsdtTable,\r