Viewing file: efinet.h (9.53 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#ifndef _EFINET_H #define _EFINET_H
/*++ Copyright (c) 1999 Intel Corporation
Module Name: efinet.h
Abstract: EFI Simple Network protocol
Revision History --*/
/////////////////////////////////////////////////////////////////////////////// // // Simple Network Protocol //
#define EFI_SIMPLE_NETWORK_PROTOCOL \ { 0xA19832B9, 0xAC25, 0x11D3, {0x9A, 0x2D, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D} }
INTERFACE_DECL(_EFI_SIMPLE_NETWORK);
/////////////////////////////////////////////////////////////////////////////// //
typedef struct { // // Total number of frames received. Includes frames with errors and // dropped frames. // UINT64 RxTotalFrames;
// // Number of valid frames received and copied into receive buffers. // UINT64 RxGoodFrames;
// // Number of frames below the minimum length for the media. // This would be <64 for ethernet. // UINT64 RxUndersizeFrames;
// // Number of frames longer than the maxminum length for the // media. This would be >1500 for ethernet. // UINT64 RxOversizeFrames;
// // Valid frames that were dropped because receive buffers were full. // UINT64 RxDroppedFrames;
// // Number of valid unicast frames received and not dropped. // UINT64 RxUnicastFrames;
// // Number of valid broadcast frames received and not dropped. // UINT64 RxBroadcastFrames;
// // Number of valid mutlicast frames received and not dropped. // UINT64 RxMulticastFrames;
// // Number of frames w/ CRC or alignment errors. // UINT64 RxCrcErrorFrames;
// // Total number of bytes received. Includes frames with errors // and dropped frames. // UINT64 RxTotalBytes;
// // Transmit statistics. // UINT64 TxTotalFrames; UINT64 TxGoodFrames; UINT64 TxUndersizeFrames; UINT64 TxOversizeFrames; UINT64 TxDroppedFrames; UINT64 TxUnicastFrames; UINT64 TxBroadcastFrames; UINT64 TxMulticastFrames; UINT64 TxCrcErrorFrames; UINT64 TxTotalBytes;
// // Number of collisions detection on this subnet. // UINT64 Collisions;
// // Number of frames destined for unsupported protocol. // UINT64 UnsupportedProtocol;
} EFI_NETWORK_STATISTICS;
/////////////////////////////////////////////////////////////////////////////// //
typedef enum { EfiSimpleNetworkStopped, EfiSimpleNetworkStarted, EfiSimpleNetworkInitialized, EfiSimpleNetworkMaxState } EFI_SIMPLE_NETWORK_STATE;
/////////////////////////////////////////////////////////////////////////////// //
#define EFI_SIMPLE_NETWORK_RECEIVE_UNICAST 0x01 #define EFI_SIMPLE_NETWORK_RECEIVE_MULTICAST 0x02 #define EFI_SIMPLE_NETWORK_RECEIVE_BROADCAST 0x04 #define EFI_SIMPLE_NETWORK_RECEIVE_PROMISCUOUS 0x08 #define EFI_SIMPLE_NETWORK_RECEIVE_PROMISCUOUS_MULTICAST 0x10
/////////////////////////////////////////////////////////////////////////////// //
#define EFI_SIMPLE_NETWORK_RECEIVE_INTERRUPT 0x01 #define EFI_SIMPLE_NETWORK_TRANSMIT_INTERRUPT 0x02 #define EFI_SIMPLE_NETWORK_COMMAND_INTERRUPT 0x04 #define EFI_SIMPLE_NETWORK_SOFTWARE_INTERRUPT 0x08
/////////////////////////////////////////////////////////////////////////////// // #define MAX_MCAST_FILTER_CNT 16 typedef struct { UINT32 State; UINT32 HwAddressSize; UINT32 MediaHeaderSize; UINT32 MaxPacketSize; UINT32 NvRamSize; UINT32 NvRamAccessSize; UINT32 ReceiveFilterMask; UINT32 ReceiveFilterSetting; UINT32 MaxMCastFilterCount; UINT32 MCastFilterCount; EFI_MAC_ADDRESS MCastFilter[MAX_MCAST_FILTER_CNT]; EFI_MAC_ADDRESS CurrentAddress; EFI_MAC_ADDRESS BroadcastAddress; EFI_MAC_ADDRESS PermanentAddress; UINT8 IfType; BOOLEAN MacAddressChangeable; BOOLEAN MultipleTxSupported; BOOLEAN MediaPresentSupported; BOOLEAN MediaPresent; } EFI_SIMPLE_NETWORK_MODE;
/////////////////////////////////////////////////////////////////////////////// //
typedef EFI_STATUS (EFIAPI *EFI_SIMPLE_NETWORK_START) ( IN struct _EFI_SIMPLE_NETWORK *This );
/////////////////////////////////////////////////////////////////////////////// //
typedef EFI_STATUS (EFIAPI *EFI_SIMPLE_NETWORK_STOP) ( IN struct _EFI_SIMPLE_NETWORK *This );
/////////////////////////////////////////////////////////////////////////////// //
typedef EFI_STATUS (EFIAPI *EFI_SIMPLE_NETWORK_INITIALIZE) ( IN struct _EFI_SIMPLE_NETWORK *This, IN UINTN ExtraRxBufferSize OPTIONAL, IN UINTN ExtraTxBufferSize OPTIONAL );
/////////////////////////////////////////////////////////////////////////////// //
typedef EFI_STATUS (EFIAPI *EFI_SIMPLE_NETWORK_RESET) ( IN struct _EFI_SIMPLE_NETWORK *This, IN BOOLEAN ExtendedVerification );
/////////////////////////////////////////////////////////////////////////////// //
typedef EFI_STATUS (EFIAPI *EFI_SIMPLE_NETWORK_SHUTDOWN) ( IN struct _EFI_SIMPLE_NETWORK *This );
/////////////////////////////////////////////////////////////////////////////// //
typedef EFI_STATUS (EFIAPI *EFI_SIMPLE_NETWORK_RECEIVE_FILTERS) ( IN struct _EFI_SIMPLE_NETWORK *This, IN UINT32 Enable, IN UINT32 Disable, IN BOOLEAN ResetMCastFilter, IN UINTN MCastFilterCnt OPTIONAL, IN EFI_MAC_ADDRESS *MCastFilter OPTIONAL );
/////////////////////////////////////////////////////////////////////////////// //
typedef EFI_STATUS (EFIAPI *EFI_SIMPLE_NETWORK_STATION_ADDRESS) ( IN struct _EFI_SIMPLE_NETWORK *This, IN BOOLEAN Reset, IN EFI_MAC_ADDRESS *New OPTIONAL );
/////////////////////////////////////////////////////////////////////////////// //
typedef EFI_STATUS (EFIAPI *EFI_SIMPLE_NETWORK_STATISTICS) ( IN struct _EFI_SIMPLE_NETWORK *This, IN BOOLEAN Reset, IN OUT UINTN *StatisticsSize OPTIONAL, OUT EFI_NETWORK_STATISTICS *StatisticsTable OPTIONAL );
/////////////////////////////////////////////////////////////////////////////// //
typedef EFI_STATUS (EFIAPI *EFI_SIMPLE_NETWORK_MCAST_IP_TO_MAC) ( IN struct _EFI_SIMPLE_NETWORK *This, IN BOOLEAN IPv6, IN EFI_IP_ADDRESS *IP, OUT EFI_MAC_ADDRESS *MAC );
/////////////////////////////////////////////////////////////////////////////// //
typedef EFI_STATUS (EFIAPI *EFI_SIMPLE_NETWORK_NVDATA) ( IN struct _EFI_SIMPLE_NETWORK *This, IN BOOLEAN ReadWrite, IN UINTN Offset, IN UINTN BufferSize, IN OUT VOID *Buffer );
/////////////////////////////////////////////////////////////////////////////// //
typedef EFI_STATUS (EFIAPI *EFI_SIMPLE_NETWORK_GET_STATUS) ( IN struct _EFI_SIMPLE_NETWORK *This, OUT UINT32 *InterruptStatus OPTIONAL, OUT VOID **TxBuf OPTIONAL );
/////////////////////////////////////////////////////////////////////////////// //
typedef EFI_STATUS (EFIAPI *EFI_SIMPLE_NETWORK_TRANSMIT) ( IN struct _EFI_SIMPLE_NETWORK *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 );
/////////////////////////////////////////////////////////////////////////////// //
typedef EFI_STATUS (EFIAPI *EFI_SIMPLE_NETWORK_RECEIVE) ( IN struct _EFI_SIMPLE_NETWORK *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 );
/////////////////////////////////////////////////////////////////////////////// //
#define EFI_SIMPLE_NETWORK_INTERFACE_REVISION 0x00010000
typedef struct _EFI_SIMPLE_NETWORK { UINT64 Revision; EFI_SIMPLE_NETWORK_START Start; EFI_SIMPLE_NETWORK_STOP Stop; EFI_SIMPLE_NETWORK_INITIALIZE Initialize; EFI_SIMPLE_NETWORK_RESET Reset; EFI_SIMPLE_NETWORK_SHUTDOWN Shutdown; EFI_SIMPLE_NETWORK_RECEIVE_FILTERS ReceiveFilters; EFI_SIMPLE_NETWORK_STATION_ADDRESS StationAddress; EFI_SIMPLE_NETWORK_STATISTICS Statistics; EFI_SIMPLE_NETWORK_MCAST_IP_TO_MAC MCastIpToMac; EFI_SIMPLE_NETWORK_NVDATA NvData; EFI_SIMPLE_NETWORK_GET_STATUS GetStatus; EFI_SIMPLE_NETWORK_TRANSMIT Transmit; EFI_SIMPLE_NETWORK_RECEIVE Receive; EFI_EVENT WaitForPacket; EFI_SIMPLE_NETWORK_MODE *Mode; } EFI_SIMPLE_NETWORK;
#endif /* _EFINET_H */
|