X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=Nt32Pkg%2FWinNtConsoleDxe%2FConsole.c;fp=Nt32Pkg%2FWinNtConsoleDxe%2FConsole.c;h=0000000000000000000000000000000000000000;hp=bbec72e3aad8c4f9fd908db20e10edd8db7a3cbc;hb=ad4dc92d616f24df1de49887d5fd194704cb5fc9;hpb=62cf113f2e3741e498d22df1cf5d347fab654e57 diff --git a/Nt32Pkg/WinNtConsoleDxe/Console.c b/Nt32Pkg/WinNtConsoleDxe/Console.c deleted file mode 100644 index bbec72e3aa..0000000000 --- a/Nt32Pkg/WinNtConsoleDxe/Console.c +++ /dev/null @@ -1,363 +0,0 @@ -/*++ - -Copyright (c) 2006 - 2007, Intel Corporation -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. - -Module Name: - - Console.c - -Abstract: - - Console based on Win32 APIs. - ---*/ - -// -// The package level header files this module uses -// -#include -#include -// -// The protocols, PPI and GUID defintions for this module -// -#include -#include -#include -#include -#include -// -// The Library classes this module consumes -// -#include -#include -#include -#include -#include -#include -#include - -#include "Console.h" - -EFI_STATUS -EFIAPI -WinNtConsoleDriverBindingSupported ( - IN EFI_DRIVER_BINDING_PROTOCOL *This, - IN EFI_HANDLE Handle, - IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath - ); - -EFI_STATUS -EFIAPI -WinNtConsoleDriverBindingStart ( - IN EFI_DRIVER_BINDING_PROTOCOL *This, - IN EFI_HANDLE Handle, - IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath - ); - -EFI_STATUS -EFIAPI -WinNtConsoleDriverBindingStop ( - IN EFI_DRIVER_BINDING_PROTOCOL *This, - IN EFI_HANDLE Handle, - IN UINTN NumberOfChildren, - IN EFI_HANDLE *ChildHandleBuffer - ); - -EFI_DRIVER_BINDING_PROTOCOL gWinNtConsoleDriverBinding = { - WinNtConsoleDriverBindingSupported, - WinNtConsoleDriverBindingStart, - WinNtConsoleDriverBindingStop, - 0xa, - NULL, - NULL -}; - -/** - The user Entry Point for module WinNtConsole. The user code starts with this function. - - @param[in] ImageHandle The firmware allocated handle for the EFI image. - @param[in] SystemTable A pointer to the EFI System Table. - - @retval EFI_SUCCESS The entry point is executed successfully. - @retval other Some error occurs when executing this entry point. - -**/ -EFI_STATUS -EFIAPI -InitializeWinNtConsole( - IN EFI_HANDLE ImageHandle, - IN EFI_SYSTEM_TABLE *SystemTable - ) -{ - EFI_STATUS Status; - - // - // Install driver model protocol(s). - // - Status = EfiLibInstallDriverBindingComponentName2 ( - ImageHandle, - SystemTable, - &gWinNtConsoleDriverBinding, - ImageHandle, - &gWinNtConsoleComponentName, - &gWinNtConsoleComponentName2 - ); - ASSERT_EFI_ERROR (Status); - - - return Status; -} - - -EFI_STATUS -EFIAPI -WinNtConsoleDriverBindingSupported ( - IN EFI_DRIVER_BINDING_PROTOCOL *This, - IN EFI_HANDLE Handle, - IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath - ) -/*++ - -Routine Description: - -Arguments: - -Returns: - - None - ---*/ -// TODO: This - add argument and description to function comment -// TODO: Handle - add argument and description to function comment -// TODO: RemainingDevicePath - add argument and description to function comment -{ - EFI_STATUS Status; - EFI_WIN_NT_IO_PROTOCOL *WinNtIo; - - // - // Open the IO Abstraction(s) needed to perform the supported test - // - Status = gBS->OpenProtocol ( - Handle, - &gEfiWinNtIoProtocolGuid, - &WinNtIo, - This->DriverBindingHandle, - Handle, - EFI_OPEN_PROTOCOL_BY_DRIVER - ); - if (EFI_ERROR (Status)) { - return Status; - } - - // - // Make sure that the WinNt Thunk Protocol is valid - // - Status = EFI_UNSUPPORTED; - if (WinNtIo->WinNtThunk->Signature == EFI_WIN_NT_THUNK_PROTOCOL_SIGNATURE) { - - // - // Check the GUID to see if this is a handle type the driver supports - // - if (CompareGuid (WinNtIo->TypeGuid, &gEfiWinNtConsoleGuid)) { - Status = EFI_SUCCESS; - } - } - - // - // Close the I/O Abstraction(s) used to perform the supported test - // - gBS->CloseProtocol ( - Handle, - &gEfiWinNtIoProtocolGuid, - This->DriverBindingHandle, - Handle - ); - - return Status; -} - -EFI_STATUS -EFIAPI -WinNtConsoleDriverBindingStart ( - IN EFI_DRIVER_BINDING_PROTOCOL *This, - IN EFI_HANDLE Handle, - IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath - ) -/*++ - -Routine Description: - -Arguments: - -Returns: - - None - ---*/ -// TODO: This - add argument and description to function comment -// TODO: Handle - add argument and description to function comment -// TODO: RemainingDevicePath - add argument and description to function comment -{ - EFI_STATUS Status; - EFI_WIN_NT_IO_PROTOCOL *WinNtIo; - WIN_NT_SIMPLE_TEXT_PRIVATE_DATA *Private; - - // - // Grab the IO abstraction we need to get any work done - // - Status = gBS->OpenProtocol ( - Handle, - &gEfiWinNtIoProtocolGuid, - &WinNtIo, - This->DriverBindingHandle, - Handle, - EFI_OPEN_PROTOCOL_BY_DRIVER - ); - if (EFI_ERROR (Status)) { - return Status; - } - - Private = AllocatePool (sizeof (WIN_NT_SIMPLE_TEXT_PRIVATE_DATA)); - if (Private == NULL) { - goto Done; - } - - ZeroMem (Private, sizeof (WIN_NT_SIMPLE_TEXT_PRIVATE_DATA)); - - Private->Signature = WIN_NT_SIMPLE_TEXT_PRIVATE_DATA_SIGNATURE; - Private->Handle = Handle; - Private->WinNtIo = WinNtIo; - Private->WinNtThunk = WinNtIo->WinNtThunk; - - WinNtSimpleTextOutOpenWindow (Private); - WinNtSimpleTextInAttachToWindow (Private); - - Status = gBS->InstallMultipleProtocolInterfaces ( - &Handle, - &gEfiSimpleTextOutProtocolGuid, - &Private->SimpleTextOut, - &gEfiSimpleTextInProtocolGuid, - &Private->SimpleTextIn, - NULL - ); - if (!EFI_ERROR (Status)) { - return Status; - } - -Done: - gBS->CloseProtocol ( - Handle, - &gEfiWinNtIoProtocolGuid, - This->DriverBindingHandle, - Handle - ); - if (Private != NULL) { - - FreeUnicodeStringTable (Private->ControllerNameTable); - - if (Private->NtOutHandle != NULL) { - Private->WinNtThunk->CloseHandle (Private->NtOutHandle); - } - - if (Private->SimpleTextIn.WaitForKey != NULL) { - gBS->CloseEvent (Private->SimpleTextIn.WaitForKey); - } - - FreePool (Private); - } - - return Status; -} - -EFI_STATUS -EFIAPI -WinNtConsoleDriverBindingStop ( - IN EFI_DRIVER_BINDING_PROTOCOL *This, - IN EFI_HANDLE Handle, - IN UINTN NumberOfChildren, - IN EFI_HANDLE *ChildHandleBuffer - ) -/*++ - -Routine Description: - - TODO: Add function description - -Arguments: - - This - TODO: add argument description - Handle - TODO: add argument description - NumberOfChildren - TODO: add argument description - ChildHandleBuffer - TODO: add argument description - -Returns: - - EFI_UNSUPPORTED - TODO: Add description for return value - ---*/ -{ - EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *SimpleTextOut; - EFI_STATUS Status; - WIN_NT_SIMPLE_TEXT_PRIVATE_DATA *Private; - - // - // Kick people off our interface??? - // - Status = gBS->OpenProtocol ( - Handle, - &gEfiSimpleTextOutProtocolGuid, - &SimpleTextOut, - This->DriverBindingHandle, - Handle, - EFI_OPEN_PROTOCOL_GET_PROTOCOL - ); - if (EFI_ERROR (Status)) { - return EFI_UNSUPPORTED; - } - - Private = WIN_NT_SIMPLE_TEXT_OUT_PRIVATE_DATA_FROM_THIS (SimpleTextOut); - - ASSERT (Private->Handle == Handle); - - Status = gBS->UninstallMultipleProtocolInterfaces ( - Handle, - &gEfiSimpleTextOutProtocolGuid, - &Private->SimpleTextOut, - &gEfiSimpleTextInProtocolGuid, - &Private->SimpleTextIn, - NULL - ); - if (!EFI_ERROR (Status)) { - - // - // Shut down our device - // - Status = gBS->CloseProtocol ( - Handle, - &gEfiWinNtIoProtocolGuid, - This->DriverBindingHandle, - Handle - ); - - Status = gBS->CloseEvent (Private->SimpleTextIn.WaitForKey); - ASSERT_EFI_ERROR (Status); - - Private->WinNtThunk->CloseHandle (Private->NtOutHandle); - // - // DO NOT close Private->NtInHandle. It points to StdIn and not - // the Private->NtOutHandle is StdIn and should not be closed! - // - FreeUnicodeStringTable (Private->ControllerNameTable); - - FreePool (Private); - } - - return Status; -}