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
70 GasketSecPeCoffGetEntryPoint (
72 IN OUT VOID
**EntryPoint
77 GasketSecPeCoffRelocateImageExtraAction (
78 IN OUT PE_COFF_LOADER_IMAGE_CONTEXT
*ImageContext
83 GasketSecPeCoffUnloadImageExtraAction (
84 IN OUT PE_COFF_LOADER_IMAGE_CONTEXT
*ImageContext
91 IN EMU_SET_TIMER_CALLBACK CallBack
96 GasketSecEnableInterrupt (
102 GasketSecDisableInterrupt (
108 GasketQueryPerformanceFrequency (
114 GasketQueryPerformanceCounter (
122 IN UINT64 Nanoseconds
141 OUT EFI_TIME_CAPABILITIES
*Capabilities OPTIONAL
152 GasketSecGetNextProtocol (
153 IN BOOLEAN EmuBusDriver
,
154 OUT EMU_IO_THUNK_PROTOCOL
**Instance OPTIONAL
158 // PPIs produced by SEC
163 GasketSecUnixPeiAutoScan (
165 OUT EFI_PHYSICAL_ADDRESS
*MemoryBase
,
166 OUT UINT64
*MemorySize
171 GasketSecEmuThunkAddress (
178 GasketSecUnixUnixFwhAddress (
179 IN OUT UINT64
*FwhSize
,
180 IN OUT EFI_PHYSICAL_ADDRESS
*FwhBase
186 // Reverse (UNIX to EFIAPI) gaskets
191 (EFIAPI
*CALL_BACK
) (
196 ReverseGasketUint64 (
202 ReverseGasketUint64Uint64 (
209 // Gasket functions for EFI_EMU_UGA_IO_PROTOCOL
216 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
224 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
230 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
236 GasketX11KeySetState (
237 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
238 EFI_KEY_TOGGLE_STATE
*KeyToggleState
243 GasketX11RegisterKeyNotify (
244 IN EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
245 IN EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK MakeCallBack
,
246 IN EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK BreakCallBack
,
254 IN EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindows
,
255 IN EFI_UGA_PIXEL
*BltBuffer OPTIONAL
,
256 IN EFI_UGA_BLT_OPERATION BltOperation
,
257 IN EMU_GRAPHICS_WINDOWS__BLT_ARGS
*Args
262 GasketX11CheckPointer (
263 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
268 GasketX11GetPointerState (
269 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
270 EFI_SIMPLE_POINTER_STATE
*state
275 GasketX11GraphicsWindowOpen (
276 IN EMU_IO_THUNK_PROTOCOL
*This
281 GasketX11GraphicsWindowClose (
282 IN EMU_IO_THUNK_PROTOCOL
*This
289 GasketPthreadMutexLock (
297 GasketPthreadMutexUnLock (
304 GasketPthreadMutexTryLock (
311 GasketPthreadMutexInit (
318 GasketPthreadMutexDestroy (
325 GasketPthreadCreate (
328 IN THREAD_THUNK_THREAD_ENTRY Start
,
348 IN EMU_IO_THUNK_PROTOCOL
*This
354 IN EMU_IO_THUNK_PROTOCOL
*This
362 GasketPosixOpenVolume (
363 IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL
*This
,
364 OUT EFI_FILE_PROTOCOL
**Root
369 GasketPosixFileOpen (
370 IN EFI_FILE_PROTOCOL
*This
,
371 OUT EFI_FILE_PROTOCOL
**NewHandle
,
379 GasketPosixFileCLose (
380 IN EFI_FILE_PROTOCOL
*This
385 GasketPosixFileDelete (
386 IN EFI_FILE_PROTOCOL
*This
391 GasketPosixFileRead (
392 IN EFI_FILE_PROTOCOL
*This
,
393 IN OUT UINTN
*BufferSize
,
399 GasketPosixFileWrite (
400 IN EFI_FILE_PROTOCOL
*This
,
401 IN OUT UINTN
*BufferSize
,
407 GasketPosixFileSetPossition (
408 IN EFI_FILE_PROTOCOL
*This
,
414 GasketPosixFileGetPossition (
415 IN EFI_FILE_PROTOCOL
*This
,
421 GasketPosixFileGetInfo (
422 IN EFI_FILE_PROTOCOL
*This
,
423 IN EFI_GUID
*InformationType
,
424 IN OUT UINTN
*BufferSize
,
430 GasketPosixFileSetInfo (
431 IN EFI_FILE_PROTOCOL
*This
,
432 IN EFI_GUID
*InformationType
,
439 GasketPosixFileFlush (
440 IN EFI_FILE_PROTOCOL
*This
445 GasketPosixFileSystmeThunkOpen (
446 IN EMU_IO_THUNK_PROTOCOL
*This
451 GasketPosixFileSystmeThunkClose (
452 IN EMU_IO_THUNK_PROTOCOL
*This
457 GasketEmuBlockIoReset (
458 IN EMU_BLOCK_IO_PROTOCOL
*This
,
459 IN BOOLEAN ExtendedVerification
464 GasketEmuBlockIoReadBlocks (
465 IN EMU_BLOCK_IO_PROTOCOL
*This
,
468 IN OUT EFI_BLOCK_IO2_TOKEN
*Token
,
475 GasketEmuBlockIoWriteBlocks (
476 IN EMU_BLOCK_IO_PROTOCOL
*This
,
479 IN OUT EFI_BLOCK_IO2_TOKEN
*Token
,
486 GasketEmuBlockIoFlushBlocks (
487 IN EMU_BLOCK_IO_PROTOCOL
*This
,
488 IN OUT EFI_BLOCK_IO2_TOKEN
*Token
493 GasketEmuBlockIoCreateMapping (
494 IN EMU_BLOCK_IO_PROTOCOL
*This
,
495 IN EFI_BLOCK_IO_MEDIA
*Media
500 GasketBlockIoThunkOpen (
501 IN EMU_IO_THUNK_PROTOCOL
*This
506 GasketBlockIoThunkClose (
507 IN EMU_IO_THUNK_PROTOCOL
*This
513 IN EMU_IO_THUNK_PROTOCOL
*This
518 GasketSnpThunkClose (
519 IN EMU_IO_THUNK_PROTOCOL
*This
524 GasketSnpCreateMapping (
525 IN EMU_SNP_PROTOCOL
*This
,
526 IN EFI_SIMPLE_NETWORK_MODE
*Media
532 IN EMU_SNP_PROTOCOL
*This
538 IN EMU_SNP_PROTOCOL
*This
543 GasketSnpInitialize (
544 IN EMU_SNP_PROTOCOL
*This
,
545 IN UINTN ExtraRxBufferSize OPTIONAL
,
546 IN UINTN ExtraTxBufferSize OPTIONAL
552 IN EMU_SNP_PROTOCOL
*This
,
553 IN BOOLEAN ExtendedVerification
559 IN EMU_SNP_PROTOCOL
*This
564 GasketSnpReceiveFilters (
565 IN EMU_SNP_PROTOCOL
*This
,
568 IN BOOLEAN ResetMCastFilter
,
569 IN UINTN MCastFilterCnt OPTIONAL
,
570 IN EFI_MAC_ADDRESS
*MCastFilter OPTIONAL
575 GasketSnpStationAddress (
576 IN EMU_SNP_PROTOCOL
*This
,
578 IN EFI_MAC_ADDRESS
*New OPTIONAL
583 GasketSnpStatistics (
584 IN EMU_SNP_PROTOCOL
*This
,
586 IN OUT UINTN
*StatisticsSize OPTIONAL
,
587 OUT EFI_NETWORK_STATISTICS
*StatisticsTable OPTIONAL
592 GasketSnpMCastIpToMac (
593 IN EMU_SNP_PROTOCOL
*This
,
595 IN EFI_IP_ADDRESS
*IP
,
596 OUT EFI_MAC_ADDRESS
*MAC
602 IN EMU_SNP_PROTOCOL
*This
,
603 IN BOOLEAN ReadWrite
,
612 IN EMU_SNP_PROTOCOL
*This
,
613 OUT UINT32
*InterruptStatus OPTIONAL
,
614 OUT VOID
**TxBuf OPTIONAL
620 IN EMU_SNP_PROTOCOL
*This
,
624 IN EFI_MAC_ADDRESS
*SrcAddr OPTIONAL
,
625 IN EFI_MAC_ADDRESS
*DestAddr OPTIONAL
,
626 IN UINT16
*Protocol OPTIONAL
632 IN EMU_SNP_PROTOCOL
*This
,
633 OUT UINTN
*HeaderSize OPTIONAL
,
634 IN OUT UINTN
*BufferSize
,
636 OUT EFI_MAC_ADDRESS
*SrcAddr OPTIONAL
,
637 OUT EFI_MAC_ADDRESS
*DestAddr OPTIONAL
,
638 OUT UINT16
*Protocol OPTIONAL