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
77 GasketSecPeCoffGetEntryPoint (
79 IN OUT VOID
**EntryPoint
84 GasketSecPeCoffRelocateImageExtraAction (
85 IN OUT PE_COFF_LOADER_IMAGE_CONTEXT
*ImageContext
90 GasketSecPeCoffUnloadImageExtraAction (
91 IN OUT PE_COFF_LOADER_IMAGE_CONTEXT
*ImageContext
98 IN EMU_SET_TIMER_CALLBACK CallBack
103 GasketSecEnableInterrupt (
109 GasketSecDisableInterrupt (
115 GasketQueryPerformanceFrequency (
121 GasketQueryPerformanceCounter (
129 IN UINT64 Nanoseconds
148 OUT EFI_TIME_CAPABILITIES
*Capabilities OPTIONAL
159 GasketSecGetNextProtocol (
160 IN BOOLEAN EmuBusDriver
,
161 OUT EMU_IO_THUNK_PROTOCOL
**Instance OPTIONAL
165 // PPIs produced by SEC
170 GasketSecUnixPeiAutoScan (
172 OUT EFI_PHYSICAL_ADDRESS
*MemoryBase
,
173 OUT UINT64
*MemorySize
178 GasketSecEmuThunkAddress (
185 GasketSecUnixUnixFwhAddress (
186 IN OUT UINT64
*FwhSize
,
187 IN OUT EFI_PHYSICAL_ADDRESS
*FwhBase
193 // Reverse (UNIX to EFIAPI) gaskets
198 (EFIAPI
*CALL_BACK
) (
203 ReverseGasketUint64 (
209 ReverseGasketUint64Uint64 (
216 // Gasket functions for EFI_EMU_UGA_IO_PROTOCOL
223 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
231 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
237 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
243 GasketX11KeySetState (
244 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
245 EFI_KEY_TOGGLE_STATE
*KeyToggleState
250 GasketX11RegisterKeyNotify (
251 IN EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
252 IN EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK MakeCallBack
,
253 IN EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK BreakCallBack
,
261 IN EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindows
,
262 IN EFI_UGA_PIXEL
*BltBuffer OPTIONAL
,
263 IN EFI_UGA_BLT_OPERATION BltOperation
,
264 IN EMU_GRAPHICS_WINDOWS__BLT_ARGS
*Args
269 GasketX11CheckPointer (
270 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
275 GasketX11GetPointerState (
276 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
277 EFI_SIMPLE_POINTER_STATE
*state
282 GasketX11GraphicsWindowOpen (
283 IN EMU_IO_THUNK_PROTOCOL
*This
288 GasketX11GraphicsWindowClose (
289 IN EMU_IO_THUNK_PROTOCOL
*This
296 GasketPthreadMutexLock (
304 GasketPthreadMutexUnLock (
311 GasketPthreadMutexTryLock (
318 GasketPthreadMutexInit (
325 GasketPthreadMutexDestroy (
332 GasketPthreadCreate (
335 IN THREAD_THUNK_THREAD_ENTRY Start
,
355 IN EMU_IO_THUNK_PROTOCOL
*This
361 IN EMU_IO_THUNK_PROTOCOL
*This
369 GasketPosixOpenVolume (
370 IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL
*This
,
371 OUT EFI_FILE_PROTOCOL
**Root
376 GasketPosixFileOpen (
377 IN EFI_FILE_PROTOCOL
*This
,
378 OUT EFI_FILE_PROTOCOL
**NewHandle
,
386 GasketPosixFileCLose (
387 IN EFI_FILE_PROTOCOL
*This
392 GasketPosixFileDelete (
393 IN EFI_FILE_PROTOCOL
*This
398 GasketPosixFileRead (
399 IN EFI_FILE_PROTOCOL
*This
,
400 IN OUT UINTN
*BufferSize
,
406 GasketPosixFileWrite (
407 IN EFI_FILE_PROTOCOL
*This
,
408 IN OUT UINTN
*BufferSize
,
414 GasketPosixFileSetPossition (
415 IN EFI_FILE_PROTOCOL
*This
,
421 GasketPosixFileGetPossition (
422 IN EFI_FILE_PROTOCOL
*This
,
428 GasketPosixFileGetInfo (
429 IN EFI_FILE_PROTOCOL
*This
,
430 IN EFI_GUID
*InformationType
,
431 IN OUT UINTN
*BufferSize
,
437 GasketPosixFileSetInfo (
438 IN EFI_FILE_PROTOCOL
*This
,
439 IN EFI_GUID
*InformationType
,
446 GasketPosixFileFlush (
447 IN EFI_FILE_PROTOCOL
*This
452 GasketPosixFileSystmeThunkOpen (
453 IN EMU_IO_THUNK_PROTOCOL
*This
458 GasketPosixFileSystmeThunkClose (
459 IN EMU_IO_THUNK_PROTOCOL
*This
464 GasketEmuBlockIoReset (
465 IN EMU_BLOCK_IO_PROTOCOL
*This
,
466 IN BOOLEAN ExtendedVerification
471 GasketEmuBlockIoReadBlocks (
472 IN EMU_BLOCK_IO_PROTOCOL
*This
,
475 IN OUT EFI_BLOCK_IO2_TOKEN
*Token
,
482 GasketEmuBlockIoWriteBlocks (
483 IN EMU_BLOCK_IO_PROTOCOL
*This
,
486 IN OUT EFI_BLOCK_IO2_TOKEN
*Token
,
493 GasketEmuBlockIoFlushBlocks (
494 IN EMU_BLOCK_IO_PROTOCOL
*This
,
495 IN OUT EFI_BLOCK_IO2_TOKEN
*Token
500 GasketEmuBlockIoCreateMapping (
501 IN EMU_BLOCK_IO_PROTOCOL
*This
,
502 IN EFI_BLOCK_IO_MEDIA
*Media
507 GasketBlockIoThunkOpen (
508 IN EMU_IO_THUNK_PROTOCOL
*This
513 GasketBlockIoThunkClose (
514 IN EMU_IO_THUNK_PROTOCOL
*This
520 IN EMU_IO_THUNK_PROTOCOL
*This
525 GasketSnpThunkClose (
526 IN EMU_IO_THUNK_PROTOCOL
*This
531 GasketSnpCreateMapping (
532 IN EMU_SNP_PROTOCOL
*This
,
533 IN EFI_SIMPLE_NETWORK_MODE
*Media
539 IN EMU_SNP_PROTOCOL
*This
545 IN EMU_SNP_PROTOCOL
*This
550 GasketSnpInitialize (
551 IN EMU_SNP_PROTOCOL
*This
,
552 IN UINTN ExtraRxBufferSize OPTIONAL
,
553 IN UINTN ExtraTxBufferSize OPTIONAL
559 IN EMU_SNP_PROTOCOL
*This
,
560 IN BOOLEAN ExtendedVerification
566 IN EMU_SNP_PROTOCOL
*This
571 GasketSnpReceiveFilters (
572 IN EMU_SNP_PROTOCOL
*This
,
575 IN BOOLEAN ResetMCastFilter
,
576 IN UINTN MCastFilterCnt OPTIONAL
,
577 IN EFI_MAC_ADDRESS
*MCastFilter OPTIONAL
582 GasketSnpStationAddress (
583 IN EMU_SNP_PROTOCOL
*This
,
585 IN EFI_MAC_ADDRESS
*New OPTIONAL
590 GasketSnpStatistics (
591 IN EMU_SNP_PROTOCOL
*This
,
593 IN OUT UINTN
*StatisticsSize OPTIONAL
,
594 OUT EFI_NETWORK_STATISTICS
*StatisticsTable OPTIONAL
599 GasketSnpMCastIpToMac (
600 IN EMU_SNP_PROTOCOL
*This
,
602 IN EFI_IP_ADDRESS
*IP
,
603 OUT EFI_MAC_ADDRESS
*MAC
609 IN EMU_SNP_PROTOCOL
*This
,
610 IN BOOLEAN ReadWrite
,
619 IN EMU_SNP_PROTOCOL
*This
,
620 OUT UINT32
*InterruptStatus OPTIONAL
,
621 OUT VOID
**TxBuf OPTIONAL
627 IN EMU_SNP_PROTOCOL
*This
,
631 IN EFI_MAC_ADDRESS
*SrcAddr OPTIONAL
,
632 IN EFI_MAC_ADDRESS
*DestAddr OPTIONAL
,
633 IN UINT16
*Protocol OPTIONAL
639 IN EMU_SNP_PROTOCOL
*This
,
640 OUT UINTN
*HeaderSize OPTIONAL
,
641 IN OUT UINTN
*BufferSize
,
643 OUT EFI_MAC_ADDRESS
*SrcAddr OPTIONAL
,
644 OUT EFI_MAC_ADDRESS
*DestAddr OPTIONAL
,
645 OUT UINT16
*Protocol OPTIONAL