3 Copyright (c) 2008 - 2011, Apple Inc. All rights reserved.<BR>
4 Copyright (c) 2011, Intel Corporation. All rights reserved.<BR>
6 This program and the accompanying materials
7 are licensed and made available under the terms and conditions of the BSD License
8 which accompanies this distribution. The full text of the license may be found at
9 http://opensource.org/licenses/bsd-license.php
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
20 // EMU_THUNK_PROTOCOL gaskets (EFIAPI to UNIX ABI)
24 GasketSecWriteStdErr (
26 IN UINTN NumberOfBytes
31 GasketSecPeCoffGetEntryPoint (
33 IN OUT VOID
**EntryPoint
38 GasketSecPeCoffRelocateImageExtraAction (
39 IN OUT PE_COFF_LOADER_IMAGE_CONTEXT
*ImageContext
44 GasketSecPeCoffUnloadImageExtraAction (
45 IN OUT PE_COFF_LOADER_IMAGE_CONTEXT
*ImageContext
52 IN EMU_SET_TIMER_CALLBACK CallBack
57 GasketSecEnableInterrupt (
63 GasketSecDisableInterrupt (
68 GasketQueryPerformanceFrequency (
73 GasketQueryPerformanceCounter (
81 IN UINT64 Milliseconds
94 OUT EFI_TIME_CAPABILITIES
*Capabilities OPTIONAL
105 GasketSecGetNextProtocol (
106 IN BOOLEAN EmuBusDriver
,
107 OUT EMU_IO_THUNK_PROTOCOL
**Instance OPTIONAL
111 // PPIs produced by SEC
116 GasketSecUnixPeiAutoScan (
118 OUT EFI_PHYSICAL_ADDRESS
*MemoryBase
,
119 OUT UINT64
*MemorySize
124 GasketSecEmuThunkAddress (
131 GasketSecUnixUnixFwhAddress (
132 IN OUT UINT64
*FwhSize
,
133 IN OUT EFI_PHYSICAL_ADDRESS
*FwhBase
139 // Reverse (UNIX to EFIAPI) gaskets
149 ReverseGasketUint64 (
155 ReverseGasketUint64Uint64 (
162 // Gasket functions for EFI_EMU_UGA_IO_PROTOCOL
169 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
177 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
183 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
189 GasketX11KeySetState (
190 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
191 EFI_KEY_TOGGLE_STATE
*KeyToggleState
196 GasketX11RegisterKeyNotify (
197 IN EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
198 IN EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK MakeCallBack
,
199 IN EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK BreakCallBack
,
207 IN EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindows
,
208 IN EFI_UGA_PIXEL
*BltBuffer OPTIONAL
,
209 IN EFI_UGA_BLT_OPERATION BltOperation
,
210 IN EMU_GRAPHICS_WINDOWS__BLT_ARGS
*Args
215 GasketX11CheckPointer (
216 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
221 GasketX11GetPointerState (
222 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
223 EFI_SIMPLE_POINTER_STATE
*state
228 GasketX11GraphicsWindowOpen (
229 IN EMU_IO_THUNK_PROTOCOL
*This
234 GasketX11GraphicsWindowClose (
235 IN EMU_IO_THUNK_PROTOCOL
*This
242 GasketPthreadMutexLock (
250 GasketPthreadMutexUnLock (
257 GasketPthreadMutexTryLock (
264 GasketPthreadMutexInit (
271 GasketPthreadMutexDestroy (
278 GasketPthreadCreate (
281 IN THREAD_THUNK_THREAD_ENTRY Start
,
301 IN EMU_IO_THUNK_PROTOCOL
*This
307 IN EMU_IO_THUNK_PROTOCOL
*This
315 GasketPosixOpenVolume (
316 IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL
*This
,
317 OUT EFI_FILE_PROTOCOL
**Root
322 GasketPosixFileOpen (
323 IN EFI_FILE_PROTOCOL
*This
,
324 OUT EFI_FILE_PROTOCOL
**NewHandle
,
332 GasketPosixFileCLose (
333 IN EFI_FILE_PROTOCOL
*This
338 GasketPosixFileDelete (
339 IN EFI_FILE_PROTOCOL
*This
344 GasketPosixFileRead (
345 IN EFI_FILE_PROTOCOL
*This
,
346 IN OUT UINTN
*BufferSize
,
352 GasketPosixFileWrite (
353 IN EFI_FILE_PROTOCOL
*This
,
354 IN OUT UINTN
*BufferSize
,
360 GasketPosixFileSetPossition (
361 IN EFI_FILE_PROTOCOL
*This
,
367 GasketPosixFileGetPossition (
368 IN EFI_FILE_PROTOCOL
*This
,
374 GasketPosixFileGetInfo (
375 IN EFI_FILE_PROTOCOL
*This
,
376 IN EFI_GUID
*InformationType
,
377 IN OUT UINTN
*BufferSize
,
383 GasketPosixFileSetInfo (
384 IN EFI_FILE_PROTOCOL
*This
,
385 IN EFI_GUID
*InformationType
,
392 GasketPosixFileFlush (
393 IN EFI_FILE_PROTOCOL
*This
398 GasketPosixFileSystmeThunkOpen (
399 IN EMU_IO_THUNK_PROTOCOL
*This
404 GasketPosixFileSystmeThunkClose (
405 IN EMU_IO_THUNK_PROTOCOL
*This
410 GasketEmuBlockIoReset (
411 IN EMU_BLOCK_IO_PROTOCOL
*This
,
412 IN BOOLEAN ExtendedVerification
416 GasketEmuBlockIoReadBlocks (
417 IN EMU_BLOCK_IO_PROTOCOL
*This
,
420 IN OUT EFI_BLOCK_IO2_TOKEN
*Token
,
427 GasketEmuBlockIoWriteBlocks (
428 IN EMU_BLOCK_IO_PROTOCOL
*This
,
431 IN OUT EFI_BLOCK_IO2_TOKEN
*Token
,
437 GasketEmuBlockIoFlushBlocks (
438 IN EMU_BLOCK_IO_PROTOCOL
*This
,
439 IN OUT EFI_BLOCK_IO2_TOKEN
*Token
443 GasketEmuBlockIoCreateMapping (
444 IN EMU_BLOCK_IO_PROTOCOL
*This
,
445 IN EFI_BLOCK_IO_MEDIA
*Media
450 GasketBlockIoThunkOpen (
451 IN EMU_IO_THUNK_PROTOCOL
*This
456 GasketBlockIoThunkClose (
457 IN EMU_IO_THUNK_PROTOCOL
*This