X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=UnixPkg%2FUnixUgaDxe%2FUnixUgaInput.c;fp=UnixPkg%2FUnixUgaDxe%2FUnixUgaInput.c;h=0000000000000000000000000000000000000000;hp=be38379397900db93479711b87a6ed4556460180;hb=5d71a30480bdf7081f72485d6bf48361c244c4d7;hpb=bf6ee6c7c33cf280cdfb2fd0e6b66a712b7aa4a1 diff --git a/UnixPkg/UnixUgaDxe/UnixUgaInput.c b/UnixPkg/UnixUgaDxe/UnixUgaInput.c deleted file mode 100644 index be38379397..0000000000 --- a/UnixPkg/UnixUgaDxe/UnixUgaInput.c +++ /dev/null @@ -1,418 +0,0 @@ -/*++ - -Copyright (c) 2006, Intel Corporation. All rights reserved.
-Portions copyright (c) 2010, 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. - -Module Name: - - UnixUgaInput.c - -Abstract: - - This file produces the Simple Text In for an Uga window. - - This stuff is linked at the hip to the Window, since the window - processing is done in a thread kicked off in UnixUgaImplementation.c - - Since the window information is processed in an other thread we need - a keyboard Queue to pass data about. The Simple Text In code just - takes data off the Queue. The WinProc message loop takes keyboard input - and places it in the Queue. - ---*/ - -#include "UnixUga.h" - -// -// Simple Text In implementation. -// - -EFI_STATUS -EFIAPI -UnixUgaSimpleTextInReset ( - IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL *This, - IN BOOLEAN ExtendedVerification - ) -/*++ - -Routine Description: - - TODO: Add function description - -Arguments: - - This - TODO: add argument description - ExtendedVerification - TODO: add argument description - -Returns: - - EFI_SUCCESS - TODO: Add description for return value - ---*/ -{ - UGA_PRIVATE_DATA *Private; - EFI_KEY_DATA Key; - EFI_TPL OldTpl; - - Private = UGA_PRIVATE_DATA_FROM_TEXT_IN_THIS (This); - if (Private->UgaIo == NULL) { - return EFI_SUCCESS; - } - - // - // Enter critical section - // - OldTpl = gBS->RaiseTPL (TPL_NOTIFY); - - // - // A reset is draining the Queue - // - while (Private->UgaIo->UgaGetKey (Private->UgaIo, &Key) == EFI_SUCCESS) - ; - - // - // Leave critical section and return - // - gBS->RestoreTPL (OldTpl); - return EFI_SUCCESS; -} - -EFI_STATUS -EFIAPI -UnixUgaSimpleTextInReadKeyStroke ( - IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL *This, - OUT EFI_INPUT_KEY *Key - ) -/*++ - -Routine Description: - - TODO: Add function description - -Arguments: - - This - TODO: add argument description - Key - TODO: add argument description - -Returns: - - TODO: add return values - ---*/ -{ - UGA_PRIVATE_DATA *Private; - EFI_STATUS Status; - EFI_TPL OldTpl; - EFI_KEY_DATA KeyData; - - Private = UGA_PRIVATE_DATA_FROM_TEXT_IN_THIS (This); - if (Private->UgaIo == NULL) { - return EFI_NOT_READY; - } - - // - // Enter critical section - // - OldTpl = gBS->RaiseTPL (TPL_NOTIFY); - - Status = Private->UgaIo->UgaGetKey(Private->UgaIo, &KeyData); - CopyMem (Key, &KeyData, sizeof (EFI_INPUT_KEY)); - - // - // Leave critical section and return - // - gBS->RestoreTPL (OldTpl); - - return Status; -} - -VOID -EFIAPI -UnixUgaSimpleTextInWaitForKey ( - IN EFI_EVENT Event, - IN VOID *Context - ) -/*++ - -Routine Description: - - TODO: Add function description - -Arguments: - - Event - TODO: add argument description - Context - TODO: add argument description - -Returns: - - TODO: add return values - ---*/ -{ - UGA_PRIVATE_DATA *Private; - EFI_STATUS Status; - EFI_TPL OldTpl; - - Private = (UGA_PRIVATE_DATA *) Context; - if (Private->UgaIo == NULL) { - return; - } - - // - // Enter critical section - // - OldTpl = gBS->RaiseTPL (TPL_NOTIFY); - - Status = Private->UgaIo->UgaCheckKey(Private->UgaIo); - if (!EFI_ERROR (Status)) { - // - // If a there is a key in the queue signal our event. - // - gBS->SignalEvent (Event); - } - // - // Leave critical section and return - // - gBS->RestoreTPL (OldTpl); -} - -// -// Simple Pointer implementation. -// - -EFI_STATUS -EFIAPI -UnixUgaSimplePointerReset ( - IN EFI_SIMPLE_POINTER_PROTOCOL *This, - IN BOOLEAN ExtendedVerification - ) -/*++ - -Routine Description: - - TODO: Add function description - -Arguments: - - This - TODO: add argument description - ExtendedVerification - TODO: add argument description - -Returns: - - EFI_SUCCESS - TODO: Add description for return value - ---*/ -{ - UGA_PRIVATE_DATA *Private; - EFI_SIMPLE_POINTER_STATE State; - EFI_TPL OldTpl; - - Private = UGA_PRIVATE_DATA_FROM_POINTER_THIS (This); - if (Private->UgaIo == NULL) { - return EFI_SUCCESS; - } - - // - // Enter critical section - // - OldTpl = gBS->RaiseTPL (TPL_NOTIFY); - - // - // A reset is draining the Queue - // - while (Private->UgaIo->UgaGetPointerState(Private->UgaIo, &State) == EFI_SUCCESS) - ; - - // - // Leave critical section and return - // - gBS->RestoreTPL (OldTpl); - return EFI_SUCCESS; -} - -EFI_STATUS -EFIAPI -UnixUgaSimplePointerGetState ( - IN EFI_SIMPLE_POINTER_PROTOCOL *This, - IN OUT EFI_SIMPLE_POINTER_STATE *State - ) -/*++ - -Routine Description: - - TODO: Add function description - -Arguments: - - This - TODO: add argument description - Key - TODO: add argument description - -Returns: - - TODO: add return values - ---*/ -{ - UGA_PRIVATE_DATA *Private; - EFI_STATUS Status; - EFI_TPL OldTpl; - - Private = UGA_PRIVATE_DATA_FROM_POINTER_THIS (This); - if (Private->UgaIo == NULL) { - return EFI_NOT_READY; - } - - // - // Enter critical section - // - OldTpl = gBS->RaiseTPL (TPL_NOTIFY); - - Status = Private->UgaIo->UgaGetPointerState(Private->UgaIo, State); - // - // Leave critical section and return - // - gBS->RestoreTPL (OldTpl); - - return Status; -} - -VOID -EFIAPI -UnixUgaSimplePointerWaitForInput ( - IN EFI_EVENT Event, - IN VOID *Context - ) -/*++ - -Routine Description: - - TODO: Add function description - -Arguments: - - Event - TODO: add argument description - Context - TODO: add argument description - -Returns: - - TODO: add return values - ---*/ -{ - UGA_PRIVATE_DATA *Private; - EFI_STATUS Status; - EFI_TPL OldTpl; - - Private = (UGA_PRIVATE_DATA *) Context; - if (Private->UgaIo == NULL) { - return; - } - - // - // Enter critical section - // - OldTpl = gBS->RaiseTPL (TPL_NOTIFY); - - Status = Private->UgaIo->UgaCheckPointer(Private->UgaIo); - if (!EFI_ERROR (Status)) { - // - // If the pointer state has changed, signal our event. - // - gBS->SignalEvent (Event); - } - // - // Leave critical section and return - // - gBS->RestoreTPL (OldTpl); -} - -EFI_STATUS -UnixUgaInitializeSimpleTextInForWindow ( - IN UGA_PRIVATE_DATA *Private - ) -/*++ - -Routine Description: - - TODO: Add function description - -Arguments: - - Private - TODO: add argument description - -Returns: - - TODO: add return values - ---*/ -{ - EFI_STATUS Status; - - // - // Initialize Simple Text In protoocol - // - Private->SimpleTextIn.Reset = UnixUgaSimpleTextInReset; - Private->SimpleTextIn.ReadKeyStroke = UnixUgaSimpleTextInReadKeyStroke; - - Status = gBS->CreateEvent ( - EVT_NOTIFY_WAIT, - TPL_NOTIFY, - UnixUgaSimpleTextInWaitForKey, - Private, - &Private->SimpleTextIn.WaitForKey - ); - - return Status; -} - -EFI_STATUS -UnixUgaInitializeSimplePointerForWindow ( - IN UGA_PRIVATE_DATA *Private - ) -/*++ - -Routine Description: - - TODO: Add function description - -Arguments: - - Private - TODO: add argument description - -Returns: - - TODO: add return values - ---*/ -{ - EFI_STATUS Status; - - // - // Initialize Simple Pointer protoocol - // - Private->PointerMode.ResolutionX = 1; - Private->PointerMode.ResolutionY = 1; - Private->PointerMode.LeftButton = TRUE; - Private->PointerMode.RightButton = TRUE; - - Private->SimplePointer.Reset = UnixUgaSimplePointerReset; - Private->SimplePointer.GetState = UnixUgaSimplePointerGetState; - Private->SimplePointer.Mode = &Private->PointerMode; - - Status = gBS->CreateEvent ( - EVT_NOTIFY_WAIT, - TPL_NOTIFY, - UnixUgaSimplePointerWaitForInput, - Private, - &Private->SimplePointer.WaitForInput - ); - - return Status; -}