gpt4 book ai didi

linux - 在一个驱动模块中声明多个设备

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:27:24 31 4
gpt4 key购买 nike

我必须在 open 调用中声明多个设备。现在有没有一种方法可以将次要编号固定为 0、1、2、3,这样我就可以在每次打开时从 filp->f_dentry->inode 中提取它并将其放入 struct scull_dev[]阅读写作或千钧一发,然后生活变得轻松:P。或者它们是让生活更轻松的一种方式?

最佳答案

如果我了解您的需求,除了初始化和清理之外,您不应该直接访问您的设备。看看:

http://www.cs.uni.edu/~diesburg/courses/dd/code/scull/pipe.c

open函数中,可以通过以下方式获取当前需要打开的设备:

struct scull_pipe *dev;
dev = container_of(inode->i_cdev, struct scull_pipe, cdev);

您可以在其他函数中看到如何通过内核传递给这些函数的参数来访问设备。例如:

static ssize_t scull_p_write(struct file *filp, const char __user *buf, size_t count,
loff_t *f_pos)
{
struct scull_pipe *dev = filp->private_data;

关于linux - 在一个驱动模块中声明多个设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32634927/

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