3 Copyright (c) 2008 - 2011, Apple Inc. All rights reserved.<BR>
5 This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
19 // EMU_THUNK_PROTOCOL gaskets (EFIAPI to UNIX ABI)
23 GasketSecWriteStdErr (
25 IN UINTN NumberOfBytes
30 GasketSecPeCoffGetEntryPoint (
32 IN OUT VOID
**EntryPoint
37 GasketSecPeCoffRelocateImageExtraAction (
38 IN OUT PE_COFF_LOADER_IMAGE_CONTEXT
*ImageContext
43 GasketSecPeCoffUnloadImageExtraAction (
44 IN OUT PE_COFF_LOADER_IMAGE_CONTEXT
*ImageContext
51 IN EMU_SET_TIMER_CALLBACK CallBack
56 GasketSecEnableInterrupt (
62 GasketSecDisableInterrupt (
67 GasketQueryPerformanceFrequency (
72 GasketQueryPerformanceCounter (
80 IN UINT64 Milliseconds
93 OUT EFI_TIME_CAPABILITIES
*Capabilities OPTIONAL
104 GasketSecGetNextProtocol (
105 IN BOOLEAN EmuBusDriver
,
106 OUT EMU_IO_THUNK_PROTOCOL
**Instance OPTIONAL
110 // PPIs produced by SEC
115 GasketSecUnixPeiLoadFile (
117 IN EFI_PHYSICAL_ADDRESS
*ImageAddress
,
118 IN UINT64
*ImageSize
,
119 OUT EFI_PHYSICAL_ADDRESS
*EntryPoint
124 GasketSecUnixPeiAutoScan (
126 OUT EFI_PHYSICAL_ADDRESS
*MemoryBase
,
127 OUT UINT64
*MemorySize
132 GasketSecEmuThunkAddress (
139 GasketSecUnixUnixFwhAddress (
140 IN OUT UINT64
*FwhSize
,
141 IN OUT EFI_PHYSICAL_ADDRESS
*FwhBase
147 // Reverse (UNIX to EFIAPI) gaskets
157 ReverseGasketUint64 (
163 ReverseGasketUint64Uint64 (
170 // Gasket functions for EFI_EMU_UGA_IO_PROTOCOL
177 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
185 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
191 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
197 GasketX11KeySetState (
198 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
199 EFI_KEY_TOGGLE_STATE
*KeyToggleState
204 GasketX11RegisterKeyNotify (
205 IN EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
206 IN EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK MakeCallBack
,
207 IN EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK BreakCallBack
,
215 IN EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindows
,
216 IN EFI_UGA_PIXEL
*BltBuffer OPTIONAL
,
217 IN EFI_UGA_BLT_OPERATION BltOperation
,
218 IN EMU_GRAPHICS_WINDOWS__BLT_ARGS
*Args
223 GasketX11CheckPointer (
224 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
229 GasketX11GetPointerState (
230 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
231 EFI_SIMPLE_POINTER_STATE
*state
236 GasketX11GraphicsWindowOpen (
237 IN EMU_IO_THUNK_PROTOCOL
*This
242 GasketX11GraphicsWindowClose (
243 IN EMU_IO_THUNK_PROTOCOL
*This
250 GasketPthreadMutexLock (
258 GasketPthreadMutexUnLock (
265 GasketPthreadMutexTryLock (
272 GasketPthreadMutexInit (
279 GasketPthreadMutexDestroy (
286 GasketPthreadCreate (
289 IN PTREAD_THUNK_THEAD_ENTRY Start
,
309 IN EMU_IO_THUNK_PROTOCOL
*This
315 IN EMU_IO_THUNK_PROTOCOL
*This
323 GasketPosixOpenVolume (
324 IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL
*This
,
325 OUT EFI_FILE_PROTOCOL
**Root
330 GasketPosixFileOpen (
331 IN EFI_FILE_PROTOCOL
*This
,
332 OUT EFI_FILE_PROTOCOL
**NewHandle
,
340 GasketPosixFileCLose (
341 IN EFI_FILE_PROTOCOL
*This
346 GasketPosixFileDelete (
347 IN EFI_FILE_PROTOCOL
*This
352 GasketPosixFileRead (
353 IN EFI_FILE_PROTOCOL
*This
,
354 IN OUT UINTN
*BufferSize
,
360 GasketPosixFileWrite (
361 IN EFI_FILE_PROTOCOL
*This
,
362 IN OUT UINTN
*BufferSize
,
368 GasketPosixFileSetPossition (
369 IN EFI_FILE_PROTOCOL
*This
,
375 GasketPosixFileGetPossition (
376 IN EFI_FILE_PROTOCOL
*This
,
382 GasketPosixFileGetInfo (
383 IN EFI_FILE_PROTOCOL
*This
,
384 IN EFI_GUID
*InformationType
,
385 IN OUT UINTN
*BufferSize
,
391 GasketPosixFileSetInfo (
392 IN EFI_FILE_PROTOCOL
*This
,
393 IN EFI_GUID
*InformationType
,
400 GasketPosixFileFlush (
401 IN EFI_FILE_PROTOCOL
*This
406 GasketPosixFileSystmeThunkOpen (
407 IN EMU_IO_THUNK_PROTOCOL
*This
412 GasketPosixFileSystmeThunkClose (
413 IN EMU_IO_THUNK_PROTOCOL
*This