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)
25 GasketSecWriteStdErr (
27 IN UINTN NumberOfBytes
32 GasketSecConfigStdIn (
38 GasketSecWriteStdOut (
40 IN UINTN NumberOfBytes
47 IN UINTN NumberOfBytes
60 GasketSecPeCoffGetEntryPoint (
62 IN OUT VOID
**EntryPoint
67 GasketSecPeCoffRelocateImageExtraAction (
68 IN OUT PE_COFF_LOADER_IMAGE_CONTEXT
*ImageContext
73 GasketSecPeCoffUnloadImageExtraAction (
74 IN OUT PE_COFF_LOADER_IMAGE_CONTEXT
*ImageContext
81 IN EMU_SET_TIMER_CALLBACK CallBack
86 GasketSecEnableInterrupt (
92 GasketSecDisableInterrupt (
98 GasketQueryPerformanceFrequency (
104 GasketQueryPerformanceCounter (
112 IN UINT64 Nanoseconds
131 OUT EFI_TIME_CAPABILITIES
*Capabilities OPTIONAL
142 GasketSecGetNextProtocol (
143 IN BOOLEAN EmuBusDriver
,
144 OUT EMU_IO_THUNK_PROTOCOL
**Instance OPTIONAL
148 // PPIs produced by SEC
153 GasketSecUnixPeiAutoScan (
155 OUT EFI_PHYSICAL_ADDRESS
*MemoryBase
,
156 OUT UINT64
*MemorySize
161 GasketSecEmuThunkAddress (
168 GasketSecUnixUnixFwhAddress (
169 IN OUT UINT64
*FwhSize
,
170 IN OUT EFI_PHYSICAL_ADDRESS
*FwhBase
176 // Reverse (UNIX to EFIAPI) gaskets
181 (EFIAPI
*CALL_BACK
) (
186 ReverseGasketUint64 (
192 ReverseGasketUint64Uint64 (
199 // Gasket functions for EFI_EMU_UGA_IO_PROTOCOL
206 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
214 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
220 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
226 GasketX11KeySetState (
227 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
228 EFI_KEY_TOGGLE_STATE
*KeyToggleState
233 GasketX11RegisterKeyNotify (
234 IN EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
235 IN EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK MakeCallBack
,
236 IN EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK BreakCallBack
,
244 IN EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindows
,
245 IN EFI_UGA_PIXEL
*BltBuffer OPTIONAL
,
246 IN EFI_UGA_BLT_OPERATION BltOperation
,
247 IN EMU_GRAPHICS_WINDOWS__BLT_ARGS
*Args
252 GasketX11CheckPointer (
253 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
258 GasketX11GetPointerState (
259 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
260 EFI_SIMPLE_POINTER_STATE
*state
265 GasketX11GraphicsWindowOpen (
266 IN EMU_IO_THUNK_PROTOCOL
*This
271 GasketX11GraphicsWindowClose (
272 IN EMU_IO_THUNK_PROTOCOL
*This
279 GasketPthreadMutexLock (
287 GasketPthreadMutexUnLock (
294 GasketPthreadMutexTryLock (
301 GasketPthreadMutexInit (
308 GasketPthreadMutexDestroy (
315 GasketPthreadCreate (
318 IN THREAD_THUNK_THREAD_ENTRY Start
,
338 IN EMU_IO_THUNK_PROTOCOL
*This
344 IN EMU_IO_THUNK_PROTOCOL
*This
352 GasketPosixOpenVolume (
353 IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL
*This
,
354 OUT EFI_FILE_PROTOCOL
**Root
359 GasketPosixFileOpen (
360 IN EFI_FILE_PROTOCOL
*This
,
361 OUT EFI_FILE_PROTOCOL
**NewHandle
,
369 GasketPosixFileCLose (
370 IN EFI_FILE_PROTOCOL
*This
375 GasketPosixFileDelete (
376 IN EFI_FILE_PROTOCOL
*This
381 GasketPosixFileRead (
382 IN EFI_FILE_PROTOCOL
*This
,
383 IN OUT UINTN
*BufferSize
,
389 GasketPosixFileWrite (
390 IN EFI_FILE_PROTOCOL
*This
,
391 IN OUT UINTN
*BufferSize
,
397 GasketPosixFileSetPossition (
398 IN EFI_FILE_PROTOCOL
*This
,
404 GasketPosixFileGetPossition (
405 IN EFI_FILE_PROTOCOL
*This
,
411 GasketPosixFileGetInfo (
412 IN EFI_FILE_PROTOCOL
*This
,
413 IN EFI_GUID
*InformationType
,
414 IN OUT UINTN
*BufferSize
,
420 GasketPosixFileSetInfo (
421 IN EFI_FILE_PROTOCOL
*This
,
422 IN EFI_GUID
*InformationType
,
429 GasketPosixFileFlush (
430 IN EFI_FILE_PROTOCOL
*This
435 GasketPosixFileSystmeThunkOpen (
436 IN EMU_IO_THUNK_PROTOCOL
*This
441 GasketPosixFileSystmeThunkClose (
442 IN EMU_IO_THUNK_PROTOCOL
*This
447 GasketEmuBlockIoReset (
448 IN EMU_BLOCK_IO_PROTOCOL
*This
,
449 IN BOOLEAN ExtendedVerification
454 GasketEmuBlockIoReadBlocks (
455 IN EMU_BLOCK_IO_PROTOCOL
*This
,
458 IN OUT EFI_BLOCK_IO2_TOKEN
*Token
,
465 GasketEmuBlockIoWriteBlocks (
466 IN EMU_BLOCK_IO_PROTOCOL
*This
,
469 IN OUT EFI_BLOCK_IO2_TOKEN
*Token
,
476 GasketEmuBlockIoFlushBlocks (
477 IN EMU_BLOCK_IO_PROTOCOL
*This
,
478 IN OUT EFI_BLOCK_IO2_TOKEN
*Token
483 GasketEmuBlockIoCreateMapping (
484 IN EMU_BLOCK_IO_PROTOCOL
*This
,
485 IN EFI_BLOCK_IO_MEDIA
*Media
490 GasketBlockIoThunkOpen (
491 IN EMU_IO_THUNK_PROTOCOL
*This
496 GasketBlockIoThunkClose (
497 IN EMU_IO_THUNK_PROTOCOL
*This
503 IN EMU_IO_THUNK_PROTOCOL
*This
508 GasketSnpThunkClose (
509 IN EMU_IO_THUNK_PROTOCOL
*This
514 GasketSnpCreateMapping (
515 IN EMU_SNP_PROTOCOL
*This
,
516 IN EFI_SIMPLE_NETWORK_MODE
*Media
522 IN EMU_SNP_PROTOCOL
*This
528 IN EMU_SNP_PROTOCOL
*This
533 GasketSnpInitialize (
534 IN EMU_SNP_PROTOCOL
*This
,
535 IN UINTN ExtraRxBufferSize OPTIONAL
,
536 IN UINTN ExtraTxBufferSize OPTIONAL
542 IN EMU_SNP_PROTOCOL
*This
,
543 IN BOOLEAN ExtendedVerification
549 IN EMU_SNP_PROTOCOL
*This
554 GasketSnpReceiveFilters (
555 IN EMU_SNP_PROTOCOL
*This
,
558 IN BOOLEAN ResetMCastFilter
,
559 IN UINTN MCastFilterCnt OPTIONAL
,
560 IN EFI_MAC_ADDRESS
*MCastFilter OPTIONAL
565 GasketSnpStationAddress (
566 IN EMU_SNP_PROTOCOL
*This
,
568 IN EFI_MAC_ADDRESS
*New OPTIONAL
573 GasketSnpStatistics (
574 IN EMU_SNP_PROTOCOL
*This
,
576 IN OUT UINTN
*StatisticsSize OPTIONAL
,
577 OUT EFI_NETWORK_STATISTICS
*StatisticsTable OPTIONAL
582 GasketSnpMCastIpToMac (
583 IN EMU_SNP_PROTOCOL
*This
,
585 IN EFI_IP_ADDRESS
*IP
,
586 OUT EFI_MAC_ADDRESS
*MAC
592 IN EMU_SNP_PROTOCOL
*This
,
593 IN BOOLEAN ReadWrite
,
602 IN EMU_SNP_PROTOCOL
*This
,
603 OUT UINT32
*InterruptStatus OPTIONAL
,
604 OUT VOID
**TxBuf OPTIONAL
610 IN EMU_SNP_PROTOCOL
*This
,
614 IN EFI_MAC_ADDRESS
*SrcAddr OPTIONAL
,
615 IN EFI_MAC_ADDRESS
*DestAddr OPTIONAL
,
616 IN UINT16
*Protocol OPTIONAL
622 IN EMU_SNP_PROTOCOL
*This
,
623 OUT UINTN
*HeaderSize OPTIONAL
,
624 IN OUT UINTN
*BufferSize
,
626 OUT EFI_MAC_ADDRESS
*SrcAddr OPTIONAL
,
627 OUT EFI_MAC_ADDRESS
*DestAddr OPTIONAL
,
628 OUT UINT16
*Protocol OPTIONAL