📄 smctr.h
字号:
#define RAM_SIZE 0x10000#define INIT_SYS_CONFIG_PTR_OFFSET (RAM_SIZE-ISCP_BLOCK_SIZE)#define SCGP_BLOCK_OFFSET 0#define SCLB_NOT_VALID 0x0000 /* Initially, SCLB not valid */#define SCLB_VALID 0x8000 /* Host tells TRC SCLB valid */#define SCLB_PROCESSED 0x0000 /* TRC says SCLB processed */#define SCLB_RESUME_CONTROL_NOT_VALID 0x0000 /* Initially, RC not valid */#define SCLB_RESUME_CONTROL_VALID 0x4000 /* Host tells TRC RC valid */#define SCLB_IACK_CODE_NOT_VALID 0x0000 /* Initially, IACK not valid */#define SCLB_IACK_CODE_VALID 0x2000 /* Host tells TRC IACK valid */#define SCLB_CMD_NOP 0x0000#define SCLB_CMD_REMOVE 0x0001#define SCLB_CMD_SUSPEND_ACB_CHAIN 0x0002#define SCLB_CMD_SET_INTERRUPT_MASK 0x0003#define SCLB_CMD_CLEAR_INTERRUPT_MASK 0x0004#define SCLB_CMD_RESERVED_5 0x0005#define SCLB_CMD_RESERVED_6 0x0006#define SCLB_CMD_RESERVED_7 0x0007#define SCLB_CMD_RESERVED_8 0x0008#define SCLB_CMD_RESERVED_9 0x0009#define SCLB_CMD_RESERVED_A 0x000A#define SCLB_CMD_RESERVED_B 0x000B#define SCLB_CMD_RESERVED_C 0x000C#define SCLB_CMD_RESERVED_D 0x000D#define SCLB_CMD_RESERVED_E 0x000E#define SCLB_CMD_RESERVED_F 0x000F#define SCLB_RC_ACB 0x0001 /* Action Command Block Chain */#define SCLB_RC_RES0 0x0002 /* Always Zero */#define SCLB_RC_RES1 0x0004 /* Always Zero */#define SCLB_RC_RES2 0x0008 /* Always Zero */#define SCLB_RC_RX_MAC_FCB 0x0010 /* RX_MAC_FCB Chain */#define SCLB_RC_RX_MAC_BDB 0x0020 /* RX_MAC_BDB Chain */#define SCLB_RC_RX_NON_MAC_FCB 0x0040 /* RX_NON_MAC_FCB Chain */#define SCLB_RC_RX_NON_MAC_BDB 0x0080 /* RX_NON_MAC_BDB Chain */#define SCLB_RC_TFCB0 0x0100 /* TX Priority 0 FCB Chain */#define SCLB_RC_TFCB1 0x0200 /* TX Priority 1 FCB Chain */#define SCLB_RC_TFCB2 0x0400 /* TX Priority 2 FCB Chain */#define SCLB_RC_TFCB3 0x0800 /* TX Priority 3 FCB Chain */#define SCLB_RC_TFCB4 0x1000 /* TX Priority 4 FCB Chain */#define SCLB_RC_TFCB5 0x2000 /* TX Priority 5 FCB Chain */#define SCLB_RC_TFCB6 0x4000 /* TX Priority 6 FCB Chain */#define SCLB_RC_TFCB7 0x8000 /* TX Priority 7 FCB Chain */#define SCLB_IMC_RES0 0x0001 /* */#define SCLB_IMC_MAC_TYPE_3 0x0002 /* MAC_ARC_INDICATE */#define SCLB_IMC_MAC_ERROR_COUNTERS 0x0004 /* */#define SCLB_IMC_RES1 0x0008 /* */#define SCLB_IMC_MAC_TYPE_2 0x0010 /* QUE_MAC_INDICATE */#define SCLB_IMC_TX_FRAME 0x0020 /* */#define SCLB_IMC_END_OF_TX_QUEUE 0x0040 /* */#define SCLB_IMC_NON_MAC_RX_RESOURCE 0x0080 /* */#define SCLB_IMC_MAC_RX_RESOURCE 0x0100 /* */#define SCLB_IMC_NON_MAC_RX_FRAME 0x0200 /* */#define SCLB_IMC_MAC_RX_FRAME 0x0400 /* */#define SCLB_IMC_TRC_FIFO_STATUS 0x0800 /* */#define SCLB_IMC_COMMAND_STATUS 0x1000 /* */#define SCLB_IMC_MAC_TYPE_1 0x2000 /* Self Removed */#define SCLB_IMC_TRC_INTRNL_TST_STATUS 0x4000 /* */#define SCLB_IMC_RES2 0x8000 /* */#define DMA_TRIGGER 0x0004#define FREQ_16MB_BIT 0x0010#define THDREN 0x0020#define CFG0_RSV1 0x0040#define CFG0_RSV2 0x0080#define ETREN 0x0100#define RX_OWN_BIT 0x0200#define RXATMAC 0x0400#define PROMISCUOUS_BIT 0x0800#define USETPT 0x1000#define SAVBAD_BIT 0x2000#define ONEQUE 0x4000#define NO_AUTOREMOVE 0x8000#define RX_FCB_AREA_8316 0x00000000#define RX_BUFF_AREA_8316 0x00000000#define TRC_POINTER(X) ((unsigned long)(X) - tp->ram_access)#define RX_FCB_TRC_POINTER(X) ((unsigned long)(X) - tp->ram_access + RX_FCB_AREA_8316)#define RX_BUFF_TRC_POINTER(X) ((unsigned long)(X) - tp->ram_access + RX_BUFF_AREA_8316)// Offset 0: MSR - Memory Select Register//#define r587_MSR 0x000 // Register Offset//#define MSR_RST 0x080 // LAN Controller Reset#define MSR_MENB 0x040 // Shared Memory Enable#define MSR_RA18 0x020 // Ram Address bit 18 (583, 584, 587)#define MSR_RA17 0x010 // Ram Address bit 17 (583, 584, 585/790)#define MSR_RA16 0x008 // Ram Address bit 16 (583, 584, 585/790)#define MSR_RA15 0x004 // Ram Address bit 15 (583, 584, 585/790)#define MSR_RA14 0x002 // Ram Address bit 14 (583, 584, 585/790)#define MSR_RA13 0x001 // Ram Address bit 13 (583, 584, 585/790)#define MSR_MASK 0x03F // Mask for Address bits RA18-RA13 (583, 584, 587)#define MSR 0x00#define IRR 0x04#define HWR 0x04#define LAAR 0x05#define IMCCR 0x05#define LAR0 0x08#define BDID 0x0E // Adapter ID byte register offset#define CSR 0x10#define PR 0x11#define MSR_RST 0x80#define MSR_MEMB 0x40#define MSR_0WS 0x20#define FORCED_16BIT_MODE 0x0002#define INTERFRAME_SPACING_16 0x0003 /* 6 bytes */#define INTERFRAME_SPACING_4 0x0001 /* 2 bytes */#define MULTICAST_ADDRESS_BIT 0x0010#define NON_SRC_ROUTING_BIT 0x0020#define LOOPING_MODE_MASK 0x0007/* * Decode firmware defines. */#define SWAP_BYTES(X) ((X & 0xff) << 8) | (X >> 8)#define WEIGHT_OFFSET 5#define TREE_SIZE_OFFSET 9#define TREE_OFFSET 11/* The Huffman Encoding Tree is constructed of these nodes. */typedef struct { __u8 llink; /* Short version of above node. */ __u8 tag; __u8 info; /* This node is used on decodes. */ __u8 rlink;} DECODE_TREE_NODE;#define ROOT 0 /* Branch value. */#define LEAF 0 /* Tag field value. */#define BRANCH 1 /* Tag field value. *//* * Multicast Table Structure */typedef struct { __u8 address[6]; __u8 instance_count;} McTable;/* * Fragment Descriptor Definition */typedef struct { __u8 *fragment_ptr; __u32 fragment_length;} FragmentStructure;/* * Data Buffer Structure Definition */typedef struct { __u32 fragment_count; FragmentStructure fragment_list[MAXFRAGMENTS];} DataBufferStructure;#pragma pack(1)typedef struct { __u8 IType; __u8 ISubtype;} Interrupt_Status_Word;#pragma pack(1)typedef struct BDBlockType { __u16 info; /* 02 */ __u32 trc_next_ptr; /* 06 */ __u32 trc_data_block_ptr; /* 10 */ __u16 buffer_length; /* 12 */ __u16 *data_block_ptr; /* 16 */ struct BDBlockType *next_ptr; /* 20 */ struct BDBlockType *back_ptr; /* 24 */ __u8 filler[8]; /* 32 */} BDBlock;#pragma pack(1)typedef struct FCBlockType { __u16 frame_status; /* 02 */ __u16 info; /* 04 */ __u32 trc_next_ptr; /* 08 */ __u32 trc_bdb_ptr; /* 12 */ __u16 frame_length; /* 14 */ BDBlock *bdb_ptr; /* 18 */ struct FCBlockType *next_ptr; /* 22 */ struct FCBlockType *back_ptr; /* 26 */ __u16 memory_alloc; /* 28 */ __u8 filler[4]; /* 32 */} FCBlock;#pragma pack(1)typedef struct SBlockType{ __u8 Internal_Error_Count; __u8 Line_Error_Count; __u8 AC_Error_Count; __u8 Burst_Error_Count; __u8 RESERVED_COUNTER_0; __u8 AD_TRANS_Count; __u8 RCV_Congestion_Count; __u8 Lost_FR_Error_Count; __u8 FREQ_Error_Count; __u8 FR_Copied_Error_Count; __u8 RESERVED_COUNTER_1; __u8 Token_Error_Count; __u16 TI_NDIS_Ring_Status; __u16 BCN_Type; __u16 Error_Code; __u16 SA_of_Last_AMP_SMP[3]; __u16 UNA[3]; __u16 Ucode_Version_Number; __u16 Status_CHG_Indicate; __u16 RESERVED_STATUS_0;} SBlock;#pragma pack(1)typedef struct ACBlockType { __u16 cmd_done_status; /* 02 */ __u16 cmd_info; /* 04 */ __u32 trc_next_ptr; /* 08 */ __u16 cmd; /* 10 */ __u16 subcmd; /* 12 */ __u16 data_offset_lo; /* 14 */ __u16 data_offset_hi; /* 16 */ struct ACBlockType *next_ptr; /* 20 */ __u8 filler[12]; /* 32 */} ACBlock;#define NUM_OF_INTERRUPTS 0x20#pragma pack(1)typedef struct { Interrupt_Status_Word IStatus[NUM_OF_INTERRUPTS];} ISBlock;#pragma pack(1)typedef struct { __u16 valid_command; /* 02 */ __u16 iack_code; /* 04 */ __u16 resume_control; /* 06 */ __u16 int_mask_control; /* 08 */ __u16 int_mask_state; /* 10 */ __u8 filler[6]; /* 16 */} SCLBlock;#pragma pack(1)typedef struct{ __u16 config; /* 02 */ __u32 trc_sclb_ptr; /* 06 */ __u32 trc_acb_ptr; /* 10 */ __u32 trc_isb_ptr; /* 14 */ __u16 isbsiz; /* 16 */ SCLBlock *sclb_ptr; /* 20 */ ACBlock *acb_ptr; /* 24 */ ISBlock *isb_ptr; /* 28 */ __u16 Non_Mac_Rx_Bdbs; /* 30 DEBUG */ __u8 filler[2]; /* 32 */} SCGBlock;#pragma pack(1)typedef struct{ __u32 trc_scgb_ptr; SCGBlock *scgb_ptr;} ISCPBlock;#pragma pack()typedef struct net_local { ISCPBlock *iscpb_ptr; SCGBlock *scgb_ptr; SCLBlock *sclb_ptr; ISBlock *isb_ptr; ACBlock *acb_head; ACBlock *acb_curr; ACBlock *acb_next; __u8 adapter_name[12]; __u16 num_rx_bdbs [NUM_RX_QS_USED]; __u16 num_rx_fcbs [NUM_RX_QS_USED]; __u16 num_tx_bdbs [NUM_TX_QS_USED]; __u16 num_tx_fcbs [NUM_TX_QS_USED]; __u16 num_of_tx_buffs; __u16 tx_buff_size [NUM_TX_QS_USED]; __u16 tx_buff_used [NUM_TX_QS_USED]; __u16 tx_queue_status [NUM_TX_QS_USED]; FCBlock *tx_fcb_head[NUM_TX_QS_USED]; FCBlock *tx_fcb_curr[NUM_TX_QS_USED]; FCBlock *tx_fcb_end[NUM_TX_QS_USED]; BDBlock *tx_bdb_head[NUM_TX_QS_USED]; __u16 *tx_buff_head[NUM_TX_QS_USED]; __u16 *tx_buff_end[NUM_TX_QS_USED]; __u16 *tx_buff_curr[NUM_TX_QS_USED]; __u16 num_tx_fcbs_used[NUM_TX_QS_USED]; FCBlock *rx_fcb_head[NUM_RX_QS_USED]; FCBlock *rx_fcb_curr[NUM_RX_QS_USED];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -