]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Nt32Pkg/WinNtGopDxe/WinNtGop.h
Replace references to RFC 3066 with RFC 4646.
[mirror_edk2.git] / Nt32Pkg / WinNtGopDxe / WinNtGop.h
index 74cfe41e15c3ccc0f667821471f76d73467a8b55..a13b48c88e3c9b3b19fff1ee37650b88ac3e768b 100644 (file)
@@ -23,23 +23,40 @@ Abstract:
 #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
+#include <Uefi.h>\r
+#include <WinNtDxe.h>\r
+\r
+#include <Guid/EventGroup.h>\r
+#include <Protocol/WinNtIo.h>\r
+#include <Protocol/ComponentName.h>\r
+#include <Protocol/SimpleTextIn.h>\r
+#include <Protocol/SimpleTextInEx.h>\r
+#include <Protocol/DriverBinding.h>\r
+#include <Protocol/GraphicsOutput.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/UefiBootServicesTableLib.h>\r
+#include <Library/MemoryAllocationLib.h>\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
+// WM_SYSKEYDOWN/WM_SYSKEYUP Notification\r
+// lParam\r
+// bit 24: Specifies whether the key is an extended key, \r
+// such as the right-hand ALT and CTRL keys that appear on \r
+// an enhanced 101- or 102-key keyboard. \r
+// The value is 1 if it is an extended key; otherwise, it is 0.\r
+// bit 29:Specifies the context code. \r
+// The value is 1 if the ALT key is down while the key is pressed/released; \r
+// it is 0 if the WM_SYSKEYDOWN message is posted to the active window \r
+// because no window has the keyboard focus.\r
+#define GOP_EXTENDED_KEY         (0x1 << 24)\r
+#define GOP_ALT_KEY_PRESSED      (0x1 << 29)\r
+\r
 \r
 #define MAX_Q 256\r
 \r
