/** @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
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
IN UINT32 RefreshRate\r
);\r
\r
-STATIC\r
VOID\r
EFIAPI\r
KillNtGopThread (\r
IN VOID *Context\r
);\r
\r
-STATIC\r
VOID\r
WinNtGopConvertParamToEfiKeyShiftState (\r
IN GOP_PRIVATE_DATA *Private,\r
}\r
}\r
\r
-STATIC\r
VOID\r
WinNtGopConvertParamToEfiKey (\r
IN GOP_PRIVATE_DATA *Private,\r
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
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
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
\r
if (Key.ScanCode != 0) {\r
Key.UnicodeChar = 0;\r
- GopPrivateAddQ (Private, Key);\r
+ GopPrivateAddKey (Private, Key);\r
}\r
\r
return 0;\r
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
if (wParam != 0) {\r
Key.UnicodeChar = (CHAR16) wParam;\r
Key.ScanCode = 0;\r
- GopPrivateAddQ (Private, Key);\r
+ GopPrivateAddKey (Private, Key);\r
}\r
}\r
\r
{\r
MSG Message;\r
GOP_PRIVATE_DATA *Private;\r
- ATOM Atom;\r
RECT Rect;\r
\r
Private = (GOP_PRIVATE_DATA *) lpParameter;\r
// 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
NULL,\r
NULL,\r
NULL,\r
- &Private\r
+ (VOID **)&Private\r
);\r
\r
//\r
//\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
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
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
@return None.\r
\r
**/\r
-STATIC\r
VOID\r
EFIAPI\r
KillNtGopThread (\r
IN VOID *Context\r
)\r
{\r
- EFI_STATUS Status;\r
- Status = WinNtGopDestructor (Context);\r
+ WinNtGopDestructor (Context);\r
}\r