Linux2.6.39下DM9K驱动源码分析(3)

/**根据DM9000的数据位宽,初始化读写数据帧的函数指针初始化net_device给其结构中的成员变量和成员函数赋值*/
    /* ensure at least we have a default set of IO routines */
    dm9000_set_io(db, iosize);
    /*根据platform的定义(16bit),再次初始化读写数据帧的函数指针*/
    /* check to see if anything is being over-ridden */
    if (pdata != NULL) {
        /* check to see if the driver wants to over-ride the
         * default IO width */
        /****IOctl flag在驱动加载的时候被传入********/
        if (pdata->flags & DM9000_PLATF_8BITONLY)
            dm9000_set_io(db, 1);

        if (pdata->flags & DM9000_PLATF_16BITONLY)
            dm9000_set_io(db, 2);

        if (pdata->flags & DM9000_PLATF_32BITONLY)
            dm9000_set_io(db, 4);

        /* check to see if there are any IO routine
         * over-rides */
        /*检查看看是否有任何IO常规越权*/
        if (pdata->inblk != NULL)
            db->inblk = pdata->inblk;

        if (pdata->outblk != NULL)
            db->outblk = pdata->outblk;

        if (pdata->dumpblk != NULL)
            db->dumpblk = pdata->dumpblk;

        db->flags = pdata->flags;
    }

/**************************************************************************************************************************************

*到此为止总结下prob究竟做了些什么事,那些结构里面多了什么

1、首先定义了几个局部变量:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wyxjyy.html