LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1421|回复: 1

求助: 内核 用户 数据可否取地址

[复制链接]
发表于 2010-9-17 12:50:08 | 显示全部楼层 |阅读模式
假定传到驱动的参数是个结构体指针,可不可以在驱动中对这个指向用户空间的指针的结构体成员取地址?取的地址肯定也是指向用户空间的。

typedef struct {
    int in;
    int out;
} Data;

可不可以在驱动中这样写:
int *pUserIn = &((Data *) arg)->in;    // 可以取指向用户空间指针的成员的地址吗???
int *pUserOut = &((Data *) arg)->out;
以后就可以用copy_to_user, copy_from_user处理pUserIn和pOurOut了?
发表于 2010-9-18 01:46:47 | 显示全部楼层
不可以,用户空间的内存页不是永远有效,随时会被交换出去(swap out)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表