@@ -52,7 +69,17 @@ typedef struct {
 \r
 #define WIN_NT_GOP_CLASS_NAME       L"WinNtGopWindow"\r
 \r
-#define GOP_PRIVATE_DATA_SIGNATURE  EFI_SIGNATURE_32 ('S', 'g', 'o', 'N')\r
+#define GOP_PRIVATE_DATA_SIGNATURE  SIGNATURE_32 ('S', 'g', 'o', 'N')\r
+\r
+#define WIN_NT_GOP_SIMPLE_TEXTIN_EX_NOTIFY_SIGNATURE SIGNATURE_32 ('W', 'g', 'S', 'n')\r
+\r
+typedef struct _WIN_NT_GOP_SIMPLE_TEXTIN_EX_NOTIFY {\r
+  UINTN                                 Signature;\r
+  EFI_HANDLE                            NotifyHandle;\r
+  EFI_KEY_DATA                          KeyData;\r
+  EFI_KEY_NOTIFY_FUNCTION               KeyNotificationFn;\r
+  LIST_ENTRY                            NotifyEntry;\r
+} WIN_NT_GOP_SIMPLE_TEXTIN_EX_NOTIFY;\r
 \r
 #define GRAPHICS_OUTPUT_INVALIDE_MODE_NUMBER 0xffff\r
 \r
@@ -110,6 +137,22 @@ typedef struct {
   CRITICAL_SECTION              QCriticalSection;\r
   GOP_QUEUE_FIXED               Queue;\r
 \r
+  EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL SimpleTextInEx;\r
+  EFI_KEY_STATE                     KeyState;\r
+  LIST_ENTRY                        NotifyList;\r
+  BOOLEAN                           LeftShift;\r
+  BOOLEAN                           RightShift;  \r
+  BOOLEAN                           LeftAlt;\r
+  BOOLEAN                           RightAlt;\r
+  BOOLEAN                           LeftCtrl;\r
+  BOOLEAN                           RightCtrl;\r
+  BOOLEAN                           LeftLogo;\r
+  BOOLEAN                           RightLogo;\r
+  BOOLEAN                           Menu;\r
+  BOOLEAN                           SysReq;  \r
+  BOOLEAN                           NumLock;\r
+  BOOLEAN                           ScrollLock;\r
+  BOOLEAN                           CapsLock;  \r
 } GOP_PRIVATE_DATA;\r
 \r
 #define GOP_PRIVATE_DATA_FROM_THIS(a)  \\r
@@ -118,11 +161,16 @@ typedef struct {
 #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
 //\r
 // Global Protocol Variables\r
 //\r
-extern EFI_DRIVER_BINDING_PROTOCOL  gWinNtGopDriverBinding;\r
-extern EFI_COMPONENT_NAME_PROTOCOL  gWinNtGopComponentName;\r
+extern EFI_DRIVER_BINDING_PROTOCOL   gWinNtGopDriverBinding;\r
+extern EFI_COMPONENT_NAME_PROTOCOL   gWinNtGopComponentName;\r
+extern EFI_COMPONENT_NAME2_PROTOCOL  gWinNtGopComponentName2;\r
+\r
 \r
 //\r
 // Gop Hardware abstraction internal worker functions\r
@@ -139,8 +187,7 @@ extern EFI_COMPONENT_NAME_PROTOCOL  gWinNtGopComponentName;
 EFI_STATUS\r
 WinNtGopSupported (\r
   IN  EFI_WIN_NT_IO_PROTOCOL  *WinNtIo\r
-  )\r
-;\r
+  );\r
 \r
 \r
 /**\r
@@ -154,8 +201,7 @@ WinNtGopSupported (
 EFI_STATUS\r
 WinNtGopConstructor (\r
   IN  GOP_PRIVATE_DATA    *Private\r
-  )\r
-;\r
+  );\r
 \r
 \r
 /**\r
@@ -169,11 +215,10 @@ WinNtGopConstructor (
 EFI_STATUS\r
 WinNtGopDestructor (\r
   IN  GOP_PRIVATE_DATA    *Private\r
-  )\r
-;\r
+  );\r
 \r
 //\r
-// EFI 1.1 driver model prototypes for Win NT GOP\r
+// UEFI 2.0 driver model prototypes for Win NT GOP\r
 //\r
 \r
 \r
@@ -191,8 +236,7 @@ EFIAPI
 WinNtGopInitialize (\r
   IN EFI_HANDLE            ImageHandle,\r
   IN EFI_SYSTEM_TABLE      *SystemTable\r
-  )\r
-;\r
+  );\r
 \r
 \r
 /**\r
@@ -211,8 +255,7 @@ WinNtGopDriverBindingSupported (
   IN  EFI_DRIVER_BINDING_PROTOCOL     *This,\r
   IN  EFI_HANDLE                      Handle,\r
   IN  EFI_DEVICE_PATH_PROTOCOL        *RemainingDevicePath\r
-  )\r
-;\r
+  );\r
 \r
 \r
 /**\r
@@ -231,8 +274,7 @@ WinNtGopDriverBindingStart (
   IN  EFI_DRIVER_BINDING_PROTOCOL     *This,\r
   IN  EFI_HANDLE                      Handle,\r
   IN  EFI_DEVICE_PATH_PROTOCOL        *RemainingDevicePath\r
-  )\r
-;\r
+  );\r
 \r
 \r
 /**\r
@@ -253,8 +295,7 @@ WinNtGopDriverBindingStop (
   IN  EFI_HANDLE                   Handle,\r
   IN  UINTN                        NumberOfChildren,\r
   IN  EFI_HANDLE                   *ChildHandleBuffer\r
-  )\r
-;\r
+  );\r
 \r
 \r
 /**\r
@@ -270,8 +311,7 @@ EFI_STATUS
 GopPrivateAddQ (\r
   IN  GOP_PRIVATE_DATA    *Private,\r
   IN  EFI_INPUT_KEY       Key\r
-  )\r
-;\r
+  );\r
 \r
 \r
 /**\r
@@ -285,8 +325,7 @@ GopPrivateAddQ (
 EFI_STATUS\r
 WinNtGopInitializeSimpleTextInForWindow (\r
   IN  GOP_PRIVATE_DATA    *Private\r
-  )\r
-;\r
+  );\r
 \r
 \r
 /**\r
@@ -300,22 +339,8 @@ WinNtGopInitializeSimpleTextInForWindow (
 EFI_STATUS\r
 WinNtGopDestroySimpleTextInForWindow (\r
   IN  GOP_PRIVATE_DATA    *Private\r
-  )\r
-;\r
+  );\r
 \r
 \r
-/**\r
-  TODO: Add function description\r
-\r
-  @param  String               TODO: add argument description\r
-\r
-  @return TODO: add return values\r
-\r
-**/\r
-UINTN\r
-Atoi (\r
-  IN  CHAR16  *String\r
-  )\r
-;\r
 \r
 #endif\r