3 Copyright (c) 2006, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
18 Private data for the Uga driver that is bound to the WinNt Thunk protocol
22 #ifndef _WIN_NT_UGA_H_
23 #define _WIN_NT_UGA_H_
33 EFI_INPUT_KEY Q
[MAX_Q
];
36 #define WIN_NT_UGA_CLASS_NAME L"WinNtUgaWindow"
38 #define UGA_PRIVATE_DATA_SIGNATURE EFI_SIGNATURE_32 ('S', 'g', 'o', 'N')
43 EFI_UGA_DRAW_PROTOCOL UgaDraw
;
44 EFI_SIMPLE_TEXT_IN_PROTOCOL SimpleTextIn
;
46 EFI_WIN_NT_THUNK_PROTOCOL
*WinNtThunk
;
48 EFI_UNICODE_STRING_TABLE
*ControllerNameTable
;
51 // UGA Private Data for GetMode ()
53 UINT32 HorizontalResolution
;
54 UINT32 VerticalResolution
;
59 // UGA Private Data knowing when to start hardware
61 BOOLEAN HardwareNeedsStarting
;
66 HANDLE ThreadInited
; // Semaphore
67 HANDLE ThreadHandle
; // Thread
71 WNDCLASSEX WindowsClass
;
74 // This screen is used to redraw the scree when windows events happen. It's
75 // updated in the main thread and displayed in the windows thread.
77 BITMAPV4HEADER
*VirtualScreenInfo
;
78 RGBQUAD
*VirtualScreen
;
80 EFI_UGA_PIXEL
*FillLine
;
83 // Keyboard Queue used by Simple Text In. WinProc thread adds, and main
86 CRITICAL_SECTION QCriticalSection
;
87 UGA_QUEUE_FIXED Queue
;
91 #define UGA_DRAW_PRIVATE_DATA_FROM_THIS(a) \
92 CR(a, UGA_PRIVATE_DATA, UgaDraw, UGA_PRIVATE_DATA_SIGNATURE)
94 #define UGA_PRIVATE_DATA_FROM_TEXT_IN_THIS(a) \
95 CR(a, UGA_PRIVATE_DATA, SimpleTextIn, UGA_PRIVATE_DATA_SIGNATURE)
98 // Global Protocol Variables
100 extern EFI_DRIVER_BINDING_PROTOCOL gWinNtUgaDriverBinding
;
101 extern EFI_COMPONENT_NAME_PROTOCOL gWinNtUgaComponentName
;
104 // Uga Hardware abstraction internal worker functions
108 IN EFI_WIN_NT_IO_PROTOCOL
*WinNtIo
114 TODO: Add function description
118 WinNtIo - TODO: add argument description
122 TODO: add return values
128 WinNtUgaConstructor (
129 IN UGA_PRIVATE_DATA
*Private
135 TODO: Add function description
139 Private - TODO: add argument description
143 TODO: add return values
150 IN UGA_PRIVATE_DATA
*Private
156 TODO: Add function description
160 Private - TODO: add argument description
164 TODO: add return values
170 // EFI 1.1 driver model prototypes for Win NT UGA
176 IN EFI_HANDLE ImageHandle
,
177 IN EFI_SYSTEM_TABLE
*SystemTable
183 TODO: Add function description
187 ImageHandle - TODO: add argument description
188 SystemTable - TODO: add argument description
192 TODO: add return values
199 WinNtUgaDriverBindingSupported (
200 IN EFI_DRIVER_BINDING_PROTOCOL
*This
,
201 IN EFI_HANDLE Handle
,
202 IN EFI_DEVICE_PATH_PROTOCOL
*RemainingDevicePath
208 TODO: Add function description
212 This - TODO: add argument description
213 Handle - TODO: add argument description
214 RemainingDevicePath - TODO: add argument description
218 TODO: add return values
225 WinNtUgaDriverBindingStart (
226 IN EFI_DRIVER_BINDING_PROTOCOL
*This
,
227 IN EFI_HANDLE Handle
,
228 IN EFI_DEVICE_PATH_PROTOCOL
*RemainingDevicePath
234 TODO: Add function description
238 This - TODO: add argument description
239 Handle - TODO: add argument description
240 RemainingDevicePath - TODO: add argument description
244 TODO: add return values
251 WinNtUgaDriverBindingStop (
252 IN EFI_DRIVER_BINDING_PROTOCOL
*This
,
253 IN EFI_HANDLE Handle
,
254 IN UINTN NumberOfChildren
,
255 IN EFI_HANDLE
*ChildHandleBuffer
261 TODO: Add function description
265 This - TODO: add argument description
266 Handle - TODO: add argument description
267 NumberOfChildren - TODO: add argument description
268 ChildHandleBuffer - TODO: add argument description
272 TODO: add return values
279 IN UGA_PRIVATE_DATA
*Private
,
286 TODO: Add function description
290 Private - TODO: add argument description
291 Key - TODO: add argument description
295 TODO: add return values
301 WinNtUgaInitializeSimpleTextInForWindow (
302 IN UGA_PRIVATE_DATA
*Private
308 TODO: Add function description
312 Private - TODO: add argument description
316 TODO: add return values
322 WinNtUgaDestroySimpleTextInForWindow (
323 IN UGA_PRIVATE_DATA
*Private
329 TODO: Add function description
333 Private - TODO: add argument description
337 TODO: add return values
350 TODO: Add function description
354 String - TODO: add argument description
358 TODO: add return values