]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Nt32Pkg/WinNtGopDxe/WinNtGopScreen.c
Fix bug in UncachedMemoryAllocationLib, Assembler, make DefaultExceptionHandler lib...
[mirror_edk2.git] / Nt32Pkg / WinNtGopDxe / WinNtGopScreen.c
index 58ddb1c6568e7d4cdc30f498d4d4ab76bb02450a..1fa6223b86f6667494b7d77658b8dbe3fbc79aa7 100644 (file)
@@ -1,6 +1,6 @@
 /** @file\r
 \r
-Copyright (c) 2006 - 2007, Intel Corporation\r
+Copyright (c) 2006 - 2009, 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
@@ -16,7 +16,7 @@ Module Name:
 Abstract:\r
 \r
   This file produces the graphics abstration of GOP. It is called by\r
-  WinNtGopDriver.c file which deals with the EFI 1.1 driver model.\r
+  WinNtGopDriver.c file which deals with the UEFI 2.0 driver model.\r
   This file just does graphics.\r
 \r
 \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
@@ -143,13 +140,13 @@ WinNtGopConvertParamToEfiKey (
   // 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 +246,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
@@ -828,7 +821,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 +856,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 +881,7 @@ WinNtGopThreadWinMain (
                                                 NULL,\r
                                                 NULL,\r
                                                 NULL,\r
-                                                &Private\r
+                                                (VOID **)&Private\r
                                                 );\r
 \r
   //\r
@@ -961,11 +953,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
@@ -1031,7 +1024,7 @@ WinNtGopConstructor (
   Private->GraphicsOutput.Mode->Info->VerticalResolution = 0;\r
   Private->GraphicsOutput.Mode->Info->PixelFormat = PixelBltOnly;\r
   Private->GraphicsOutput.Mode->SizeOfInfo = sizeof (EFI_GRAPHICS_OUTPUT_MODE_INFORMATION);\r
-  Private->GraphicsOutput.Mode->FrameBufferBase = (EFI_PHYSICAL_ADDRESS) NULL;\r
+  Private->GraphicsOutput.Mode->FrameBufferBase = (EFI_PHYSICAL_ADDRESS) (UINTN) NULL;\r
   Private->GraphicsOutput.Mode->FrameBufferSize = 0;\r
 \r
   Private->HardwareNeedsStarting  = TRUE;\r
@@ -1056,8 +1049,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 +1068,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 +1101,6 @@ WinNtGopDestructor (
   @return None.\r
 \r
 **/\r
-STATIC\r
 VOID\r
 EFIAPI\r
 KillNtGopThread (\r
@@ -1118,6 +1108,5 @@ KillNtGopThread (
   IN VOID       *Context\r
   )\r
 {\r
-  EFI_STATUS  Status;\r
-  Status = WinNtGopDestructor (Context);\r
+  WinNtGopDestructor (Context);\r
 }\r