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
129 OUT EFI_TIME_CAPABILITIES
*Capabilities OPTIONAL
140 GasketSecGetNextProtocol (
141 IN BOOLEAN EmuBusDriver
,
142 OUT EMU_IO_THUNK_PROTOCOL
**Instance OPTIONAL
146 // PPIs produced by SEC
151 GasketSecUnixPeiAutoScan (
153 OUT EFI_PHYSICAL_ADDRESS
*MemoryBase
,
154 OUT UINT64
*MemorySize
159 GasketSecEmuThunkAddress (
166 GasketSecUnixUnixFwhAddress (
167 IN OUT UINT64
*FwhSize
,
168 IN OUT EFI_PHYSICAL_ADDRESS
*FwhBase
174 // Reverse (UNIX to EFIAPI) gaskets
184 ReverseGasketUint64 (
190 ReverseGasketUint64Uint64 (
197 // Gasket functions for EFI_EMU_UGA_IO_PROTOCOL
204 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
212 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
218 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
224 GasketX11KeySetState (
225 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
226 EFI_KEY_TOGGLE_STATE
*KeyToggleState
231 GasketX11RegisterKeyNotify (
232 IN EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
233 IN EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK MakeCallBack
,
234 IN EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK BreakCallBack
,
242 IN EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindows
,
243 IN EFI_UGA_PIXEL
*BltBuffer OPTIONAL
,
244 IN EFI_UGA_BLT_OPERATION BltOperation
,
245 IN EMU_GRAPHICS_WINDOWS__BLT_ARGS
*Args
250 GasketX11CheckPointer (
251 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
256 GasketX11GetPointerState (
257 EMU_GRAPHICS_WINDOW_PROTOCOL
*GraphicsWindowsIo
,
258 EFI_SIMPLE_POINTER_STATE
*state
263 GasketX11GraphicsWindowOpen (
264 IN EMU_IO_THUNK_PROTOCOL
*This
269 GasketX11GraphicsWindowClose (
270 IN EMU_IO_THUNK_PROTOCOL
*This
277 GasketPthreadMutexLock (
285 GasketPthreadMutexUnLock (
292 GasketPthreadMutexTryLock (
299 GasketPthreadMutexInit (
306 GasketPthreadMutexDestroy (
313 GasketPthreadCreate (
316 IN THREAD_THUNK_THREAD_ENTRY Start
,
336 IN EMU_IO_THUNK_PROTOCOL
*This
342 IN EMU_IO_THUNK_PROTOCOL
*This
350 GasketPosixOpenVolume (
351 IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL
*This
,
352 OUT EFI_FILE_PROTOCOL
**Root
357 GasketPosixFileOpen (
358 IN EFI_FILE_PROTOCOL
*This
,
359 OUT EFI_FILE_PROTOCOL
**NewHandle
,
367 GasketPosixFileCLose (
368 IN EFI_FILE_PROTOCOL
*This
373 GasketPosixFileDelete (
374 IN EFI_FILE_PROTOCOL
*This
379 GasketPosixFileRead (
380 IN EFI_FILE_PROTOCOL
*This
,
381 IN OUT UINTN
*BufferSize
,
387 GasketPosixFileWrite (
388 IN EFI_FILE_PROTOCOL
*This
,
389 IN OUT UINTN
*BufferSize
,
395 GasketPosixFileSetPossition (
396 IN EFI_FILE_PROTOCOL
*This
,
402 GasketPosixFileGetPossition (
403 IN EFI_FILE_PROTOCOL
*This
,
409 GasketPosixFileGetInfo (
410 IN EFI_FILE_PROTOCOL
*This
,
411 IN EFI_GUID
*InformationType
,
412 IN OUT UINTN
*BufferSize
,
418 GasketPosixFileSetInfo (
419 IN EFI_FILE_PROTOCOL
*This
,
420 IN EFI_GUID
*InformationType
,
427 GasketPosixFileFlush (
428 IN EFI_FILE_PROTOCOL
*This
433 GasketPosixFileSystmeThunkOpen (
434 IN EMU_IO_THUNK_PROTOCOL
*This
439 GasketPosixFileSystmeThunkClose (
440 IN EMU_IO_THUNK_PROTOCOL
*This
445 GasketEmuBlockIoReset (
446 IN EMU_BLOCK_IO_PROTOCOL
*This
,
447 IN BOOLEAN ExtendedVerification
451 GasketEmuBlockIoReadBlocks (
452 IN EMU_BLOCK_IO_PROTOCOL
*This
,
455 IN OUT EFI_BLOCK_IO2_TOKEN
*Token
,
462 GasketEmuBlockIoWriteBlocks (
463 IN EMU_BLOCK_IO_PROTOCOL
*This
,
466 IN OUT EFI_BLOCK_IO2_TOKEN
*Token
,
472 GasketEmuBlockIoFlushBlocks (
473 IN EMU_BLOCK_IO_PROTOCOL
*This
,
474 IN OUT EFI_BLOCK_IO2_TOKEN
*Token
478 GasketEmuBlockIoCreateMapping (
479 IN EMU_BLOCK_IO_PROTOCOL
*This
,
480 IN EFI_BLOCK_IO_MEDIA
*Media
485 GasketBlockIoThunkOpen (
486 IN EMU_IO_THUNK_PROTOCOL
*This
491 GasketBlockIoThunkClose (
492 IN EMU_IO_THUNK_PROTOCOL
*This
498 IN EMU_IO_THUNK_PROTOCOL
*This
503 GasketSnpThunkClose (
504 IN EMU_IO_THUNK_PROTOCOL
*This
509 GasketSnpCreateMapping (
510 IN EMU_SNP_PROTOCOL
*This
,
511 IN EFI_SIMPLE_NETWORK_MODE
*Media
517 IN EMU_SNP_PROTOCOL
*This
523 IN EMU_SNP_PROTOCOL
*This
528 GasketSnpInitialize (
529 IN EMU_SNP_PROTOCOL
*This
,
530 IN UINTN ExtraRxBufferSize OPTIONAL
,
531 IN UINTN ExtraTxBufferSize OPTIONAL
537 IN EMU_SNP_PROTOCOL
*This
,
538 IN BOOLEAN ExtendedVerification
544 IN EMU_SNP_PROTOCOL
*This
549 GasketSnpReceiveFilters (
550 IN EMU_SNP_PROTOCOL
*This
,
553 IN BOOLEAN ResetMCastFilter
,
554 IN UINTN MCastFilterCnt OPTIONAL
,
555 IN EFI_MAC_ADDRESS
*MCastFilter OPTIONAL
560 GasketSnpStationAddress (
561 IN EMU_SNP_PROTOCOL
*This
,
563 IN EFI_MAC_ADDRESS
*New OPTIONAL
568 GasketSnpStatistics (
569 IN EMU_SNP_PROTOCOL
*This
,
571 IN OUT UINTN
*StatisticsSize OPTIONAL
,
572 OUT EFI_NETWORK_STATISTICS
*StatisticsTable OPTIONAL
577 GasketSnpMCastIpToMac (
578 IN EMU_SNP_PROTOCOL
*This
,
580 IN EFI_IP_ADDRESS
*IP
,
581 OUT EFI_MAC_ADDRESS
*MAC
587 IN EMU_SNP_PROTOCOL
*This
,
588 IN BOOLEAN ReadWrite
,
597 IN EMU_SNP_PROTOCOL
*This
,
598 OUT UINT32
*InterruptStatus OPTIONAL
,
599 OUT VOID
**TxBuf OPTIONAL
605 IN EMU_SNP_PROTOCOL
*This
,
609 IN EFI_MAC_ADDRESS
*SrcAddr OPTIONAL
,
610 IN EFI_MAC_ADDRESS
*DestAddr OPTIONAL
,
611 IN UINT16
*Protocol OPTIONAL
617 IN EMU_SNP_PROTOCOL
*This
,
618 OUT UINTN
*HeaderSize OPTIONAL
,
619 IN OUT UINTN
*BufferSize
,
621 OUT EFI_MAC_ADDRESS
*SrcAddr OPTIONAL
,
622 OUT EFI_MAC_ADDRESS
*DestAddr OPTIONAL
,
623 OUT UINT16
*Protocol OPTIONAL