MINI2440+DM9000网络驱动分析之四

来源:互联网 发布:大数据专业 大学 编辑:程序博客网 时间:2024/05/21 15:39

    从之三的dm9000_probe()函数,到下面代码为止便进入内核网络子系统:

ret = register_netdev(ndev);

    从大的角度看,此函数有两个功能:一是命名我们的PHY的名字,如eth0、eth1等;二是通过函数register_netdevice(dev)正式入驻内核网络子系统.

 

1.  err = dev_alloc_name(dev, dev->name);
    此函便是实现我们PHY的名字,如eth0、eth1.其命名的依据是"%d",详细看源码;

 

2. err = register_netdevice(dev);
    此函数是正式入驻内核网络子系统.

    2-1.如果我们的net_device有初始化函数,就去调用它:

/* Init, if this function is available */if (dev->netdev_ops->ndo_init) {ret = dev->netdev_ops->ndo_init(dev);if (ret) {if (ret > 0)ret = -EIO;goto out;}}

 

3.由于网络子系统非常庞大,而且涉及很多网络方面的知识,以我们驱动具体平台具体PHY移植为目的达到即可.

   

   

 

原创粉丝点击