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 (
97 GasketQueryPerformanceFrequency (
102 GasketQueryPerformanceCounter (
110 IN UINT64 Milliseconds
123 OUT EFI_TIME_CAPABILITIES
*Capabilities OPTIONAL
134 GasketSecGetNextProtocol (
135 IN BOOLEAN EmuBusDriver
,
136 OUT EMU_IO_THUNK_PROTOCOL
**Instance OPTIONAL
140 // PPIs produced by SEC
145 GasketSecUnixPeiAutoScan (
147 OUT EFI_PHYSICAL_ADDRESS
*MemoryBase
,
148 OUT UINT64
*MemorySize
153 GasketSecEmuThunkAddress (
160 GasketSecUnixUnixFwhAddress (
161 IN OUT UINT64
*FwhSize
,
162 IN OUT EFI_PHYSICAL_ADDRESS
*FwhBase
168 // Reverse (UNIX to EFIAPI) gaskets
178 ReverseGasketUint64 (
184 ReverseGasketUint64Uint64 (
191 // Gasket functions for EFI_EMU_UGA_IO_PROTOCOL
198 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
206 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
212 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
218 GasketX11KeySetState (
219 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
220 EFI_KEY_TOGGLE_STATE
*KeyToggleState
225 GasketX11RegisterKeyNotify (
226 IN EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
227 IN EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK MakeCallBack
,
228 IN EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK BreakCallBack
,
236 IN EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindows
,
237 IN EFI_UGA_PIXEL
*BltBuffer OPTIONAL
,
238 IN EFI_UGA_BLT_OPERATION BltOperation
,
239 IN EMU_GRAPHICS_WINDOWS__BLT_ARGS
*Args
244 GasketX11CheckPointer (
245 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
250 GasketX11GetPointerState (
251 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
252 EFI_SIMPLE_POINTER_STATE
*state
257 GasketX11GraphicsWindowOpen (
258 IN EMU_IO_THUNK_PROTOCOL
*This
263 GasketX11GraphicsWindowClose (
264 IN EMU_IO_THUNK_PROTOCOL
*This
271 GasketPthreadMutexLock (
279 GasketPthreadMutexUnLock (
286 GasketPthreadMutexTryLock (
293 GasketPthreadMutexInit (
300 GasketPthreadMutexDestroy (
307 GasketPthreadCreate (
310 IN THREAD_THUNK_THREAD_ENTRY Start
,
330 IN EMU_IO_THUNK_PROTOCOL
*This
336 IN EMU_IO_THUNK_PROTOCOL
*This
344 GasketPosixOpenVolume (
345 IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL
*This
,
346 OUT EFI_FILE_PROTOCOL
**Root
351 GasketPosixFileOpen (
352 IN EFI_FILE_PROTOCOL
*This
,
353 OUT EFI_FILE_PROTOCOL
**NewHandle
,
361 GasketPosixFileCLose (
362 IN EFI_FILE_PROTOCOL
*This
367 GasketPosixFileDelete (
368 IN EFI_FILE_PROTOCOL
*This
373 GasketPosixFileRead (
374 IN EFI_FILE_PROTOCOL
*This
,
375 IN OUT UINTN
*BufferSize
,
381 GasketPosixFileWrite (
382 IN EFI_FILE_PROTOCOL
*This
,
383 IN OUT UINTN
*BufferSize
,
389 GasketPosixFileSetPossition (
390 IN EFI_FILE_PROTOCOL
*This
,
396 GasketPosixFileGetPossition (
397 IN EFI_FILE_PROTOCOL
*This
,
403 GasketPosixFileGetInfo (
404 IN EFI_FILE_PROTOCOL
*This
,
405 IN EFI_GUID
*InformationType
,
406 IN OUT UINTN
*BufferSize
,
412 GasketPosixFileSetInfo (
413 IN EFI_FILE_PROTOCOL
*This
,
414 IN EFI_GUID
*InformationType
,
421 GasketPosixFileFlush (
422 IN EFI_FILE_PROTOCOL
*This
427 GasketPosixFileSystmeThunkOpen (
428 IN EMU_IO_THUNK_PROTOCOL
*This
433 GasketPosixFileSystmeThunkClose (
434 IN EMU_IO_THUNK_PROTOCOL
*This
439 GasketEmuBlockIoReset (
440 IN EMU_BLOCK_IO_PROTOCOL
*This
,
441 IN BOOLEAN ExtendedVerification
445 GasketEmuBlockIoReadBlocks (
446 IN EMU_BLOCK_IO_PROTOCOL
*This
,
449 IN OUT EFI_BLOCK_IO2_TOKEN
*Token
,
456 GasketEmuBlockIoWriteBlocks (
457 IN EMU_BLOCK_IO_PROTOCOL
*This
,
460 IN OUT EFI_BLOCK_IO2_TOKEN
*Token
,
466 GasketEmuBlockIoFlushBlocks (
467 IN EMU_BLOCK_IO_PROTOCOL
*This
,
468 IN OUT EFI_BLOCK_IO2_TOKEN
*Token
472 GasketEmuBlockIoCreateMapping (
473 IN EMU_BLOCK_IO_PROTOCOL
*This
,
474 IN EFI_BLOCK_IO_MEDIA
*Media
479 GasketBlockIoThunkOpen (
480 IN EMU_IO_THUNK_PROTOCOL
*This
485 GasketBlockIoThunkClose (
486 IN EMU_IO_THUNK_PROTOCOL
*This
492 IN EMU_IO_THUNK_PROTOCOL
*This
497 GasketSnpThunkClose (
498 IN EMU_IO_THUNK_PROTOCOL
*This
503 GasketSnpCreateMapping (
504 IN EMU_SNP_PROTOCOL
*This
,
505 IN EFI_SIMPLE_NETWORK_MODE
*Media
511 IN EMU_SNP_PROTOCOL
*This
517 IN EMU_SNP_PROTOCOL
*This
522 GasketSnpInitialize (
523 IN EMU_SNP_PROTOCOL
*This
,
524 IN UINTN ExtraRxBufferSize OPTIONAL
,
525 IN UINTN ExtraTxBufferSize OPTIONAL
531 IN EMU_SNP_PROTOCOL
*This
,
532 IN BOOLEAN ExtendedVerification
538 IN EMU_SNP_PROTOCOL
*This
543 GasketSnpReceiveFilters (
544 IN EMU_SNP_PROTOCOL
*This
,
547 IN BOOLEAN ResetMCastFilter
,
548 IN UINTN MCastFilterCnt OPTIONAL
,
549 IN EFI_MAC_ADDRESS
*MCastFilter OPTIONAL
554 GasketSnpStationAddress (
555 IN EMU_SNP_PROTOCOL
*This
,
557 IN EFI_MAC_ADDRESS
*New OPTIONAL
562 GasketSnpStatistics (
563 IN EMU_SNP_PROTOCOL
*This
,
565 IN OUT UINTN
*StatisticsSize OPTIONAL
,
566 OUT EFI_NETWORK_STATISTICS
*StatisticsTable OPTIONAL
571 GasketSnpMCastIpToMac (
572 IN EMU_SNP_PROTOCOL
*This
,
574 IN EFI_IP_ADDRESS
*IP
,
575 OUT EFI_MAC_ADDRESS
*MAC
581 IN EMU_SNP_PROTOCOL
*This
,
582 IN BOOLEAN ReadWrite
,
591 IN EMU_SNP_PROTOCOL
*This
,
592 OUT UINT32
*InterruptStatus OPTIONAL
,
593 OUT VOID
**TxBuf OPTIONAL
599 IN EMU_SNP_PROTOCOL
*This
,
603 IN EFI_MAC_ADDRESS
*SrcAddr OPTIONAL
,
604 IN EFI_MAC_ADDRESS
*DestAddr OPTIONAL
,
605 IN UINT16
*Protocol OPTIONAL
611 IN EMU_SNP_PROTOCOL
*This
,
612 OUT UINTN
*HeaderSize OPTIONAL
,
613 IN OUT UINTN
*BufferSize
,
615 OUT EFI_MAC_ADDRESS
*SrcAddr OPTIONAL
,
616 OUT EFI_MAC_ADDRESS
*DestAddr OPTIONAL
,
617 OUT UINT16
*Protocol OPTIONAL