20#ifndef __SIMPLE_NETWORK_H__
21#define __SIMPLE_NETWORK_H__
23#define EFI_SIMPLE_NETWORK_PROTOCOL_GUID \
25 0xA19832B9, 0xAC25, 0x11D3, {0x9A, 0x2D, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D } \
98 UINT64 TxUndersizeFrames;
99 UINT64 TxOversizeFrames;
100 UINT64 TxDroppedFrames;
101 UINT64 TxUnicastFrames;
102 UINT64 TxBroadcastFrames;
103 UINT64 TxMulticastFrames;
104 UINT64 TxCrcErrorFrames;
144 EfiSimpleNetworkStopped,
145 EfiSimpleNetworkStarted,
146 EfiSimpleNetworkInitialized,
147 EfiSimpleNetworkMaxState
150#define EFI_SIMPLE_NETWORK_RECEIVE_UNICAST 0x01
151#define EFI_SIMPLE_NETWORK_RECEIVE_MULTICAST 0x02
152#define EFI_SIMPLE_NETWORK_RECEIVE_BROADCAST 0x04
153#define EFI_SIMPLE_NETWORK_RECEIVE_PROMISCUOUS 0x08
154#define EFI_SIMPLE_NETWORK_RECEIVE_PROMISCUOUS_MULTICAST 0x10
156#define EFI_SIMPLE_NETWORK_RECEIVE_INTERRUPT 0x01
157#define EFI_SIMPLE_NETWORK_TRANSMIT_INTERRUPT 0x02
158#define EFI_SIMPLE_NETWORK_COMMAND_INTERRUPT 0x04
159#define EFI_SIMPLE_NETWORK_SOFTWARE_INTERRUPT 0x08
161#define MAX_MCAST_FILTER_CNT 16
338 IN BOOLEAN ExtendedVerification
390 IN BOOLEAN ResetMCastFilter,
502 IN BOOLEAN ReadWrite,
630#define EFI_SIMPLE_NETWORK_PROTOCOL_REVISION 0x00010000
635#define EFI_SIMPLE_NETWORK_INTERFACE_REVISION EFI_SIMPLE_NETWORK_PROTOCOL_REVISION
673extern EFI_GUID gEfiSimpleNetworkProtocolGuid;
EFI_STATUS(EFIAPI * EFI_SIMPLE_NETWORK_RECEIVE_FILTERS)(IN EFI_SIMPLE_NETWORK_PROTOCOL *This, IN UINT32 Enable, IN UINT32 Disable, IN BOOLEAN ResetMCastFilter, IN UINTN MCastFilterCnt OPTIONAL, IN EFI_MAC_ADDRESS *MCastFilter OPTIONAL)
EFI_STATUS(EFIAPI * EFI_SIMPLE_NETWORK_SHUTDOWN)(IN EFI_SIMPLE_NETWORK_PROTOCOL *This)
EFI_STATUS(EFIAPI * EFI_SIMPLE_NETWORK_START)(IN EFI_SIMPLE_NETWORK_PROTOCOL *This)
EFI_STATUS(EFIAPI * EFI_SIMPLE_NETWORK_GET_STATUS)(IN EFI_SIMPLE_NETWORK_PROTOCOL *This, OUT UINT32 *InterruptStatus OPTIONAL, OUT VOID **TxBuf OPTIONAL)
EFI_STATUS(EFIAPI * EFI_SIMPLE_NETWORK_NVDATA)(IN EFI_SIMPLE_NETWORK_PROTOCOL *This, IN BOOLEAN ReadWrite, IN UINTN Offset, IN UINTN BufferSize, IN OUT VOID *Buffer)
EFI_STATUS(EFIAPI * EFI_SIMPLE_NETWORK_STATION_ADDRESS)(IN EFI_SIMPLE_NETWORK_PROTOCOL *This, IN BOOLEAN Reset, IN EFI_MAC_ADDRESS *New OPTIONAL)
EFI_STATUS(EFIAPI * EFI_SIMPLE_NETWORK_RESET)(IN EFI_SIMPLE_NETWORK_PROTOCOL *This, IN BOOLEAN ExtendedVerification)
EFI_STATUS(EFIAPI * EFI_SIMPLE_NETWORK_INITIALIZE)(IN EFI_SIMPLE_NETWORK_PROTOCOL *This, IN UINTN ExtraRxBufferSize OPTIONAL, IN UINTN ExtraTxBufferSize OPTIONAL)
EFI_SIMPLE_NETWORK_PROTOCOL EFI_SIMPLE_NETWORK
EFI_STATUS(EFIAPI * EFI_SIMPLE_NETWORK_STATISTICS)(IN EFI_SIMPLE_NETWORK_PROTOCOL *This, IN BOOLEAN Reset, IN OUT UINTN *StatisticsSize OPTIONAL, OUT EFI_NETWORK_STATISTICS *StatisticsTable OPTIONAL)
EFI_STATUS(EFIAPI * EFI_SIMPLE_NETWORK_TRANSMIT)(IN EFI_SIMPLE_NETWORK_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 * EFI_SIMPLE_NETWORK_MCAST_IP_TO_MAC)(IN EFI_SIMPLE_NETWORK_PROTOCOL *This, IN BOOLEAN IPv6, IN EFI_IP_ADDRESS *IP, OUT EFI_MAC_ADDRESS *MAC)
EFI_STATUS(EFIAPI * EFI_SIMPLE_NETWORK_RECEIVE)(IN EFI_SIMPLE_NETWORK_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)
EFI_STATUS(EFIAPI * EFI_SIMPLE_NETWORK_STOP)(IN EFI_SIMPLE_NETWORK_PROTOCOL *This)
EFI_SIMPLE_NETWORK_MODE * Mode
UINT64 RxDuplicatedFrames
UINT64 UnsupportedProtocol
UINT64 RxDecryptErrorFrames
BOOLEAN MacAddressChangeable
EFI_MAC_ADDRESS CurrentAddress
BOOLEAN MultipleTxSupported
UINT32 MaxMCastFilterCount
BOOLEAN MediaPresentSupported
EFI_MAC_ADDRESS PermanentAddress
EFI_MAC_ADDRESS BroadcastAddress
UINT32 ReceiveFilterSetting