VOID AcpiPmControl ( UINTN SuspendType ) { ASSERT (SuspendType < 6); IoAndThenOr16 (0x404, (UINT16) ~0x3c00, (UINT16) (SuspendType << 10)); IoOr16 (0x404, BIT13); CpuDeadLoop (); }
VOID AcpiPmControl ( UINTN SuspendType ) { EFI_HOB_GUID_TYPE *GuidHob; ACPI_BOARD_INFO *pAcpiBoardInfo; UINTN PmCtrlReg = 0; ASSERT (SuspendType <= 7); // // Find the acpi board information guid hob // GuidHob = GetFirstGuidHob (&gUefiAcpiBoardInfoGuid); ASSERT (GuidHob != NULL); pAcpiBoardInfo = (ACPI_BOARD_INFO *)GET_GUID_HOB_DATA (GuidHob); PmCtrlReg = (UINTN)pAcpiBoardInfo->PmCtrlRegBase; IoAndThenOr16 (PmCtrlReg, (UINT16) ~0x3c00, (UINT16) (SuspendType << 10)); IoOr16 (PmCtrlReg, BIT13); CpuDeadLoop (); }