3 Copyright (c) 2008 - 2011, Apple Inc. All rights reserved.<BR>
4 Copyright (c) 2011 - 2019, Intel Corporation. All rights reserved.<BR>
6 SPDX-License-Identifier: BSD-2-Clause-Patent
14 // EMU_THUNK_PROTOCOL gaskets (EFIAPI to UNIX ABI)
19 GasketSecWriteStdErr (
21 IN UINTN NumberOfBytes
26 GasketSecConfigStdIn (
32 GasketSecWriteStdOut (
34 IN UINTN NumberOfBytes
41 IN UINTN NumberOfBytes
71 GasketSecPeCoffGetEntryPoint (
73 IN OUT VOID
**EntryPoint
78 GasketSecPeCoffRelocateImageExtraAction (
79 IN OUT PE_COFF_LOADER_IMAGE_CONTEXT
*ImageContext
84 GasketSecPeCoffUnloadImageExtraAction (
85 IN OUT PE_COFF_LOADER_IMAGE_CONTEXT
*ImageContext
92 IN EMU_SET_TIMER_CALLBACK CallBack
97 GasketSecEnableInterrupt (
103 GasketSecDisableInterrupt (
109 GasketQueryPerformanceFrequency (
115 GasketQueryPerformanceCounter (
123 IN UINT64 Nanoseconds
142 OUT EFI_TIME_CAPABILITIES
*Capabilities OPTIONAL
153 GasketSecGetNextProtocol (
154 IN BOOLEAN EmuBusDriver
,
155 OUT EMU_IO_THUNK_PROTOCOL
**Instance OPTIONAL
159 // PPIs produced by SEC
164 GasketSecUnixPeiAutoScan (
166 OUT EFI_PHYSICAL_ADDRESS
*MemoryBase
,
167 OUT UINT64
*MemorySize
172 GasketSecEmuThunkAddress (
179 GasketSecUnixUnixFwhAddress (
180 IN OUT UINT64
*FwhSize
,
181 IN OUT EFI_PHYSICAL_ADDRESS
*FwhBase
187 // Reverse (UNIX to EFIAPI) gaskets
192 (EFIAPI
*CALL_BACK
) (
197 ReverseGasketUint64 (
203 ReverseGasketUint64Uint64 (
210 // Gasket functions for EFI_EMU_UGA_IO_PROTOCOL
217 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
225 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
231 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
237 GasketX11KeySetState (
238 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
239 EFI_KEY_TOGGLE_STATE
*KeyToggleState
244 GasketX11RegisterKeyNotify (
245 IN EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
246 IN EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK MakeCallBack
,
247 IN EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK BreakCallBack
,
255 IN EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindows
,
256 IN EFI_UGA_PIXEL
*BltBuffer OPTIONAL
,
257 IN EFI_UGA_BLT_OPERATION BltOperation
,
258 IN EMU_GRAPHICS_WINDOWS__BLT_ARGS
*Args
263 GasketX11CheckPointer (
264 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
269 GasketX11GetPointerState (
270 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
271 EFI_SIMPLE_POINTER_STATE
*state
276 GasketX11GraphicsWindowOpen (
277 IN EMU_IO_THUNK_PROTOCOL
*This
282 GasketX11GraphicsWindowClose (
283 IN EMU_IO_THUNK_PROTOCOL
*This
290 GasketPthreadMutexLock (
298 GasketPthreadMutexUnLock (
305 GasketPthreadMutexTryLock (
312 GasketPthreadMutexInit (
319 GasketPthreadMutexDestroy (
326 GasketPthreadCreate (
329 IN THREAD_THUNK_THREAD_ENTRY Start
,
349 IN EMU_IO_THUNK_PROTOCOL
*This
355 IN EMU_IO_THUNK_PROTOCOL
*This
363 GasketPosixOpenVolume (
364 IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL
*This
,
365 OUT EFI_FILE_PROTOCOL
**Root
370 GasketPosixFileOpen (
371 IN EFI_FILE_PROTOCOL
*This
,
372 OUT EFI_FILE_PROTOCOL
**NewHandle
,
380 GasketPosixFileCLose (
381 IN EFI_FILE_PROTOCOL
*This
386 GasketPosixFileDelete (
387 IN EFI_FILE_PROTOCOL
*This
392 GasketPosixFileRead (
393 IN EFI_FILE_PROTOCOL
*This
,
394 IN OUT UINTN
*BufferSize
,
400 GasketPosixFileWrite (
401 IN EFI_FILE_PROTOCOL
*This
,
402 IN OUT UINTN
*BufferSize
,
408 GasketPosixFileSetPossition (
409 IN EFI_FILE_PROTOCOL
*This
,
415 GasketPosixFileGetPossition (
416 IN EFI_FILE_PROTOCOL
*This
,
422 GasketPosixFileGetInfo (
423 IN EFI_FILE_PROTOCOL
*This
,
424 IN EFI_GUID
*InformationType
,
425 IN OUT UINTN
*BufferSize
,
431 GasketPosixFileSetInfo (
432 IN EFI_FILE_PROTOCOL
*This
,
433 IN EFI_GUID
*InformationType
,
440 GasketPosixFileFlush (
441 IN EFI_FILE_PROTOCOL
*This
446 GasketPosixFileSystmeThunkOpen (
447 IN EMU_IO_THUNK_PROTOCOL
*This
452 GasketPosixFileSystmeThunkClose (
453 IN EMU_IO_THUNK_PROTOCOL
*This
458 GasketEmuBlockIoReset (
459 IN EMU_BLOCK_IO_PROTOCOL
*This
,
460 IN BOOLEAN ExtendedVerification
465 GasketEmuBlockIoReadBlocks (
466 IN EMU_BLOCK_IO_PROTOCOL
*This
,
469 IN OUT EFI_BLOCK_IO2_TOKEN
*Token
,
476 GasketEmuBlockIoWriteBlocks (
477 IN EMU_BLOCK_IO_PROTOCOL
*This
,
480 IN OUT EFI_BLOCK_IO2_TOKEN
*Token
,
487 GasketEmuBlockIoFlushBlocks (
488 IN EMU_BLOCK_IO_PROTOCOL
*This
,
489 IN OUT EFI_BLOCK_IO2_TOKEN
*Token
494 GasketEmuBlockIoCreateMapping (
495 IN EMU_BLOCK_IO_PROTOCOL
*This
,
496 IN EFI_BLOCK_IO_MEDIA
*Media
501 GasketBlockIoThunkOpen (
502 IN EMU_IO_THUNK_PROTOCOL
*This
507 GasketBlockIoThunkClose (
508 IN EMU_IO_THUNK_PROTOCOL
*This
514 IN EMU_IO_THUNK_PROTOCOL
*This
519 GasketSnpThunkClose (
520 IN EMU_IO_THUNK_PROTOCOL
*This
525 GasketSnpCreateMapping (
526 IN EMU_SNP_PROTOCOL
*This
,
527 IN EFI_SIMPLE_NETWORK_MODE
*Media
533 IN EMU_SNP_PROTOCOL
*This
539 IN EMU_SNP_PROTOCOL
*This
544 GasketSnpInitialize (
545 IN EMU_SNP_PROTOCOL
*This
,
546 IN UINTN ExtraRxBufferSize OPTIONAL
,
547 IN UINTN ExtraTxBufferSize OPTIONAL
553 IN EMU_SNP_PROTOCOL
*This
,
554 IN BOOLEAN ExtendedVerification
560 IN EMU_SNP_PROTOCOL
*This
565 GasketSnpReceiveFilters (
566 IN EMU_SNP_PROTOCOL
*This
,
569 IN BOOLEAN ResetMCastFilter
,
570 IN UINTN MCastFilterCnt OPTIONAL
,
571 IN EFI_MAC_ADDRESS
*MCastFilter OPTIONAL
576 GasketSnpStationAddress (
577 IN EMU_SNP_PROTOCOL
*This
,
579 IN EFI_MAC_ADDRESS
*New OPTIONAL
584 GasketSnpStatistics (
585 IN EMU_SNP_PROTOCOL
*This
,
587 IN OUT UINTN
*StatisticsSize OPTIONAL
,
588 OUT EFI_NETWORK_STATISTICS
*StatisticsTable OPTIONAL
593 GasketSnpMCastIpToMac (
594 IN EMU_SNP_PROTOCOL
*This
,
596 IN EFI_IP_ADDRESS
*IP
,
597 OUT EFI_MAC_ADDRESS
*MAC
603 IN EMU_SNP_PROTOCOL
*This
,
604 IN BOOLEAN ReadWrite
,
613 IN EMU_SNP_PROTOCOL
*This
,
614 OUT UINT32
*InterruptStatus OPTIONAL
,
615 OUT VOID
**TxBuf OPTIONAL
621 IN EMU_SNP_PROTOCOL
*This
,
625 IN EFI_MAC_ADDRESS
*SrcAddr OPTIONAL
,
626 IN EFI_MAC_ADDRESS
*DestAddr OPTIONAL
,
627 IN UINT16
*Protocol OPTIONAL
633 IN EMU_SNP_PROTOCOL
*This
,
634 OUT UINTN
*HeaderSize OPTIONAL
,
635 IN OUT UINTN
*BufferSize
,
637 OUT EFI_MAC_ADDRESS
*SrcAddr OPTIONAL
,
638 OUT EFI_MAC_ADDRESS
*DestAddr OPTIONAL
,
639 OUT UINT16
*Protocol OPTIONAL