gpt4 book ai didi

c - dev_net_set 在 Linux 中有什么作用?

转载 作者:行者123 更新时间:2023-12-04 06:40:05 26 4
gpt4 key购买 nike

我正在编写一个基于环回驱动程序的简单网络设备驱动程序,并希望注册我的net_device 结构。 Thisthat关于编写网络设备的页面说只调用 register_netdev。但是他们正在用 PCI Express 和其他复杂的东西编写花哨的驱动程序。

因此,如果我只想要环回驱动程序之类的东西,我大概应该将我的代码基于 loopback.c。我的问题是,loopback_net_init 中这段代码的第一行是做什么的:

dev_net_set(dev, net);
err = register_netdev(dev);

显然 net 是由 net_namespace.c 中的这段代码决定的:

register_pernet_device(ops) ...
__register_pernet_operations(list, ops)
for_each_net(net) ...

这个循环是为了什么?如果我跳过 dev_net_set 调用,可能会出现什么问题?为什么其他人不使用它?

最佳答案

据我所知,net 是一个允许内核与设备交互的结构。您需要它来注册设备并在模块清理功能中将其删除。请查看 linux/net/8021q/下的代码以获取示例。

关于c - dev_net_set 在 Linux 中有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56875655/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com