我已经成功地将设备属性添加到我的设备驱动程序中,但是在我发现的所有示例中,该属性用于向内核注入数据,而我的目标是从内核导出一些数据以使其可见在用户空间。从内核空间写入该文件的正确方法是什么?那么可以从用户空间中检索数据吗?
答案 0 :(得分:2)
要从内核读取数据,只需将其返回show
处理程序:
static ssize_t show_myvalue(struct device *dev,
struct device_attribute *attr, char *buf)
{
struct my_device *mydev = ...dev...;
return sprintf(buf, "%d\n", mydev->myvalue);
}
static DEVICE_ATTR(myvalue, S_IRUGO, show_myvalue, NULL);
如果您必须通知用户空间更改,请使用sysfs_notify
。