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

📄 bcm5700-7.4.11-2.6.8.1.patch

📁 网络编程,关于网卡驱动方面的资料.
💻 PATCH
📖 第 1 页 / 共 5 页
字号:
+//                {+                    pAnInfo->State = AN_STATE_LINK_OK;+//                }+//                else+//                {+//                    AnRet = AUTONEG_STATUS_FAILED;+//                    break;+//                }+            }++            break;++        case AN_STATE_LINK_OK:+            pAnInfo->mr_an_complete = AN_TRUE;+            pAnInfo->mr_link_ok = AN_TRUE;+            AnRet = AUTONEG_STATUS_DONE;++            break;++        case AN_STATE_NEXT_PAGE_WAIT_INIT:+            break;++        case AN_STATE_NEXT_PAGE_WAIT:+            break;++        default:+            AnRet = AUTONEG_STATUS_FAILED;+            break;+    }++    return AnRet;+}+#endif /* INCLUDE_TBI_SUPPORT */+diff -u --recursive --new-file linux-2.6.8.1/drivers/net/bcm/autoneg.h linux-2.6.8.1.patch/drivers/net/bcm/autoneg.h--- linux-2.6.8.1/drivers/net/bcm/autoneg.h	1969-12-31 16:00:00.000000000 -0800+++ linux-2.6.8.1.patch/drivers/net/bcm/autoneg.h	2004-12-15 19:14:40.135939648 -0800@@ -0,0 +1,418 @@+/******************************************************************************/+/*                                                                            */+/* Broadcom BCM5700 Linux Network Driver, Copyright (c) 2000 - 2004 Broadcom  */+/* Corporation.                                                               */+/* All rights reserved.                                                       */+/*                                                                            */+/* This program is free software; you can redistribute it and/or modify       */+/* it under the terms of the GNU General Public License as published by       */+/* the Free Software Foundation, located in the file LICENSE.                 */+/*                                                                            */+/* History:                                                                   */+/******************************************************************************/+++#ifndef AUTONEG_H+#define AUTONEG_H++++/******************************************************************************/+/* Constants. */+/******************************************************************************/++#define AN_LINK_TIMER_INTERVAL_US           12000       /* 10ms */++/* TRUE, FALSE */+#define AN_TRUE                             1+#define AN_FALSE                            0++++/******************************************************************************/+/* Main data structure for keeping track of 802.3z auto-negotation state */+/* variables as shown in Figure 37-6 of the IEEE 802.3z specification. */+/******************************************************************************/++typedef struct+{+    /* Pointer to the operating system specific data structure. */+    void *pContext;++    /* Current auto-negotiation state. */+    unsigned long State;+    #define AN_STATE_UNKNOWN                        0+    #define AN_STATE_AN_ENABLE                      1+    #define AN_STATE_AN_RESTART_INIT                2+    #define AN_STATE_AN_RESTART                     3+    #define AN_STATE_DISABLE_LINK_OK                4+    #define AN_STATE_ABILITY_DETECT_INIT            5+    #define AN_STATE_ABILITY_DETECT                 6+    #define AN_STATE_ACK_DETECT_INIT                7+    #define AN_STATE_ACK_DETECT                     8+    #define AN_STATE_COMPLETE_ACK_INIT              9+    #define AN_STATE_COMPLETE_ACK                   10+    #define AN_STATE_IDLE_DETECT_INIT               11+    #define AN_STATE_IDLE_DETECT                    12+    #define AN_STATE_LINK_OK                        13+    #define AN_STATE_NEXT_PAGE_WAIT_INIT            14+    #define AN_STATE_NEXT_PAGE_WAIT                 16++    /* Link timer. */+    unsigned long LinkTime_us;++    /* Current time. */+    unsigned long CurrentTime_us;++    /* Ability, idle, and ack match functions. */+    unsigned long AbilityMatchCnt;++    /* Need these values for consistency check. */+    unsigned short AbilityMatchCfg;++    unsigned short reserved;++    char AbilityMatch;+    char IdleMatch;+    char AckMatch;+    char reserved1;++    /* Tx config data */+    union+    {+        /* The TxConfig register is arranged as follows:                      */+        /*                                                                    */+        /* MSB                                                           LSB  */+        /* +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+  */+        /* | D7| D6| D5| D4| D3| D2| D1| D0|D15|D14|D13|D12|D11|D10| D9| D8|  */+        /* +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+  */+        struct+        {+#ifdef BIG_ENDIAN_HOST+            unsigned short D7:1;        /* PS1 */+            unsigned short D6:1;        /* HD */+            unsigned short D5:1;        /* FD */+            unsigned short D4:1;+            unsigned short D3:1;+            unsigned short D2:1;+            unsigned short D1:1;+            unsigned short D0:1;+            unsigned short D15:1;       /* NP */+            unsigned short D14:1;       /* ACK */+            unsigned short D13:1;       /* RF2 */+            unsigned short D12:1;       /* RF1 */+            unsigned short D11:1;+            unsigned short D10:1;+            unsigned short D9:1;+            unsigned short D8:1;        /* PS2 */+#else /* BIG_ENDIAN_HOST */+            unsigned int D8:1;        /* PS2 */+            unsigned int D9:1;+            unsigned int D10:1;+            unsigned int D11:1;+            unsigned int D12:1;       /* RF1 */+            unsigned int D13:1;       /* RF2 */+            unsigned int D14:1;       /* ACK */+            unsigned int D15:1;       /* NP */+            unsigned int D0:1;+            unsigned int D1:1;+            unsigned int D2:1;+            unsigned int D3:1;+            unsigned int D4:1;+            unsigned int D5:1;        /* FD */+            unsigned int D6:1;        /* HD */+            unsigned int D7:1;        /* PS1 */+#endif+        } bits;++        unsigned short AsUSHORT;++        #define D8_PS2                      bits.D8+        #define D12_RF1                     bits.D12+        #define D13_RF2                     bits.D13+        #define D14_ACK                     bits.D14+        #define D15_NP                      bits.D15+        #define D5_FD                       bits.D5+        #define D6_HD                       bits.D6+        #define D7_PS1                      bits.D7+    } TxConfig;++    /* Rx config data */+    union+    {+        /* The RxConfig register is arranged as follows:                      */+        /*                                                                    */+        /* MSB                                                           LSB  */+        /* +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+  */+        /* | D7| D6| D5| D4| D3| D2| D1| D0|D15|D14|D13|D12|D11|D10| D9| D8|  */+        /* +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+  */+        struct+        {+#ifdef BIG_ENDIAN_HOST+	    unsigned short D7:1;        /* PS1 */+            unsigned short D6:1;        /* HD */+	    unsigned short D5:1;        /* FD */+            unsigned short D4:1;+            unsigned short D3:1;+            unsigned short D2:1;+            unsigned short D1:1;+            unsigned short D0:1;+  	    unsigned short D15:1;       /* NP */+            unsigned short D14:1;       /* ACK */+            unsigned short D13:1;       /* RF2 */    +            unsigned short D12:1;       /* RF1 */+            unsigned short D11:1;+            unsigned short D10:1;+            unsigned short D9:1;+            unsigned short D8:1;        /* PS2 */+#else /* BIG_ENDIAN_HOST */+            unsigned int D8:1;        /* PS2 */+            unsigned int D9:1;+            unsigned int D10:1;+            unsigned int D11:1;+            unsigned int D12:1;       /* RF1 */+            unsigned int D13:1;       /* RF2 */+            unsigned int D14:1;       /* ACK */+            unsigned int D15:1;       /* NP */+            unsigned int D0:1;+            unsigned int D1:1;+            unsigned int D2:1;+            unsigned int D3:1;+            unsigned int D4:1;+            unsigned int D5:1;        /* FD */+            unsigned int D6:1;        /* HD */+            unsigned int D7:1;        /* PS1 */+#endif+        } bits;++        unsigned short AsUSHORT;+    } RxConfig;++    #define AN_CONFIG_NP                            0x0080+    #define AN_CONFIG_ACK                           0x0040+    #define AN_CONFIG_RF2                           0x0020+    #define AN_CONFIG_RF1                           0x0010+    #define AN_CONFIG_PS2                           0x0001+    #define AN_CONFIG_PS1                           0x8000+    #define AN_CONFIG_HD                            0x4000+    #define AN_CONFIG_FD                            0x2000+++    /* Management registers. */++    /* Control register. */+    union+    {+        struct+        {+            unsigned int an_enable:1;+            unsigned int loopback:1;+            unsigned int reset:1;+            unsigned int restart_an:1;+        } bits;++        unsigned short AsUSHORT;++        #define mr_an_enable                Mr0.bits.an_enable+        #define mr_loopback                 Mr0.bits.loopback+        #define mr_main_reset               Mr0.bits.reset+        #define mr_restart_an               Mr0.bits.restart_an+    } Mr0;++    /* Status register. */+    union+    {+        struct+        {+            unsigned int an_complete:1;+            unsigned int link_ok:1;+        } bits;++        unsigned short AsUSHORT;++        #define mr_an_complete              Mr1.bits.an_complete+        #define mr_link_ok                  Mr1.bits.link_ok+    } Mr1;++    /* Advertisement register. */+    union+    {+        struct+        {+            unsigned int reserved_4:5;+            unsigned int full_duplex:1;+            unsigned int half_duplex:1;+            unsigned int sym_pause:1;+            unsigned int asym_pause:1;+            unsigned int reserved_11:3;+            unsigned int remote_fault1:1;+            unsigned int remote_fault2:1;+            unsigned int reserved_14:1;+            unsigned int next_page:1;+        } bits;++        unsigned short AsUSHORT;++        #define mr_adv_full_duplex          Mr4.bits.full_duplex+        #define mr_adv_half_duplex          Mr4.bits.half_duplex+        #define mr_adv_sym_pause            Mr4.bits.sym_pause+        #define mr_adv_asym_pause           Mr4.bits.asym_pause+        #define mr_adv_remote_fault1        Mr4.bits.remote_fault1+        #define mr_adv_remote_fault2        Mr4.bits.remote_fault2+        #define mr_adv_next_page            Mr4.bits.next_page+    } Mr4;++    /* Link partner advertisement register. */+    union+    {+        struct+        {+            unsigned int reserved_4:5;+            unsigned int lp_full_duplex:1;+            unsigned int lp_half_duplex:1;+            unsigned int lp_sym_pause:1;+            unsigned int lp_asym_pause:1;+            unsigned int reserved_11:3;+            unsigned int lp_remote_fault1:1;+            unsigned int lp_remote_fault2:1;+            unsigned int lp_ack:1;+            unsigned int lp_next_page:1;+        } bits;++        unsigned short AsUSHORT;++        #define mr_lp_adv_full_duplex       Mr5.bits.lp_full_duplex+        #define mr_lp_adv_half_duplex       Mr5.bits.lp_half_duplex+        #define mr_lp_adv_sym_pause         Mr5.bits.lp_sym_pause+        #define mr_lp_adv_asym_pause        Mr5.bits.lp_asym_pause+        #define mr_lp_adv_remote_fault1     Mr5.bits.lp_remote_fault1+        #define mr_lp_adv_remote_fault2     Mr5.bits.lp_remote_fault2+        #define mr_lp_adv_next_page         Mr5.bits.lp_next_page+    } Mr5;++    /* Auto-negotiation expansion register. */+    union+    {+        struct+        {+            unsigned int reserved_0:1;+            unsigned int page_received:1;+            unsigned int next_pageable:1;+            unsigned int reserved_15:13;+        } bits;++        unsigned short AsUSHORT;+    } Mr6;++    /* Auto-negotiation next page transmit register. */+    union+    {+        struct+        {+            unsigned int code_field:11;+            unsigned int toggle:1;+            unsigned int ack2:1;+            unsigned int message_page:1;

⌨️ 快捷键说明

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