e1000_check_64k_bound检测是否是64K对齐。
e1000_setup_tx_resources用于申请一个传输描述符环以及传输所需的dma缓冲区
e1000_setup_all_tx_resources用于申请所有的传输描述符环合所需要的dma缓冲区。
e1000_configure_tx配置传输相关的寄存器
e1000_setup_rx_resources,e1000_setup_all_rx_resources同上面的描述
e1000_setup_rctl用于设置rctl
e1000_configure_rx配置接收相关的寄存器
e1000_free_tx_resources,e1000_free_all_tx_resources,e1000_unmap_and_free_tx_resource,e1000_clean_tx_ring,
e1000_clean_all_tx_rings释放关于发送的资源
e1000_free_rx_resources,e1000_free_all_rx_resources,e1000_clean_rx_ring,e1000_clean_all_rx_rings用于释放接收的资源。
后来看的很快了,感觉自己对这些了解的多了一点,两天多的代码浏览,发现一些东西需要总结一下:
首先,重要的不是代码,而是其中的数据结构的含义,为什么在数据结构定义的时候没有写好注释呢?
其次,函数的名称和变量的名称定义的非常好,以至于我都不用去详细看其中的内容。最后我决定自己应该转到e1000e的驱动中了,毕竟是自己在学习,在改,还是到自己需要用的那个版本吧。传说中的神啊,只能自己救自己。