REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the EmulatorPkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Ray Ni <ray.ni@intel.com>
		
			
				
	
	
		
			626 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			626 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
| 
 | |
|   Copyright (c) 2008 - 2011, Apple Inc. All rights reserved.<BR>
 | |
|   Copyright (c) 2011 - 2019, Intel Corporation. All rights reserved.<BR>
 | |
| 
 | |
|   SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| 
 | |
| **/
 | |
| 
 | |
| #ifndef _GASKET_H_
 | |
| #define _GASKET_H_
 | |
| 
 | |
| //
 | |
| // EMU_THUNK_PROTOCOL gaskets (EFIAPI to UNIX ABI)
 | |
| //
 | |
| 
 | |
| UINTN
 | |
| EFIAPI
 | |
| GasketSecWriteStdErr (
 | |
|   IN UINT8  *Buffer,
 | |
|   IN UINTN  NumberOfBytes
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketSecConfigStdIn (
 | |
|   VOID
 | |
|   );
 | |
| 
 | |
| UINTN
 | |
| EFIAPI
 | |
| GasketSecWriteStdOut (
 | |
|   IN UINT8  *Buffer,
 | |
|   IN UINTN  NumberOfBytes
 | |
|   );
 | |
| 
 | |
| UINTN
 | |
| EFIAPI
 | |
| GasketSecReadStdIn (
 | |
|   IN UINT8  *Buffer,
 | |
|   IN UINTN  NumberOfBytes
 | |
|   );
 | |
| 
 | |
| BOOLEAN
 | |
| EFIAPI
 | |
| GasketSecPollStdIn (
 | |
|   VOID
 | |
|   );
 | |
| 
 | |
| VOID *
 | |
| EFIAPI
 | |
| GasketSecMalloc (
 | |
|   IN  UINTN  Size
 | |
|   );
 | |
| 
 | |
| VOID *
 | |
| EFIAPI
 | |
| GasketSecValloc (
 | |
|   IN  UINTN  Size
 | |
|   );
 | |
| 
 | |
| BOOLEAN
 | |
| EFIAPI
 | |
| GasketSecFree (
 | |
|   IN  VOID  *Ptr
 | |
|   );
 | |
| 
 | |
| RETURN_STATUS
 | |
| EFIAPI
 | |
| GasketSecPeCoffGetEntryPoint (
 | |
|   IN     VOID  *Pe32Data,
 | |
|   IN OUT VOID  **EntryPoint
 | |
|   );
 | |
| 
 | |
| VOID
 | |
| EFIAPI
 | |
| GasketSecPeCoffRelocateImageExtraAction (
 | |
|   IN OUT PE_COFF_LOADER_IMAGE_CONTEXT  *ImageContext
 | |
|   );
 | |
| 
 | |
| VOID
 | |
| EFIAPI
 | |
| GasketSecPeCoffUnloadImageExtraAction (
 | |
|   IN OUT PE_COFF_LOADER_IMAGE_CONTEXT  *ImageContext
 | |
|   );
 | |
| 
 | |
| VOID
 | |
| EFIAPI
 | |
| GasketSecSetTimer (
 | |
|   IN  UINT64                  PeriodMs,
 | |
|   IN  EMU_SET_TIMER_CALLBACK  CallBack
 | |
|   );
 | |
| 
 | |
| VOID
 | |
| EFIAPI
 | |
| GasketSecEnableInterrupt (
 | |
|   VOID
 | |
|   );
 | |
| 
 | |
| VOID
 | |
| EFIAPI
 | |
| GasketSecDisableInterrupt (
 | |
|   VOID
 | |
|   );
 | |
| 
 | |
| UINT64
 | |
| EFIAPI
 | |
| GasketQueryPerformanceFrequency (
 | |
|   VOID
 | |
|   );
 | |
| 
 | |
| UINT64
 | |
| EFIAPI
 | |
| GasketQueryPerformanceCounter (
 | |
|   VOID
 | |
|   );
 | |
| 
 | |
| VOID
 | |
| EFIAPI
 | |
| GasketSecSleep (
 | |
|   IN  UINT64  Nanoseconds
 | |
|   );
 | |
| 
 | |
| VOID
 | |
| EFIAPI
 | |
| GasketSecCpuSleep (
 | |
|   VOID
 | |
|   );
 | |
| 
 | |
| VOID
 | |
| EFIAPI
 | |
| GasketSecExit (
 | |
|   UINTN  Status
 | |
|   );
 | |
| 
 | |
| VOID
 | |
| EFIAPI
 | |
| GasketSecGetTime (
 | |
|   OUT  EFI_TIME              *Time,
 | |
|   OUT EFI_TIME_CAPABILITIES  *Capabilities OPTIONAL
 | |
|   );
 | |
| 
 | |
| VOID
 | |
| EFIAPI
 | |
| GasketSecSetTime (
 | |
|   IN  EFI_TIME  *Time
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketSecGetNextProtocol (
 | |
|   IN  BOOLEAN                EmuBusDriver,
 | |
|   OUT EMU_IO_THUNK_PROTOCOL  **Instance  OPTIONAL
 | |
|   );
 | |
| 
 | |
| // PPIs produced by SEC
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketSecUnixPeiAutoScan (
 | |
|   IN  UINTN                 Index,
 | |
|   OUT EFI_PHYSICAL_ADDRESS  *MemoryBase,
 | |
|   OUT UINT64                *MemorySize
 | |
|   );
 | |
| 
 | |
| VOID *
 | |
| EFIAPI
 | |
| GasketSecEmuThunkAddress (
 | |
|   VOID
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketSecUnixUnixFwhAddress (
 | |
|   IN OUT UINT64                *FwhSize,
 | |
|   IN OUT EFI_PHYSICAL_ADDRESS  *FwhBase
 | |
|   );
 | |
| 
 | |
| //
 | |
| // Reverse (UNIX to EFIAPI) gaskets
 | |
| //
 | |
| 
 | |
| typedef
 | |
| void
 | |
| (EFIAPI *CALL_BACK)(
 | |
|   UINT64 Delta
 | |
|   );
 | |
| 
 | |
| UINTN
 | |
| ReverseGasketUint64 (
 | |
|   UINTN   CallBack,
 | |
|   UINT64  a
 | |
|   );
 | |
| 
 | |
| UINTN
 | |
| ReverseGasketUint64Uint64 (
 | |
|   VOID  *CallBack,
 | |
|   VOID  *Context,
 | |
|   VOID  *Key
 | |
|   );
 | |
| 
 | |
| //
 | |
| // Gasket functions for EFI_EMU_UGA_IO_PROTOCOL
 | |
| //
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketX11Size (
 | |
|   EMU_GRAPHICS_WINDOW_PROTOCOL  *GraphicsWindowsIo,
 | |
|   UINT32                        Width,
 | |
|   UINT32                        Height
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketX11CheckKey (
 | |
|   EMU_GRAPHICS_WINDOW_PROTOCOL  *GraphicsWindowsIo
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketX11GetKey (
 | |
|   EMU_GRAPHICS_WINDOW_PROTOCOL  *GraphicsWindowsIo,
 | |
|   EFI_KEY_DATA                  *key
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketX11KeySetState (
 | |
|   EMU_GRAPHICS_WINDOW_PROTOCOL  *GraphicsWindowsIo,
 | |
|   EFI_KEY_TOGGLE_STATE          *KeyToggleState
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketX11RegisterKeyNotify (
 | |
|   IN EMU_GRAPHICS_WINDOW_PROTOCOL                      *GraphicsWindowsIo,
 | |
|   IN EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK  MakeCallBack,
 | |
|   IN EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK  BreakCallBack,
 | |
|   IN VOID                                              *Context
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketX11Blt (
 | |
|   IN  EMU_GRAPHICS_WINDOW_PROTOCOL    *GraphicsWindows,
 | |
|   IN  EFI_UGA_PIXEL                   *BltBuffer OPTIONAL,
 | |
|   IN  EFI_UGA_BLT_OPERATION           BltOperation,
 | |
|   IN  EMU_GRAPHICS_WINDOWS__BLT_ARGS  *Args
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketX11CheckPointer (
 | |
|   EMU_GRAPHICS_WINDOW_PROTOCOL  *GraphicsWindowsIo
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketX11GetPointerState (
 | |
|   EMU_GRAPHICS_WINDOW_PROTOCOL  *GraphicsWindowsIo,
 | |
|   EFI_SIMPLE_POINTER_STATE      *state
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketX11GraphicsWindowOpen (
 | |
|   IN  EMU_IO_THUNK_PROTOCOL  *This
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketX11GraphicsWindowClose (
 | |
|   IN  EMU_IO_THUNK_PROTOCOL  *This
 | |
|   );
 | |
| 
 | |
| // Pthreads
 | |
| 
 | |
| UINTN
 | |
| EFIAPI
 | |
| GasketPthreadMutexLock (
 | |
|   IN VOID  *Mutex
 | |
|   );
 | |
| 
 | |
| UINTN
 | |
| EFIAPI
 | |
| GasketPthreadMutexUnLock (
 | |
|   IN VOID  *Mutex
 | |
|   );
 | |
| 
 | |
| UINTN
 | |
| EFIAPI
 | |
| GasketPthreadMutexTryLock (
 | |
|   IN VOID  *Mutex
 | |
|   );
 | |
| 
 | |
| VOID *
 | |
| EFIAPI
 | |
| GasketPthreadMutexInit (
 | |
|   IN VOID
 | |
|   );
 | |
| 
 | |
| UINTN
 | |
| EFIAPI
 | |
| GasketPthreadMutexDestroy (
 | |
|   IN VOID  *Mutex
 | |
|   );
 | |
| 
 | |
| UINTN
 | |
| EFIAPI
 | |
| GasketPthreadCreate (
 | |
|   IN  VOID                       *Thread,
 | |
|   IN  VOID                       *Attribute,
 | |
|   IN  THREAD_THUNK_THREAD_ENTRY  Start,
 | |
|   IN  VOID                       *Context
 | |
|   );
 | |
| 
 | |
| VOID
 | |
| EFIAPI
 | |
| GasketPthreadExit (
 | |
|   IN VOID  *ValuePtr
 | |
|   );
 | |
| 
 | |
| UINTN
 | |
| EFIAPI
 | |
| GasketPthreadSelf (
 | |
|   VOID
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketPthreadOpen (
 | |
|   IN  EMU_IO_THUNK_PROTOCOL  *This
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketPthreadClose (
 | |
|   IN  EMU_IO_THUNK_PROTOCOL  *This
 | |
|   );
 | |
| 
 | |
| // PosixFileSystem
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketPosixOpenVolume (
 | |
|   IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL  *This,
 | |
|   OUT EFI_FILE_PROTOCOL               **Root
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketPosixFileOpen (
 | |
|   IN EFI_FILE_PROTOCOL   *This,
 | |
|   OUT EFI_FILE_PROTOCOL  **NewHandle,
 | |
|   IN CHAR16              *FileName,
 | |
|   IN UINT64              OpenMode,
 | |
|   IN UINT64              Attributes
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketPosixFileCLose (
 | |
|   IN EFI_FILE_PROTOCOL  *This
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketPosixFileDelete (
 | |
|   IN EFI_FILE_PROTOCOL  *This
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketPosixFileRead (
 | |
|   IN EFI_FILE_PROTOCOL  *This,
 | |
|   IN OUT UINTN          *BufferSize,
 | |
|   OUT VOID              *Buffer
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketPosixFileWrite (
 | |
|   IN EFI_FILE_PROTOCOL  *This,
 | |
|   IN OUT UINTN          *BufferSize,
 | |
|   IN VOID               *Buffer
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketPosixFileSetPossition (
 | |
|   IN EFI_FILE_PROTOCOL  *This,
 | |
|   IN UINT64             Position
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketPosixFileGetPossition (
 | |
|   IN EFI_FILE_PROTOCOL  *This,
 | |
|   OUT UINT64            *Position
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketPosixFileGetInfo (
 | |
|   IN EFI_FILE_PROTOCOL  *This,
 | |
|   IN EFI_GUID           *InformationType,
 | |
|   IN OUT UINTN          *BufferSize,
 | |
|   OUT VOID              *Buffer
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketPosixFileSetInfo (
 | |
|   IN EFI_FILE_PROTOCOL  *This,
 | |
|   IN EFI_GUID           *InformationType,
 | |
|   IN UINTN              BufferSize,
 | |
|   IN VOID               *Buffer
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketPosixFileFlush (
 | |
|   IN EFI_FILE_PROTOCOL  *This
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketPosixFileSystmeThunkOpen (
 | |
|   IN  EMU_IO_THUNK_PROTOCOL  *This
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketPosixFileSystmeThunkClose (
 | |
|   IN  EMU_IO_THUNK_PROTOCOL  *This
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketEmuBlockIoReset (
 | |
|   IN EMU_BLOCK_IO_PROTOCOL  *This,
 | |
|   IN BOOLEAN                ExtendedVerification
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketEmuBlockIoReadBlocks (
 | |
|   IN     EMU_BLOCK_IO_PROTOCOL  *This,
 | |
|   IN     UINT32                 MediaId,
 | |
|   IN     EFI_LBA                LBA,
 | |
|   IN OUT EFI_BLOCK_IO2_TOKEN    *Token,
 | |
|   IN     UINTN                  BufferSize,
 | |
|   OUT VOID                      *Buffer
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketEmuBlockIoWriteBlocks (
 | |
|   IN     EMU_BLOCK_IO_PROTOCOL  *This,
 | |
|   IN     UINT32                 MediaId,
 | |
|   IN     EFI_LBA                LBA,
 | |
|   IN OUT EFI_BLOCK_IO2_TOKEN    *Token,
 | |
|   IN     UINTN                  BufferSize,
 | |
|   IN     VOID                   *Buffer
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketEmuBlockIoFlushBlocks (
 | |
|   IN     EMU_BLOCK_IO_PROTOCOL  *This,
 | |
|   IN OUT EFI_BLOCK_IO2_TOKEN    *Token
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketEmuBlockIoCreateMapping (
 | |
|   IN     EMU_BLOCK_IO_PROTOCOL  *This,
 | |
|   IN     EFI_BLOCK_IO_MEDIA     *Media
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketBlockIoThunkOpen (
 | |
|   IN  EMU_IO_THUNK_PROTOCOL  *This
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketBlockIoThunkClose (
 | |
|   IN  EMU_IO_THUNK_PROTOCOL  *This
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketSnpThunkOpen (
 | |
|   IN  EMU_IO_THUNK_PROTOCOL  *This
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketSnpThunkClose (
 | |
|   IN  EMU_IO_THUNK_PROTOCOL  *This
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketSnpCreateMapping (
 | |
|   IN     EMU_SNP_PROTOCOL         *This,
 | |
|   IN     EFI_SIMPLE_NETWORK_MODE  *Media
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketSnpStart (
 | |
|   IN EMU_SNP_PROTOCOL  *This
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketSnpStop (
 | |
|   IN EMU_SNP_PROTOCOL  *This
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketSnpInitialize (
 | |
|   IN EMU_SNP_PROTOCOL  *This,
 | |
|   IN UINTN             ExtraRxBufferSize  OPTIONAL,
 | |
|   IN UINTN             ExtraTxBufferSize  OPTIONAL
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketSnpReset (
 | |
|   IN EMU_SNP_PROTOCOL  *This,
 | |
|   IN BOOLEAN           ExtendedVerification
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketSnpShutdown (
 | |
|   IN EMU_SNP_PROTOCOL  *This
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketSnpReceiveFilters (
 | |
|   IN EMU_SNP_PROTOCOL  *This,
 | |
|   IN UINT32            Enable,
 | |
|   IN UINT32            Disable,
 | |
|   IN BOOLEAN           ResetMCastFilter,
 | |
|   IN UINTN             MCastFilterCnt     OPTIONAL,
 | |
|   IN EFI_MAC_ADDRESS   *MCastFilter OPTIONAL
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketSnpStationAddress (
 | |
|   IN EMU_SNP_PROTOCOL  *This,
 | |
|   IN BOOLEAN           Reset,
 | |
|   IN EFI_MAC_ADDRESS   *New OPTIONAL
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketSnpStatistics (
 | |
|   IN EMU_SNP_PROTOCOL         *This,
 | |
|   IN BOOLEAN                  Reset,
 | |
|   IN OUT UINTN                *StatisticsSize   OPTIONAL,
 | |
|   OUT EFI_NETWORK_STATISTICS  *StatisticsTable  OPTIONAL
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketSnpMCastIpToMac (
 | |
|   IN EMU_SNP_PROTOCOL  *This,
 | |
|   IN BOOLEAN           IPv6,
 | |
|   IN EFI_IP_ADDRESS    *IP,
 | |
|   OUT EFI_MAC_ADDRESS  *MAC
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketSnpNvData (
 | |
|   IN EMU_SNP_PROTOCOL  *This,
 | |
|   IN BOOLEAN           ReadWrite,
 | |
|   IN UINTN             Offset,
 | |
|   IN UINTN             BufferSize,
 | |
|   IN OUT VOID          *Buffer
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketSnpGetStatus (
 | |
|   IN EMU_SNP_PROTOCOL  *This,
 | |
|   OUT UINT32           *InterruptStatus OPTIONAL,
 | |
|   OUT VOID             **TxBuf OPTIONAL
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketSnpTransmit (
 | |
|   IN EMU_SNP_PROTOCOL  *This,
 | |
|   IN UINTN             HeaderSize,
 | |
|   IN UINTN             BufferSize,
 | |
|   IN VOID              *Buffer,
 | |
|   IN EFI_MAC_ADDRESS   *SrcAddr  OPTIONAL,
 | |
|   IN EFI_MAC_ADDRESS   *DestAddr OPTIONAL,
 | |
|   IN UINT16            *Protocol OPTIONAL
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketSnpReceive (
 | |
|   IN EMU_SNP_PROTOCOL  *This,
 | |
|   OUT UINTN            *HeaderSize OPTIONAL,
 | |
|   IN OUT UINTN         *BufferSize,
 | |
|   OUT VOID             *Buffer,
 | |
|   OUT EFI_MAC_ADDRESS  *SrcAddr    OPTIONAL,
 | |
|   OUT EFI_MAC_ADDRESS  *DestAddr   OPTIONAL,
 | |
|   OUT UINT16           *Protocol   OPTIONAL
 | |
|   );
 | |
| 
 | |
| #endif
 |