jch_zxc 发表于 2010-09-17 12:43

请教 用户空间 内核空间 传数据 取地址

假定传到驱动的参数是个结构体指针,可不可以在驱动中对这个指向用户空间的指针的结构体成员取地址?取的地址肯定也是指向用户空间的。

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了?

PCliangtao 发表于 2010-09-17 15:42

这个当然是可以的... 取变量的地址无内核态与用户态并不无关系...
    但是这段程序必须在传递这个参数的进程的进程上下文中执行...

ljysyn 发表于 2010-09-17 16:05

可以的

omycle 发表于 2010-09-20 09:08

可以的。
页: [1]
查看完整版本: 请教 用户空间 内核空间 传数据 取地址