gpt4 book ai didi

linux-device-driver - cdev_alloc 和 cdev_init 有什么区别

转载 作者:行者123 更新时间:2023-12-01 02:20:40 24 4
gpt4 key购买 nike

我正在创建一个字符设备。我找到了两种初始化字符设备的方法

cdev_alloc


cdev_init

根据书,如果我嵌入 struct cdev在我的设备结构中,我应该使用 cdev_init
谁能告诉我它们之间有什么区别?

最佳答案

您可以使用:

struct cdev my_cdev;

在这种情况下,您不需要调用 cdev_alloc,因为内存已经分配。相反,您必须调用 cdev_init(&my_cdev, &fops) .
然后 my_cdev.owner = THIS_MODULE;
或者

您可以使用:
struct cdev *my_cdev_p;

在这种情况下,您必须调用 cdev_alloc()来分配内存。
然后,您必须初始化 my_cdev_p->ops=&fops;my_cdev_p->owner = THIS_MODULE; .从不使用 cdev_init()在这种情况下!

请注意,上述 2 种方法不属于旧机制。

关于linux-device-driver - cdev_alloc 和 cdev_init 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20783877/

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