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
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 (
121 IN UINT64 Nanoseconds
140 OUT EFI_TIME_CAPABILITIES
*Capabilities OPTIONAL
151 GasketSecGetNextProtocol (
152 IN BOOLEAN EmuBusDriver
,
153 OUT EMU_IO_THUNK_PROTOCOL
**Instance OPTIONAL
156 // PPIs produced by SEC
160 GasketSecUnixPeiAutoScan (
162 OUT EFI_PHYSICAL_ADDRESS
*MemoryBase
,
163 OUT UINT64
*MemorySize
168 GasketSecEmuThunkAddress (
174 GasketSecUnixUnixFwhAddress (
175 IN OUT UINT64
*FwhSize
,
176 IN OUT EFI_PHYSICAL_ADDRESS
*FwhBase
180 // Reverse (UNIX to EFIAPI) gaskets
190 ReverseGasketUint64 (
196 ReverseGasketUint64Uint64 (
203 // Gasket functions for EFI_EMU_UGA_IO_PROTOCOL
209 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
217 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
223 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
229 GasketX11KeySetState (
230 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
231 EFI_KEY_TOGGLE_STATE
*KeyToggleState
236 GasketX11RegisterKeyNotify (
237 IN EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
238 IN EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK MakeCallBack
,
239 IN EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK BreakCallBack
,
246 IN EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindows
,
247 IN EFI_UGA_PIXEL
*BltBuffer OPTIONAL
,
248 IN EFI_UGA_BLT_OPERATION BltOperation
,
249 IN EMU_GRAPHICS_WINDOWS__BLT_ARGS
*Args
254 GasketX11CheckPointer (
255 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
260 GasketX11GetPointerState (
261 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
262 EFI_SIMPLE_POINTER_STATE
*state
267 GasketX11GraphicsWindowOpen (
268 IN EMU_IO_THUNK_PROTOCOL
*This
273 GasketX11GraphicsWindowClose (
274 IN EMU_IO_THUNK_PROTOCOL
*This
281 GasketPthreadMutexLock (
287 GasketPthreadMutexUnLock (
293 GasketPthreadMutexTryLock (
299 GasketPthreadMutexInit (
305 GasketPthreadMutexDestroy (
311 GasketPthreadCreate (
314 IN THREAD_THUNK_THREAD_ENTRY Start
,
333 IN EMU_IO_THUNK_PROTOCOL
*This
339 IN EMU_IO_THUNK_PROTOCOL
*This
346 GasketPosixOpenVolume (
347 IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL
*This
,
348 OUT EFI_FILE_PROTOCOL
**Root
353 GasketPosixFileOpen (
354 IN EFI_FILE_PROTOCOL
*This
,
355 OUT EFI_FILE_PROTOCOL
**NewHandle
,
363 GasketPosixFileCLose (
364 IN EFI_FILE_PROTOCOL
*This
369 GasketPosixFileDelete (
370 IN EFI_FILE_PROTOCOL
*This
375 GasketPosixFileRead (
376 IN EFI_FILE_PROTOCOL
*This
,
377 IN OUT UINTN
*BufferSize
,
383 GasketPosixFileWrite (
384 IN EFI_FILE_PROTOCOL
*This
,
385 IN OUT UINTN
*BufferSize
,
391 GasketPosixFileSetPossition (
392 IN EFI_FILE_PROTOCOL
*This
,
398 GasketPosixFileGetPossition (
399 IN EFI_FILE_PROTOCOL
*This
,
405 GasketPosixFileGetInfo (
406 IN EFI_FILE_PROTOCOL
*This
,
407 IN EFI_GUID
*InformationType
,
408 IN OUT UINTN
*BufferSize
,
414 GasketPosixFileSetInfo (
415 IN EFI_FILE_PROTOCOL
*This
,
416 IN EFI_GUID
*InformationType
,
423 GasketPosixFileFlush (
424 IN EFI_FILE_PROTOCOL
*This
429 GasketPosixFileSystmeThunkOpen (
430 IN EMU_IO_THUNK_PROTOCOL
*This
435 GasketPosixFileSystmeThunkClose (
436 IN EMU_IO_THUNK_PROTOCOL
*This
441 GasketEmuBlockIoReset (
442 IN EMU_BLOCK_IO_PROTOCOL
*This
,
443 IN BOOLEAN ExtendedVerification
448 GasketEmuBlockIoReadBlocks (
449 IN EMU_BLOCK_IO_PROTOCOL
*This
,
452 IN OUT EFI_BLOCK_IO2_TOKEN
*Token
,
459 GasketEmuBlockIoWriteBlocks (
460 IN EMU_BLOCK_IO_PROTOCOL
*This
,
463 IN OUT EFI_BLOCK_IO2_TOKEN
*Token
,
470 GasketEmuBlockIoFlushBlocks (
471 IN EMU_BLOCK_IO_PROTOCOL
*This
,
472 IN OUT EFI_BLOCK_IO2_TOKEN
*Token
477 GasketEmuBlockIoCreateMapping (
478 IN EMU_BLOCK_IO_PROTOCOL
*This
,
479 IN EFI_BLOCK_IO_MEDIA
*Media
484 GasketBlockIoThunkOpen (
485 IN EMU_IO_THUNK_PROTOCOL
*This
490 GasketBlockIoThunkClose (
491 IN EMU_IO_THUNK_PROTOCOL
*This
497 IN EMU_IO_THUNK_PROTOCOL
*This
502 GasketSnpThunkClose (
503 IN EMU_IO_THUNK_PROTOCOL
*This
508 GasketSnpCreateMapping (
509 IN EMU_SNP_PROTOCOL
*This
,
510 IN EFI_SIMPLE_NETWORK_MODE
*Media
516 IN EMU_SNP_PROTOCOL
*This
522 IN EMU_SNP_PROTOCOL
*This
527 GasketSnpInitialize (
528 IN EMU_SNP_PROTOCOL
*This
,
529 IN UINTN ExtraRxBufferSize OPTIONAL
,
530 IN UINTN ExtraTxBufferSize OPTIONAL
536 IN EMU_SNP_PROTOCOL
*This
,
537 IN BOOLEAN ExtendedVerification
543 IN EMU_SNP_PROTOCOL
*This
548 GasketSnpReceiveFilters (
549 IN EMU_SNP_PROTOCOL
*This
,
552 IN BOOLEAN ResetMCastFilter
,
553 IN UINTN MCastFilterCnt OPTIONAL
,
554 IN EFI_MAC_ADDRESS
*MCastFilter OPTIONAL
559 GasketSnpStationAddress (
560 IN EMU_SNP_PROTOCOL
*This
,
562 IN EFI_MAC_ADDRESS
*New OPTIONAL
567 GasketSnpStatistics (
568 IN EMU_SNP_PROTOCOL
*This
,
570 IN OUT UINTN
*StatisticsSize OPTIONAL
,
571 OUT EFI_NETWORK_STATISTICS
*StatisticsTable OPTIONAL
576 GasketSnpMCastIpToMac (
577 IN EMU_SNP_PROTOCOL
*This
,
579 IN EFI_IP_ADDRESS
*IP
,
580 OUT EFI_MAC_ADDRESS
*MAC
586 IN EMU_SNP_PROTOCOL
*This
,
587 IN BOOLEAN ReadWrite
,
596 IN EMU_SNP_PROTOCOL
*This
,
597 OUT UINT32
*InterruptStatus OPTIONAL
,
598 OUT VOID
**TxBuf OPTIONAL
604 IN EMU_SNP_PROTOCOL
*This
,
608 IN EFI_MAC_ADDRESS
*SrcAddr OPTIONAL
,
609 IN EFI_MAC_ADDRESS
*DestAddr OPTIONAL
,
610 IN UINT16
*Protocol OPTIONAL
616 IN EMU_SNP_PROTOCOL
*This
,
617 OUT UINTN
*HeaderSize OPTIONAL
,
618 IN OUT UINTN
*BufferSize
,
620 OUT EFI_MAC_ADDRESS
*SrcAddr OPTIONAL
,
621 OUT EFI_MAC_ADDRESS
*DestAddr OPTIONAL
,
622 OUT UINT16
*Protocol OPTIONAL