]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Nt32Pkg/WinNtGopDxe/WinNtGopScreen.c
IntelFrameworkModulePkg: Add AcpiS3SaveDxe driver
[mirror_edk2.git] / Nt32Pkg / WinNtGopDxe / WinNtGopScreen.c
index f663f3243ba080f9a92809eaf46f0e0df47658f9..f9f2e0dd0cdfdcb3a56d52109520ef9a154cf2ce 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright (c) 2006 - 2007, Intel Corporation\r
-All rights reserved. This program and the accompanying materials\r
+Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>\r
+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
@@ -27,7 +27,7 @@ Abstract:
 EFI_WIN_NT_THUNK_PROTOCOL *mWinNt;\r
 DWORD                     mTlsIndex         = TLS_OUT_OF_INDEXES;\r
 DWORD                     mTlsIndexUseCount = 0;  // lets us know when we can free mTlsIndex.\r
-static EFI_EVENT          mGopScreenExitBootServicesEvent;\r
+EFI_EVENT          mGopScreenExitBootServicesEvent;\r
 GOP_MODE_DATA mGopModeData[] = {\r
     {800, 600, 0, 0},\r
     {640, 480, 0, 0},\r
@@ -45,7 +45,6 @@ WinNtGopStartWindow (
   IN  UINT32              RefreshRate\r
   );\r
 \r
-STATIC\r
 VOID\r
 EFIAPI\r
 KillNtGopThread (\r
@@ -53,7 +52,6 @@ KillNtGopThread (
   IN VOID       *Context\r
   );\r
 \r
-STATIC\r
 VOID\r
 WinNtGopConvertParamToEfiKeyShiftState (\r
   IN  GOP_PRIVATE_DATA  *Private,\r
@@ -93,7 +91,6 @@ WinNtGopConvertParamToEfiKeyShiftState (
   }\r
 }\r
 \r
-STATIC\r
 VOID\r
 WinNtGopConvertParamToEfiKey (\r
   IN  GOP_PRIVATE_DATA  *Private,\r
@@ -138,18 +135,19 @@ WinNtGopConvertParamToEfiKey (
   case VK_F22:        Key->ScanCode = SCAN_F22;        break;\r
   case VK_F23:        Key->ScanCode = SCAN_F23;        break;\r
   case VK_F24:        Key->ScanCode = SCAN_F24;        break;\r
+  case VK_PAUSE:      Key->ScanCode = SCAN_PAUSE;      break;\r
 \r
   //\r
   // Set toggle state\r
   //    \r
   case VK_NUMLOCK:     \r
-    Private->NumLock    = !Private->NumLock;\r
+    Private->NumLock    = (BOOLEAN)(!Private->NumLock);\r
     break;\r
   case VK_SCROLL:\r
-    Private->ScrollLock = !Private->ScrollLock;\r
+    Private->ScrollLock = (BOOLEAN)(!Private->ScrollLock);\r
     break;  \r
   case VK_CAPITAL:\r
-    Private->CapsLock   = !Private->CapsLock;\r
+    Private->CapsLock   = (BOOLEAN)(!Private->CapsLock);\r
     break;  \r
   }\r
   \r
@@ -249,10 +247,6 @@ WinNtGopSetMode (
     return EFI_UNSUPPORTED;\r
   }\r
 \r
-  if (ModeNumber == This->Mode->Mode) {\r
-    return EFI_SUCCESS;\r
-  }\r
-\r
   ModeData = &Private->ModeData[ModeNumber];\r
   This->Mode->Mode = ModeNumber;\r
   Private->GraphicsOutput.Mode->Info->HorizontalResolution = ModeData->HorizontalResolution;\r
@@ -704,7 +698,7 @@ WinNtGopThreadWindowProc (
     case VK_F10:\r
       Key.ScanCode    = SCAN_F10;\r
       Key.UnicodeChar = 0;\r
-      GopPrivateAddQ (Private, Key);\r
+      GopPrivateAddKey (Private, Key);\r
       return 0;\r
     }\r
 \r
@@ -727,7 +721,7 @@ WinNtGopThreadWindowProc (
 \r
     if (Key.ScanCode != 0) {\r
       Key.UnicodeChar = 0;\r
-      GopPrivateAddQ (Private, Key);\r
+      GopPrivateAddKey (Private, Key);\r
     }\r
 \r
     return 0;\r
@@ -756,7 +750,7 @@ WinNtGopThreadWindowProc (
     WinNtGopConvertParamToEfiKey (Private, &wParam, &Key);\r
     if (Key.ScanCode != 0) {\r
       Key.UnicodeChar = 0;\r
-      GopPrivateAddQ (Private, Key);\r
+      GopPrivateAddKey (Private, Key);\r
     }\r
 \r
     return 0;\r
@@ -777,7 +771,7 @@ WinNtGopThreadWindowProc (
       if (wParam != 0) {\r
         Key.UnicodeChar = (CHAR16) wParam;\r
         Key.ScanCode    = 0;\r
-        GopPrivateAddQ (Private, Key);\r
+        GopPrivateAddKey (Private, Key);\r
       }\r
     }\r
 \r
@@ -828,7 +822,6 @@ WinNtGopThreadWinMain (
 {\r
   MSG               Message;\r
   GOP_PRIVATE_DATA  *Private;\r
-  ATOM              Atom;\r
   RECT              Rect;\r
 \r
   Private = (GOP_PRIVATE_DATA *) lpParameter;\r
@@ -864,7 +857,7 @@ WinNtGopThreadWinMain (
   // Class, including the callback function, unless the Class is unregistered and\r
   // successfully registered again.\r
   //\r
-  Atom = Private->WinNtThunk->RegisterClassEx (&Private->WindowsClass);\r
+  Private->WinNtThunk->RegisterClassEx (&Private->WindowsClass);\r
 \r
   //\r
   // Setting Rect values to allow for the AdjustWindowRect to provide\r
@@ -889,7 +882,7 @@ WinNtGopThreadWinMain (
                                                 NULL,\r
                                                 NULL,\r
                                                 NULL,\r
-                                                &Private\r
+                                                (VOID **)&Private\r
                                                 );\r
 \r
   //\r
@@ -961,11 +954,12 @@ WinNtGopStartWindow (
   //\r
   // Register to be notified on exit boot services so we can destroy the window.\r
   //\r
-  Status = gBS->CreateEvent (\r
-                  EVT_SIGNAL_EXIT_BOOT_SERVICES,\r
+  Status = gBS->CreateEventEx (\r
+                  EVT_NOTIFY_SIGNAL,\r
                   TPL_CALLBACK,\r
                   KillNtGopThread,\r
                   Private,\r
+                  &gEfiEventExitBootServicesGuid,\r
                   &mGopScreenExitBootServicesEvent\r
                   );\r
 \r
@@ -1056,8 +1050,6 @@ WinNtGopDestructor (
   GOP_PRIVATE_DATA     *Private\r
   )\r
 {\r
-  UINT32  UnregisterReturn;\r
-\r
   if (!Private->HardwareNeedsStarting) {\r
     //\r
     // BugBug: Shutdown GOP Hardware and any child devices.\r
@@ -1077,10 +1069,10 @@ WinNtGopDestructor (
       Private->WinNtThunk->TlsFree (mTlsIndex);\r
       mTlsIndex = TLS_OUT_OF_INDEXES;\r
 \r
-      UnregisterReturn = Private->WinNtThunk->UnregisterClass (\r
-                                                Private->WindowsClass.lpszClassName,\r
-                                                Private->WindowsClass.hInstance\r
-                                                );\r
+      Private->WinNtThunk->UnregisterClass (\r
+                              Private->WindowsClass.lpszClassName,\r
+                              Private->WindowsClass.hInstance\r
+                              );\r
     }\r
 \r
     WinNtGopDestroySimpleTextInForWindow (Private);\r
@@ -1110,7 +1102,6 @@ WinNtGopDestructor (
   @return None.\r
 \r
 **/\r
-STATIC\r
 VOID\r
 EFIAPI\r
 KillNtGopThread (\r
@@ -1118,6 +1109,5 @@ KillNtGopThread (
   IN VOID       *Context\r
   )\r
 {\r
-  EFI_STATUS  Status;\r
-  Status = WinNtGopDestructor (Context);\r
+  WinNtGopDestructor (Context);\r
 }\r