+++ /dev/null
-/** @file\r
-\r
-Copyright (c) 2006, Intel Corporation\r
-All rights reserved. This program and the accompanying materials\r
-are licensed and made available under the terms and conditions of the BSD License\r
-which accompanies this distribution. The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
-Module Name:\r
-\r
- WinNtGop.h\r
-\r
-Abstract:\r
-\r
- Private data for the Gop driver that is bound to the WinNt Thunk protocol\r
-\r
-\r
-**/\r
-\r
-#ifndef _WIN_NT_GOP_H_\r
-#define _WIN_NT_GOP_H_\r
-\r
-//@MT:#include "EfiWinNT.h"\r
-//@MT:#include "Tiano.h"\r
-//@MT:#include "EfiDriverLib.h"\r
-\r
-//\r
-// Driver Consumed Protocols\r
-//\r
-//@MT:#include EFI_PROTOCOL_DEFINITION (DevicePath)\r
-//@MT:#include EFI_PROTOCOL_DEFINITION (WinNtIo)\r
-\r
-//\r
-// Driver Produced Protocols\r
-//\r
-//@MT:#include EFI_PROTOCOL_DEFINITION (DriverBinding)\r
-//@MT:#include EFI_PROTOCOL_DEFINITION (ComponentName)\r
-//@MT:#include EFI_PROTOCOL_DEFINITION (GraphicsOutput)\r
-//@MT:#include "LinkedList.h"\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 WIN_NT_GOP_CLASS_NAME L"WinNtGopWindow"\r
-\r
-#define GOP_PRIVATE_DATA_SIGNATURE EFI_SIGNATURE_32 ('S', 'g', 'o', 'N')\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
-typedef struct {\r
- UINT64 Signature;\r
-\r
- EFI_HANDLE Handle;\r
- EFI_GRAPHICS_OUTPUT_PROTOCOL GraphicsOutput;\r
- EFI_SIMPLE_TEXT_INPUT_PROTOCOL SimpleTextIn;\r
-\r
- EFI_WIN_NT_THUNK_PROTOCOL *WinNtThunk;\r
-\r
- EFI_UNICODE_STRING_TABLE *ControllerNameTable;\r
-\r
- //\r
- // GOP Private Data for QueryMode ()\r
- //\r
- GOP_MODE_DATA *ModeData;\r
-\r
- //\r
- // GOP Private Data knowing when to start hardware\r
- //\r
- BOOLEAN HardwareNeedsStarting;\r
-\r
- CHAR16 *WindowName;\r
- CHAR16 Buffer[160];\r
-\r
- HANDLE ThreadInited; // Semaphore\r
- HANDLE ThreadHandle; // Thread\r
- DWORD ThreadId;\r
-\r
- HWND WindowHandle;\r
- WNDCLASSEX WindowsClass;\r
-\r
- //\r
- // This screen is used to redraw the scree when windows events happen. It's\r
- // updated in the main thread and displayed in the windows thread.\r
- //\r
- BITMAPV4HEADER *VirtualScreenInfo;\r
- RGBQUAD *VirtualScreen;\r
-\r
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL *FillLine;\r
-\r
- //\r
- // Keyboard Queue used by Simple Text In. WinProc thread adds, and main\r
- // thread removes.\r
- //\r
- CRITICAL_SECTION QCriticalSection;\r
- GOP_QUEUE_FIXED Queue;\r
-\r
-} GOP_PRIVATE_DATA;\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
-//\r
-// Global Protocol Variables\r
-//\r
-extern EFI_DRIVER_BINDING_PROTOCOL gWinNtGopDriverBinding;\r
-extern EFI_COMPONENT_NAME_PROTOCOL gWinNtGopComponentName;\r
-\r
-//\r
-// Gop Hardware abstraction internal worker functions\r
-//\r
-\r
-/**\r
- TODO: Add function description\r
-\r
- @param WinNtIo TODO: add argument description\r
-\r
- @return TODO: add return values\r
-\r
-**/\r
-EFI_STATUS\r
-WinNtGopSupported (\r
- IN EFI_WIN_NT_IO_PROTOCOL *WinNtIo\r
- )\r
-;\r
-\r
-\r
-/**\r
- TODO: Add function description\r
-\r
- @param Private TODO: add argument description\r
-\r
- @return TODO: add return values\r
-\r
-**/\r
-EFI_STATUS\r
-WinNtGopConstructor (\r
- IN GOP_PRIVATE_DATA *Private\r
- )\r
-;\r
-\r
-\r
-/**\r
- TODO: Add function description\r
-\r
- @param Private TODO: add argument description\r
-\r
- @return TODO: add return values\r
-\r
-**/\r
-EFI_STATUS\r
-WinNtGopDestructor (\r
- IN GOP_PRIVATE_DATA *Private\r
- )\r
-;\r
-\r
-//\r
-// EFI 1.1 driver model prototypes for Win NT GOP\r
-//\r
-\r
-\r
-/**\r
- TODO: Add function description\r
-\r
- @param ImageHandle TODO: add argument description\r
- @param SystemTable TODO: add argument description\r
-\r
- @return TODO: add return values\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-WinNtGopInitialize (\r
- IN EFI_HANDLE ImageHandle,\r
- IN EFI_SYSTEM_TABLE *SystemTable\r
- )\r
-;\r
-\r
-\r
-/**\r
- TODO: Add function description\r
-\r
- @param This TODO: add argument description\r
- @param Handle TODO: add argument description\r
- @param RemainingDevicePath TODO: add argument description\r
-\r
- @return TODO: add return values\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-WinNtGopDriverBindingSupported (\r
- IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
- IN EFI_HANDLE Handle,\r
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
- )\r
-;\r
-\r
-\r
-/**\r
- TODO: Add function description\r
-\r
- @param This TODO: add argument description\r
- @param Handle TODO: add argument description\r
- @param RemainingDevicePath TODO: add argument description\r
-\r
- @return TODO: add return values\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-WinNtGopDriverBindingStart (\r
- IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
- IN EFI_HANDLE Handle,\r
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
- )\r
-;\r
-\r
-\r
-/**\r
- TODO: Add function description\r
-\r
- @param This TODO: add argument description\r
- @param Handle TODO: add argument description\r
- @param NumberOfChildren TODO: add argument description\r
- @param ChildHandleBuffer TODO: add argument description\r
-\r
- @return TODO: add return values\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-WinNtGopDriverBindingStop (\r
- IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
- IN EFI_HANDLE Handle,\r
- IN UINTN NumberOfChildren,\r
- IN EFI_HANDLE *ChildHandleBuffer\r
- )\r
-;\r
-\r
-\r
-/**\r
- TODO: Add function description\r
-\r
- @param Private TODO: add argument description\r
- @param Key TODO: add argument description\r
-\r
- @return TODO: add return values\r
-\r
-**/\r
-EFI_STATUS\r
-GopPrivateAddQ (\r
- IN GOP_PRIVATE_DATA *Private,\r
- IN EFI_INPUT_KEY Key\r
- )\r
-;\r
-\r
-\r
-/**\r
- TODO: Add function description\r
-\r
- @param Private TODO: add argument description\r
-\r
- @return TODO: add return values\r
-\r
-**/\r
-EFI_STATUS\r
-WinNtGopInitializeSimpleTextInForWindow (\r
- IN GOP_PRIVATE_DATA *Private\r
- )\r
-;\r
-\r
-\r
-/**\r
- TODO: Add function description\r
-\r
- @param Private TODO: add argument description\r
-\r
- @return TODO: add return values\r
-\r
-**/\r
-EFI_STATUS\r
-WinNtGopDestroySimpleTextInForWindow (\r
- IN GOP_PRIVATE_DATA *Private\r
- )\r
-;\r
-\r
-\r
-\r
-#endif\r