summaryrefslogtreecommitdiff
path: root/Nt32Pkg/WinNtGopDxe/WinNtGop.h
diff options
context:
space:
mode:
authorklu2 <klu2@6f19259b-4bc3-4df7-8a09-765794883524>2007-06-27 06:48:58 +0000
committerklu2 <klu2@6f19259b-4bc3-4df7-8a09-765794883524>2007-06-27 06:48:58 +0000
commitc9fc89a313e0955d3eb8baf3bbfd8bb7d450ad7c (patch)
tree7419d6a1cb3c6dd289600ada4c7e5157526c2225 /Nt32Pkg/WinNtGopDxe/WinNtGop.h
parent8879d432afdfa0e4ae905857f177ddc24cb71f3b (diff)
downloadedk2-platforms-c9fc89a313e0955d3eb8baf3bbfd8bb7d450ad7c.tar.xz
Add WinNtGop driver into Nt32Pkg
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2784 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'Nt32Pkg/WinNtGopDxe/WinNtGop.h')
-rw-r--r--Nt32Pkg/WinNtGopDxe/WinNtGop.h326
1 files changed, 326 insertions, 0 deletions
diff --git a/Nt32Pkg/WinNtGopDxe/WinNtGop.h b/Nt32Pkg/WinNtGopDxe/WinNtGop.h
new file mode 100644
index 0000000000..cc7283ebf6
--- /dev/null
+++ b/Nt32Pkg/WinNtGopDxe/WinNtGop.h
@@ -0,0 +1,326 @@
+/** @file
+
+Copyright (c) 2006, 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:
+
+ WinNtGop.h
+
+Abstract:
+
+ Private data for the Gop driver that is bound to the WinNt Thunk protocol
+
+
+**/
+
+#ifndef _WIN_NT_GOP_H_
+#define _WIN_NT_GOP_H_
+
+//
+// Include common header file for this module.
+//
+#include "CommonHeader.h"
+
+//@MT:#include "EfiWinNT.h"
+//@MT:#include "Tiano.h"
+//@MT:#include "EfiDriverLib.h"
+
+//
+// Driver Consumed Protocols
+//
+//@MT:#include EFI_PROTOCOL_DEFINITION (DevicePath)
+//@MT:#include EFI_PROTOCOL_DEFINITION (WinNtIo)
+
+//
+// Driver Produced Protocols
+//
+//@MT:#include EFI_PROTOCOL_DEFINITION (DriverBinding)
+//@MT:#include EFI_PROTOCOL_DEFINITION (ComponentName)
+//@MT:#include EFI_PROTOCOL_DEFINITION (GraphicsOutput)
+//@MT:#include "LinkedList.h"
+
+#define MAX_Q 256
+
+typedef struct {
+ UINTN Front;
+ UINTN Rear;
+ UINTN Count;
+ EFI_INPUT_KEY Q[MAX_Q];
+} GOP_QUEUE_FIXED;
+
+#define WIN_NT_GOP_CLASS_NAME L"WinNtGopWindow"
+
+#define GOP_PRIVATE_DATA_SIGNATURE EFI_SIGNATURE_32 ('S', 'g', 'o', 'N')
+
+#define GRAPHICS_OUTPUT_INVALIDE_MODE_NUMBER 0xffff
+
+typedef struct {
+ UINT32 HorizontalResolution;
+ UINT32 VerticalResolution;
+ UINT32 ColorDepth;
+ UINT32 RefreshRate;
+} GOP_MODE_DATA;
+
+typedef struct {
+ UINT64 Signature;
+
+ EFI_HANDLE Handle;
+ EFI_GRAPHICS_OUTPUT_PROTOCOL GraphicsOutput;
+ EFI_SIMPLE_TEXT_INPUT_PROTOCOL SimpleTextIn;
+
+ EFI_WIN_NT_THUNK_PROTOCOL *WinNtThunk;
+
+ EFI_UNICODE_STRING_TABLE *ControllerNameTable;
+
+ //
+ // GOP Private Data for QueryMode ()
+ //
+ GOP_MODE_DATA *ModeData;
+
+ //
+ // GOP Private Data knowing when to start hardware
+ //
+ BOOLEAN HardwareNeedsStarting;
+
+ CHAR16 *WindowName;
+ CHAR16 Buffer[160];
+
+ HANDLE ThreadInited; // Semaphore
+ HANDLE ThreadHandle; // Thread
+ DWORD ThreadId;
+
+ HWND WindowHandle;
+ WNDCLASSEX WindowsClass;
+
+ //
+ // This screen is used to redraw the scree when windows events happen. It's
+ // updated in the main thread and displayed in the windows thread.
+ //
+ BITMAPV4HEADER *VirtualScreenInfo;
+ RGBQUAD *VirtualScreen;
+
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL *FillLine;
+
+ //
+ // Keyboard Queue used by Simple Text In. WinProc thread adds, and main
+ // thread removes.
+ //
+ CRITICAL_SECTION QCriticalSection;
+ GOP_QUEUE_FIXED Queue;
+
+} 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)
+
+//
+// Global Protocol Variables
+//
+extern EFI_DRIVER_BINDING_PROTOCOL gWinNtGopDriverBinding;
+extern EFI_COMPONENT_NAME_PROTOCOL gWinNtGopComponentName;
+
+//
+// Gop Hardware abstraction internal worker functions
+//
+
+/**
+ TODO: Add function description
+
+ @param WinNtIo TODO: add argument description
+
+ @return TODO: add return values
+
+**/
+EFI_STATUS
+WinNtGopSupported (
+ IN EFI_WIN_NT_IO_PROTOCOL *WinNtIo
+ )
+;
+
+
+/**
+ TODO: Add function description
+
+ @param Private TODO: add argument description
+
+ @return TODO: add return values
+
+**/
+EFI_STATUS
+WinNtGopConstructor (
+ IN GOP_PRIVATE_DATA *Private
+ )
+;
+
+
+/**
+ TODO: Add function description
+
+ @param Private TODO: add argument description
+
+ @return TODO: add return values
+
+**/
+EFI_STATUS
+WinNtGopDestructor (
+ IN GOP_PRIVATE_DATA *Private
+ )
+;
+
+//
+// EFI 1.1 driver model prototypes for Win NT GOP
+//
+
+
+/**
+ TODO: Add function description
+
+ @param ImageHandle TODO: add argument description
+ @param SystemTable TODO: add argument description
+
+ @return TODO: add return values
+
+**/
+EFI_STATUS
+EFIAPI
+WinNtGopInitialize (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ )
+;
+
+
+/**
+ TODO: Add function description
+
+ @param This TODO: add argument description
+ @param Handle TODO: add argument description
+ @param RemainingDevicePath TODO: add argument description
+
+ @return TODO: add return values
+
+**/
+EFI_STATUS
+EFIAPI
+WinNtGopDriverBindingSupported (
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE Handle,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ )
+;
+
+
+/**
+ TODO: Add function description
+
+ @param This TODO: add argument description
+ @param Handle TODO: add argument description
+ @param RemainingDevicePath TODO: add argument description
+
+ @return TODO: add return values
+
+**/
+EFI_STATUS
+EFIAPI
+WinNtGopDriverBindingStart (
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE Handle,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ )
+;
+
+
+/**
+ TODO: Add function description
+
+ @param This TODO: add argument description
+ @param Handle TODO: add argument description
+ @param NumberOfChildren TODO: add argument description
+ @param ChildHandleBuffer TODO: add argument description
+
+ @return TODO: add return values
+
+**/
+EFI_STATUS
+EFIAPI
+WinNtGopDriverBindingStop (
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE Handle,
+ IN UINTN NumberOfChildren,
+ IN EFI_HANDLE *ChildHandleBuffer
+ )
+;
+
+
+/**
+ TODO: Add function description
+
+ @param Private TODO: add argument description
+ @param Key TODO: add argument description
+
+ @return TODO: add return values
+
+**/
+EFI_STATUS
+GopPrivateAddQ (
+ IN GOP_PRIVATE_DATA *Private,
+ IN EFI_INPUT_KEY Key
+ )
+;
+
+
+/**
+ TODO: Add function description
+
+ @param Private TODO: add argument description
+
+ @return TODO: add return values
+
+**/
+EFI_STATUS
+WinNtGopInitializeSimpleTextInForWindow (
+ IN GOP_PRIVATE_DATA *Private
+ )
+;
+
+
+/**
+ TODO: Add function description
+
+ @param Private TODO: add argument description
+
+ @return TODO: add return values
+
+**/
+EFI_STATUS
+WinNtGopDestroySimpleTextInForWindow (
+ IN GOP_PRIVATE_DATA *Private
+ )
+;
+
+
+/**
+ TODO: Add function description
+
+ @param String TODO: add argument description
+
+ @return TODO: add return values
+
+**/
+UINTN
+Atoi (
+ IN CHAR16 *String
+ )
+;
+
+#endif