From bb89ec1a7ec2f8d35033df9e47b3604925da3bd3 Mon Sep 17 00:00:00 2001 From: jljusten Date: Tue, 28 Jun 2011 16:47:23 +0000 Subject: InOsEmuPkg: Rename package to EmulatorPkg & Sec to Host * Rename InOsEmuPkg to EmulatorPkg * Rename Unix/Sec to Unix/Host Signed-off-by: jljusten Reviewed-by: andrewfish Reviewed-by: geekboy15a git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11918 6f19259b-4bc3-4df7-8a09-765794883524 --- EmulatorPkg/ResetRuntimeDxe/Reset.c | 114 ++++++++++++++++++++++++++++++++++ EmulatorPkg/ResetRuntimeDxe/Reset.inf | 57 +++++++++++++++++ 2 files changed, 171 insertions(+) create mode 100644 EmulatorPkg/ResetRuntimeDxe/Reset.c create mode 100644 EmulatorPkg/ResetRuntimeDxe/Reset.inf (limited to 'EmulatorPkg/ResetRuntimeDxe') diff --git a/EmulatorPkg/ResetRuntimeDxe/Reset.c b/EmulatorPkg/ResetRuntimeDxe/Reset.c new file mode 100644 index 0000000000..14594c7763 --- /dev/null +++ b/EmulatorPkg/ResetRuntimeDxe/Reset.c @@ -0,0 +1,114 @@ +/*++ @file + Reset Architectural Protocol as defined in UEFI/PI under Emulation + +Copyright (c) 2004 - 2009, Intel Corporation. All rights reserved.
+Portions copyright (c) 2010 - 2011, Apple Inc. All rights reserved. +This program and the accompanying materials +are licensed and made available under the terms and conditions of the BSD License +which accompanies this distribution. The full text of the license may be found at +http://opensource.org/licenses/bsd-license.php + +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +**/ + +#include + +#include +#include +#include +#include +#include +#include +#include + +#include + + +VOID +EFIAPI +EmuResetSystem ( + IN EFI_RESET_TYPE ResetType, + IN EFI_STATUS ResetStatus, + IN UINTN DataSize, + IN VOID *ResetData OPTIONAL + ) +{ + EFI_STATUS Status; + UINTN HandleCount; + EFI_HANDLE *HandleBuffer; + UINTN Index; + + // + // Disconnect all + // + Status = gBS->LocateHandleBuffer ( + AllHandles, + NULL, + NULL, + &HandleCount, + &HandleBuffer + ); + if (!EFI_ERROR (Status)) { + for (Index = 0; Index < HandleCount; Index++) { + Status = gBS->DisconnectController (HandleBuffer[Index], NULL, NULL); + } + + gBS->FreePool (HandleBuffer); + } + + + // + // Discard ResetType, always return 0 as exit code + // + gEmuThunk->Exit (0); + + // + // Should never go here + // + ASSERT (FALSE); + + return; +} + + + +EFI_STATUS +EFIAPI +InitializeEmuReset ( + IN EFI_HANDLE ImageHandle, + IN EFI_SYSTEM_TABLE *SystemTable + ) +/*++ + +Routine Description: + + +Arguments: + + ImageHandle of the loaded driver + Pointer to the System Table + +Returns: + + Status +**/ +{ + EFI_STATUS Status; + EFI_HANDLE Handle; + + SystemTable->RuntimeServices->ResetSystem = EmuResetSystem; + + Handle = NULL; + Status = gBS->InstallMultipleProtocolInterfaces ( + &Handle, + &gEfiResetArchProtocolGuid, + NULL, + NULL + ); + ASSERT_EFI_ERROR (Status); + + return Status; +} + diff --git a/EmulatorPkg/ResetRuntimeDxe/Reset.inf b/EmulatorPkg/ResetRuntimeDxe/Reset.inf new file mode 100644 index 0000000000..f95822b4bd --- /dev/null +++ b/EmulatorPkg/ResetRuntimeDxe/Reset.inf @@ -0,0 +1,57 @@ +## @file +# Emu Emulation Reset Architectural Protocol Driver as defined in PI +# +# This Reset module simulates system reset by process exit on Emulator. +# Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.
+# Portions copyright (c) 2011, Apple Inc. All rights reserved. +# +# This program and the accompanying materials +# are licensed and made available under the terms and conditions of the BSD License +# which accompanies this distribution. The full text of the license may be found at +# http://opensource.org/licenses/bsd-license.php +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# +# +## + +[Defines] + INF_VERSION = 0x00010005 + BASE_NAME = EmuReset + FILE_GUID = 50A18017-37AD-8743-BCF2-DF1A8FF12FAB + MODULE_TYPE = DXE_DRIVER + VERSION_STRING = 1.0 + + ENTRY_POINT = InitializeEmuReset + +# +# The following information is for reference only and not required by the build tools. +# +# VALID_ARCHITECTURES = IA32 X64 IPF EBC +# + +[Sources] + Reset.c + + +[Packages] + MdePkg/MdePkg.dec + EmulatorPkg/EmulatorPkg.dec + +[LibraryClasses] + UefiBootServicesTableLib + MemoryAllocationLib + EmuThunkLib + UefiDriverEntryPoint + UefiLib + DebugLib + BaseLib + + +[Protocols] + gEfiResetArchProtocolGuid # PROTOCOL ALWAYS_PRODUCED + + +[Depex] + TRUE + -- cgit v1.2.3