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

📄 eth_addrtbl.h

📁 Linux2.4.27在AT91RM9200下的U-BOOT代码。可以在Redhat9等版本下使用。适合ARM学习者使用。
💻 H
字号:
#ifndef _ADDRESS_TABLE_H#define _ADDRESS_TABLE_H 1/* * ---------------------------------------------------------------------------- * addressTable.h - this file has all the declarations of the address table */#define _8K_TABLE                           0#define ADDRESS_TABLE_ALIGNMENT             8#define HASH_DEFAULT_MODE                   14#define HASH_MODE                           13#define HASH_SIZE                           12#define HOP_NUMBER                          12#define MAC_ADDRESS_STRING_SIZE             12#define MAC_ENTRY_SIZE                      sizeof(addrTblEntry)#define MAX_NUMBER_OF_ADDRESSES_TO_STORE    1000#define PROMISCUOUS_MODE                    0#define SKIP                                1<<1#define SKIP_BIT                            1#define VALID                               1/* * ---------------------------------------------------------------------------- * XXX_MIKE - potential sign-extension bugs lurk here... */#define NIBBLE_SWAPPING_32_BIT(X) ( (((X) & 0xf0f0f0f0) >> 4) \				  | (((X) & 0x0f0f0f0f) << 4) )#define NIBBLE_SWAPPING_16_BIT(X) ( (((X) & 0x0000f0f0) >> 4) \				  | (((X) & 0x00000f0f) << 4) )#define FLIP_4_BITS(X)  ( (((X) & 0x01) << 3) | (((X) & 0x002) << 1) \			| (((X) & 0x04) >> 1) | (((X) & 0x008) >> 3) )#define FLIP_6_BITS(X)  ( (((X) & 0x01) << 5) | (((X) & 0x020) >> 5) \			| (((X) & 0x02) << 3) | (((X) & 0x010) >> 3) \			| (((X) & 0x04) << 1) | (((X) & 0x008) >> 1) )#define FLIP_9_BITS(X)  ( (((X) & 0x01) << 8) | (((X) & 0x100) >> 8) \			| (((X) & 0x02) << 6) | (((X) & 0x080) >> 6) \			| (((X) & 0x04) << 4) | (((X) & 0x040) >> 4) \	 | ((X) & 0x10) | (((X) & 0x08) << 2) | (((X) & 0x020) >> 2) )/* * V: value we're operating on * O: offset of rightmost bit in field * W: width of field to shift * S: distance to shift left */#define MASK( fieldWidth )                            ((1 << (fieldWidth)) - 1)#define leftShiftedBitfield( V,O,W,S)        (((V) & (MASK(W) << (O)))  << (S))#define rightShiftedBitfield(V,O,W,S)  (((u32)((V) & (MASK(W) << (O)))) >> (S))/* * Push to main memory all cache lines associated with * the specified range of virtual memory addresses * * A: Address of first byte in range to flush * N: Number of bytes to flush * Note - flush_dcache_range() does a "sync", does NOT invalidate */#define DCACHE_FLUSH_N_SYNC( A, N )        flush_dcache_range( (A), ((A)+(N)) )typedef struct addressTableEntryStruct  {    u32 hi;    u32 lo;} addrTblEntry;u32uncachedPages( u32 pages  );u32hashTableFunction( u32 macH, u32 macL, u32 HashSize, u32 hash_mode );unsigned intinitAddressTable( u32 port, u32 hashMode, u32 hashSize );intaddAddressTableEntry( u32 port, u32 macH, u32 macL, u32 rd, u32 skip          );#endif                                           /* #ifndef _ADDRESS_TABLE_H */

⌨️ 快捷键说明

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