-/*++ @file
-
-Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
-Portions copyright (c) 2010,Apple Inc. All rights reserved.<BR>
-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.
-
-**/
-
-#ifndef __UGA_H_
-#define __UGA_H_
-
-#include <PiDxe.h>
-
-#include <Protocol/GraphicsOutput.h>
-#include <Protocol/SimpleTextIn.h>
-#include <Protocol/SimpleTextInEx.h>
-#include <Protocol/SimplePointer.h>
-#include <Protocol/EmuIoThunk.h>
-#include <Protocol/EmuGraphicsWindow.h>
-
-#include <Guid/EventGroup.h>
-
-#include <Library/DebugLib.h>
-#include <Library/BaseLib.h>
-#include <Library/UefiDriverEntryPoint.h>
-#include <Library/UefiLib.h>
-#include <Library/BaseMemoryLib.h>
-#include <Library/MemoryAllocationLib.h>
-#include <Library/UefiBootServicesTableLib.h>
-#include <Library/KeyMapLib.h>
-
-
-#define MAX_Q 256
-
-typedef struct {
- UINTN Front;
- UINTN Rear;
- UINTN Count;
- EFI_INPUT_KEY Q[MAX_Q];
-} GOP_QUEUE_FIXED;
-
-#define EMU_GOP_SIMPLE_TEXTIN_EX_NOTIFY_SIGNATURE SIGNATURE_32 ('U', 'g', 'S', 'n')
-typedef struct _EMU_GOP_SIMPLE_TEXTIN_EX_NOTIFY {
- UINTN Signature;
- EFI_HANDLE NotifyHandle;
- EFI_KEY_DATA KeyData;
- EFI_KEY_NOTIFY_FUNCTION KeyNotificationFn;
- EFI_EVENT Event;
- LIST_ENTRY NotifyEntry;
-} EMU_GOP_SIMPLE_TEXTIN_EX_NOTIFY;
-
-#define GRAPHICS_OUTPUT_INVALIDE_MODE_NUMBER 0xffff
-
-typedef struct {
- UINT32 HorizontalResolution;
- UINT32 VerticalResolution;
- UINT32 ColorDepth;
- UINT32 RefreshRate;
-} GOP_MODE_DATA;
-
-
-
-extern EFI_DRIVER_BINDING_PROTOCOL gEmuGopDriverBinding;
-extern EFI_COMPONENT_NAME_PROTOCOL gEmuGopComponentName;
-
-#define EMU_UGA_CLASS_NAME L"EmuGopWindow"
-
-#define GOP_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('G', 'o', 'p', 'N')
-typedef struct {
- UINT64 Signature;
-
- EFI_HANDLE Handle;
- EFI_GRAPHICS_OUTPUT_PROTOCOL GraphicsOutput;
- EFI_SIMPLE_TEXT_INPUT_PROTOCOL SimpleTextIn;
- EFI_SIMPLE_POINTER_PROTOCOL SimplePointer;
-
- EMU_IO_THUNK_PROTOCOL *EmuIoThunk;
- EMU_GRAPHICS_WINDOW_PROTOCOL *EmuGraphicsWindow;
-
- EFI_UNICODE_STRING_TABLE *ControllerNameTable;
-
- EFI_SIMPLE_POINTER_MODE PointerMode;
- //
- // GOP Private Data for QueryMode ()
- //
- GOP_MODE_DATA *ModeData;
-
-
- //
- // UGA Private Data knowing when to start hardware
- //
- BOOLEAN HardwareNeedsStarting;
-
- CHAR16 *WindowName;
-
- GOP_QUEUE_FIXED Queue;
-
- EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL SimpleTextInEx;
- EFI_KEY_STATE KeyState;
- LIST_ENTRY NotifyList;
-} GOP_PRIVATE_DATA;
-
-
-#define GOP_PRIVATE_DATA_FROM_THIS(a) \
- CR(a, GOP_PRIVATE_DATA, GraphicsOutput, GOP_PRIVATE_DATA_SIGNATURE)
-
-#define GOP_PRIVATE_DATA_FROM_TEXT_IN_THIS(a) \
- CR(a, GOP_PRIVATE_DATA, SimpleTextIn, GOP_PRIVATE_DATA_SIGNATURE)
-
-#define GOP_PRIVATE_DATA_FROM_TEXT_IN_EX_THIS(a) \
- CR(a, GOP_PRIVATE_DATA, SimpleTextInEx, GOP_PRIVATE_DATA_SIGNATURE)
-
-#define GOP_PRIVATE_DATA_FROM_POINTER_MODE_THIS(a) \
- CR(a, GOP_PRIVATE_DATA, SimplePointer, GOP_PRIVATE_DATA_SIGNATURE)
-
-
-//
-// Global Protocol Variables
-//
-extern EFI_DRIVER_BINDING_PROTOCOL gEmuGopDriverBinding;
-extern EFI_COMPONENT_NAME_PROTOCOL gEmuGopComponentName;
-extern EFI_COMPONENT_NAME2_PROTOCOL gEmuGopComponentName2;
-
-//
-// Gop Hardware abstraction internal worker functions
-//
-EFI_STATUS
-EmuGopSupported (
- IN EMU_IO_THUNK_PROTOCOL *EmuIoThunk
- );
-
-EFI_STATUS
-EmuGopConstructor (
- IN GOP_PRIVATE_DATA *Private
- );
-
-EFI_STATUS
-EmuGopDestructor (
- IN GOP_PRIVATE_DATA *Private
- );
-
-
-EFI_STATUS
-GopPrivateAddQ (
- IN GOP_PRIVATE_DATA *Private,
- IN EFI_INPUT_KEY Key
- );
-
-EFI_STATUS
-EmuGopInitializeSimpleTextInForWindow (
- IN GOP_PRIVATE_DATA *Private
- );
-
-EFI_STATUS
-EmuGopInitializeSimplePointerForWindow (
- IN GOP_PRIVATE_DATA *Private
- );
-
-EFI_STATUS
-EmuGopStartWindow (
- IN GOP_PRIVATE_DATA *Private,
- IN UINT32 HorizontalResolution,
- IN UINT32 VerticalResolution,
- IN UINT32 ColorDepth,
- IN UINT32 RefreshRate
- );
-
-VOID
-EFIAPI
-ShutdownGopEvent (
- IN EFI_EVENT Event,
- IN VOID *Context
- );
-
-VOID
-EFIAPI
-GopPrivateMakeCallbackFunction (
- IN VOID *Context,
- IN EFI_KEY_DATA *KeyData
- );
-
-VOID
-EFIAPI
-GopPrivateBreakCallbackFunction (
- IN VOID *Context,
- IN EFI_KEY_DATA *KeyData
- );
-
-#endif
+/*++ @file\r
+\r
+Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
+Portions copyright (c) 2010,Apple Inc. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
+\r
+**/\r
+\r
+#ifndef __UGA_H_\r
+#define __UGA_H_\r
+\r
+#include <PiDxe.h>\r
+\r
+#include <Protocol/GraphicsOutput.h>\r
+#include <Protocol/SimpleTextIn.h>\r
+#include <Protocol/SimpleTextInEx.h>\r
+#include <Protocol/SimplePointer.h>\r
+#include <Protocol/EmuIoThunk.h>\r
+#include <Protocol/EmuGraphicsWindow.h>\r
+\r
+#include <Guid/EventGroup.h>\r
+\r
+#include <Library/DebugLib.h>\r
+#include <Library/BaseLib.h>\r
+#include <Library/UefiDriverEntryPoint.h>\r
+#include <Library/UefiLib.h>\r
+#include <Library/BaseMemoryLib.h>\r
+#include <Library/MemoryAllocationLib.h>\r
+#include <Library/UefiBootServicesTableLib.h>\r
+#include <Library/KeyMapLib.h>\r
+\r
+\r
+#define MAX_Q 256\r
+\r
+typedef struct {\r
+ UINTN Front;\r
+ UINTN Rear;\r
+ UINTN Count;\r
+ EFI_INPUT_KEY Q[MAX_Q];\r
+} GOP_QUEUE_FIXED;\r
+\r
+#define EMU_GOP_SIMPLE_TEXTIN_EX_NOTIFY_SIGNATURE SIGNATURE_32 ('U', 'g', 'S', 'n')\r
+typedef struct _EMU_GOP_SIMPLE_TEXTIN_EX_NOTIFY {\r
+ UINTN Signature;\r
+ EFI_HANDLE NotifyHandle;\r
+ EFI_KEY_DATA KeyData;\r
+ EFI_KEY_NOTIFY_FUNCTION KeyNotificationFn;\r
+ EFI_EVENT Event;\r
+ LIST_ENTRY NotifyEntry;\r
+} EMU_GOP_SIMPLE_TEXTIN_EX_NOTIFY;\r
+\r
+#define GRAPHICS_OUTPUT_INVALIDE_MODE_NUMBER 0xffff\r
+\r
+typedef struct {\r
+ UINT32 HorizontalResolution;\r
+ UINT32 VerticalResolution;\r
+ UINT32 ColorDepth;\r
+ UINT32 RefreshRate;\r
+} GOP_MODE_DATA;\r
+\r
+\r
+\r
+extern EFI_DRIVER_BINDING_PROTOCOL gEmuGopDriverBinding;\r
+extern EFI_COMPONENT_NAME_PROTOCOL gEmuGopComponentName;\r
+\r
+#define EMU_UGA_CLASS_NAME L"EmuGopWindow"\r
+\r
+#define GOP_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('G', 'o', 'p', 'N')\r
+typedef struct {\r
+ UINT64 Signature;\r
+\r
+ EFI_HANDLE Handle;\r
+ EFI_GRAPHICS_OUTPUT_PROTOCOL GraphicsOutput;\r
+ EFI_SIMPLE_TEXT_INPUT_PROTOCOL SimpleTextIn;\r
+ EFI_SIMPLE_POINTER_PROTOCOL SimplePointer;\r
+\r
+ EMU_IO_THUNK_PROTOCOL *EmuIoThunk;\r
+ EMU_GRAPHICS_WINDOW_PROTOCOL *EmuGraphicsWindow;\r
+\r
+ EFI_UNICODE_STRING_TABLE *ControllerNameTable;\r
+\r
+ EFI_SIMPLE_POINTER_MODE PointerMode;\r
+ //\r
+ // GOP Private Data for QueryMode ()\r
+ //\r
+ GOP_MODE_DATA *ModeData;\r
+\r
+\r
+ //\r
+ // UGA Private Data knowing when to start hardware\r
+ //\r
+ BOOLEAN HardwareNeedsStarting;\r
+\r
+ CHAR16 *WindowName;\r
+\r
+ GOP_QUEUE_FIXED Queue;\r
+\r
+ EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL SimpleTextInEx;\r
+ EFI_KEY_STATE KeyState;\r
+ LIST_ENTRY NotifyList;\r
+} GOP_PRIVATE_DATA;\r
+\r
+\r
+#define GOP_PRIVATE_DATA_FROM_THIS(a) \\r
+ CR(a, GOP_PRIVATE_DATA, GraphicsOutput, GOP_PRIVATE_DATA_SIGNATURE)\r
+\r
+#define GOP_PRIVATE_DATA_FROM_TEXT_IN_THIS(a) \\r
+ CR(a, GOP_PRIVATE_DATA, SimpleTextIn, GOP_PRIVATE_DATA_SIGNATURE)\r
+\r
+#define GOP_PRIVATE_DATA_FROM_TEXT_IN_EX_THIS(a) \\r
+ CR(a, GOP_PRIVATE_DATA, SimpleTextInEx, GOP_PRIVATE_DATA_SIGNATURE)\r
+\r
+#define GOP_PRIVATE_DATA_FROM_POINTER_MODE_THIS(a) \\r
+ CR(a, GOP_PRIVATE_DATA, SimplePointer, GOP_PRIVATE_DATA_SIGNATURE)\r
+\r
+\r
+//\r
+// Global Protocol Variables\r
+//\r
+extern EFI_DRIVER_BINDING_PROTOCOL gEmuGopDriverBinding;\r
+extern EFI_COMPONENT_NAME_PROTOCOL gEmuGopComponentName;\r
+extern EFI_COMPONENT_NAME2_PROTOCOL gEmuGopComponentName2;\r
+\r
+//\r
+// Gop Hardware abstraction internal worker functions\r
+//\r
+EFI_STATUS\r
+EmuGopSupported (\r
+ IN EMU_IO_THUNK_PROTOCOL *EmuIoThunk\r
+ );\r
+\r
+EFI_STATUS\r
+EmuGopConstructor (\r
+ IN GOP_PRIVATE_DATA *Private\r
+ );\r
+\r
+EFI_STATUS\r
+EmuGopDestructor (\r
+ IN GOP_PRIVATE_DATA *Private\r
+ );\r
+\r
+\r
+EFI_STATUS\r
+GopPrivateAddQ (\r
+ IN GOP_PRIVATE_DATA *Private,\r
+ IN EFI_INPUT_KEY Key\r
+ );\r
+\r
+EFI_STATUS\r
+EmuGopInitializeSimpleTextInForWindow (\r
+ IN GOP_PRIVATE_DATA *Private\r
+ );\r
+\r
+EFI_STATUS\r
+EmuGopInitializeSimplePointerForWindow (\r
+ IN GOP_PRIVATE_DATA *Private\r
+ );\r
+\r
+EFI_STATUS\r
+EmuGopStartWindow (\r
+ IN GOP_PRIVATE_DATA *Private,\r
+ IN UINT32 HorizontalResolution,\r
+ IN UINT32 VerticalResolution,\r
+ IN UINT32 ColorDepth,\r
+ IN UINT32 RefreshRate\r
+ );\r
+\r
+VOID\r
+EFIAPI\r
+ShutdownGopEvent (\r
+ IN EFI_EVENT Event,\r
+ IN VOID *Context\r
+ );\r
+\r
+VOID\r
+EFIAPI\r
+GopPrivateMakeCallbackFunction (\r
+ IN VOID *Context,\r
+ IN EFI_KEY_DATA *KeyData\r
+ );\r
+\r
+VOID\r
+EFIAPI\r
+GopPrivateBreakCallbackFunction (\r
+ IN VOID *Context,\r
+ IN EFI_KEY_DATA *KeyData\r
+ );\r
+\r
+#endif\r