⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 etherif.h

📁 ti dm642上
💻 H
字号:
//--------------------------------------------------------------------------
// Ip Stack
//--------------------------------------------------------------------------
// ETHERIF.H
//
// Author: Michael A. Denio
// Copyright 1999 by Texas Instruments Inc.
//-------------------------------------------------------------------------

#ifndef _C_ETHERIF_INC
#define _C_ETHERIF_INC  /* #defined if this .h file has been included */

//-------------------------------------------------------------------------
// Device Structure
//

// Our Max Multicast (Independent of Low-level MAX)
#define ETH_MIN_PAYLOAD 46

// Message
typedef struct _ethdev {
//---[ These fields match IF structure ]---
        uint        Type;                     // Set to HTYPE_ETH
        uint        llIndex;                  // Low-level Device Index
        uint        ProtMTU;                  // MTU less ETHER stuff
//-----------------------------------------
        UINT8       MacAddr[6];               // Device's Unicast Addr
        uint        PktFilter;                // Current packet filter
        uint        EthHdrSize;               // Byte Size of ETH header
        uint        OffDstMac;                // Hdr offset to dst mac
        uint        OffSrcMac;                // Hdr offset to src mac
        uint        OffEtherType;             // Hdr offset to eth type
        uint        PacketPad;                // Bytes of pad at end of packet
        uint        PhysMTU;                  // Physical pkt size (with all)
       } ETHDRV;

//-----------------------------------------------------------------------
//
// Ether Packet Filter (cumulative)
//
#define ETH_PKTFLT_NOTHING      0
#define ETH_PKTFLT_DIRECT       1
#define ETH_PKTFLT_BROADCAST    2
#define ETH_PKTFLT_MULTICAST    3
#define ETH_PKTFLT_ALLMULTICAST 4
#define ETH_PKTFLT_ALL          5

//-----------------------------------------------------------------------
//
// Packet Access Functions
//
_extern void   EtherRxPacket( PBM_Handle hPkt );

//-----------------------------------------------------------------------
//
// Global Access Functions
//
_extern HANDLE EtherNew( uint  llIndex );
_extern void   EtherFree( HANDLE hEther );
_extern void   EtherConfig( HANDLE hEther, uint PhysMTU, uint EthHdrSize,
                           uint OffDstMac, uint OffSrcMac, uint OffEtherType,
                           uint PacketPad );
_extern void   EtherSetPktFilter( HANDLE hEther, uint PktFilter );

_extern uint   EtherAddMCast( HANDLE hEther, UINT8 *pMCastAddr );
_extern uint   EtherDelMCast( HANDLE hEther, UINT8 *pMCastAddr );
_extern void   EtherClearMCast( HANDLE hEther );
_extern uint   EtherGetMacAddr( HANDLE hEther, UINT8 *pMacAddr, uint MaxLen );


//-----------------------------------------------------------------------
//
// Direct Functions
//
#ifdef _STRONG_CHECKING
_extern uint   EtherGetPktFilter( HANDLE hEther );
#else
#define EtherGetPktFilter( h )   (((ETHDRV *)h)->PktFilter)
#endif

//-----------------------------------------------------------------------
//
// PBM Packet Flags Maintained by this module
//

// Packet Flags (maintained by the stack lib)
#define FLG_PKT_MACBCAST        0x00000002  // Pkt Received as a LL BCast
#define FLG_PKT_MACMCAST        0x00000001  // Pkt Received as a LL MCast


#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -