/**根据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、首先定义了几个局部变量: