亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 看多內(nèi)核源碼里DM9000驅(qū)動或熟悉網(wǎng)絡(luò)驅(qū)動的大俠們進(jìn)來指點(diǎn)指點(diǎn)啊 [打印本頁]

作者: lovesunshine    時(shí)間: 2008-11-19 21:57
標(biāo)題: 看多內(nèi)核源碼里DM9000驅(qū)動或熟悉網(wǎng)絡(luò)驅(qū)動的大俠們進(jìn)來指點(diǎn)指點(diǎn)啊
看多內(nèi)核源碼里DM9000驅(qū)動或熟悉網(wǎng)絡(luò)驅(qū)動的大俠們進(jìn)來指點(diǎn)指點(diǎn)啊

static int
dm9000_probe(struct platform_device *pdev)
{
。。。。。。。
db = (struct board_info *) ndev->priv;。。。。

ether_setup(ndev);

        ndev->open                 = &dm9000_open;
        ndev->hard_start_xmit    = &dm9000_start_xmit;
        ndev->tx_timeout         = &dm9000_timeout;
        ndev->watchdog_timeo = msecs_to_jiffies(watchdog);
        ndev->stop                 = &dm9000_stop;
        ndev->set_multicast_list = &dm9000_hash_table;
        ndev->ethtool_ops         = &dm9000_ethtool_ops;
        ndev->do_ioctl                 = &dm9000_ioctl;

         db->msg_enable       = NETIF_MSG_LINK;
        db->mii.phy_id_mask  = 0x1f;
        db->mii.reg_num_mask = 0x1f;
        db->mii.force_media  = 0;
        db->mii.full_duplex  = 0;
        db->mii.dev             = ndev;
        db->mii.mdio_read    = dm9000_phy_read;
        db->mii.mdio_write   = dm9000_phy_write;
。。。。}

請問db->mii.mdio_read  和db->mii.mdio_write 是什么時(shí)候如何被調(diào)用的???

另外我不知道  這個(gè)db變量只是ndev->priv成員,源碼里卻有多出判斷 db->msg_enable值的地方,我不知道 db->msg_enable是怎么被修改了的
比如:
        if (netif_msg_rx_status(db))
                        dev_dbg(db->dev, "RX: status %02x, length %04x\n",
                                rxhdr.RxStatus, RxLen);

                /* Packet Status check */
                if (RxLen < 0x40) {
                        GoodPacket = false;
                        if (netif_msg_rx_err(db))
                                dev_dbg(db->dev, "RX: Bad Packet (runt)\n");
                }
if (rxhdr.RxStatus & 0xbf) {
                        GoodPacket = false;
                        if (rxhdr.RxStatus & 0x01) {
                                if (netif_msg_rx_err(db))
                                        dev_dbg(db->dev, "fifo error\n");
                                dev->stats.rx_fifo_errors++;
                        }
                        if (rxhdr.RxStatus & 0x02) {
                                if (netif_msg_rx_err(db))
                                        dev_dbg(db->dev, "crc error\n");
                                dev->stats.rx_crc_errors++;
                        }
                        if (rxhdr.RxStatus & 0x80) {
                                if (netif_msg_rx_err(db))
                                        dev_dbg(db->dev, "length error\n");
                                dev->stats.rx_length_errors++;
                        }
                }

怎么沒人指點(diǎn)一下呢

[ 本帖最后由 lovesunshine 于 2008-11-21 09:09 編輯 ]
作者: embeddedlwp    時(shí)間: 2011-06-11 20:02
也想知道,有高人指點(diǎn)嗎
作者: spray428    時(shí)間: 2011-06-13 15:12
接收中斷響應(yīng)后修改的
作者: 星閃夜空    時(shí)間: 2013-07-31 10:47
回復(fù) 1# lovesunshine

    1、db->mii.mdio_read是在檢查MII接口在mii_check_media函數(shù)中被調(diào)用的,用來讀取phy的link狀態(tài)信息;db->mii.mdio_write是在關(guān)閉dm9000時(shí)調(diào)用的,用來將phy狀態(tài)信息設(shè)置為RESET。
    2、db->msg_enable是在探測函數(shù)中被初始化為NETIF_MSG_LINK。



   




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2