alloc_netdev()函数生成一个net_device结构体,对其成员赋值并返回该结构体的指针。第一个参数是设备私有成员的大小,第二个参数为设备名,第三个参数为net_device的setup()函数指针。setup()函数接收的参数为struct
net_device指针,用于预置net_device成员的值。
linux-2.6.22/net/core/dev.c
----------------------------------------
struct net_device *alloc_netdev(int sizeof_priv, const char
*name,
{
}
alloc_etherdev()是alloc_netdev()针对以太网的"快捷"函数
linux-2.6.22/net/ethernet/eth.c
----------------------------------------
struct net_device *alloc_etherdev(int sizeof_priv)
{
----returnalloc_netdev(sizeof_priv,
"eth%d",ether_setup);
}
+--------------+
|
|
|--------------|
| base_addr |
|--------------|
|
|
|
|
|--------------|
| priv
|---+
|--------------| |
|
| |
|
| |
+--------------+<--+
|
|
|
| sizeof_priv
|
|
+--------------+
本文详细介绍了alloc_netdev函数的功能及实现过程。该函数用于创建net_device结构体,并通过setup函数初始化成员变量。同时,文章还提及了alloc_etherdev函数作为alloc_netdev函数的一个特例。

338

被折叠的 条评论
为什么被折叠?



