c - copy_to_user() and copy_from_user() for basic data type -
i'm writing linux kernel driver , every function sends data userspace or reads data userspace, using copy_to_user() , copy_from_user(). question is: need use these calls if copying basic data type such u32 or int?
if function receives pointer user-space data, have use copy_from_user() copy pointed-to data user space kernel space (and vice versa).
note pointer value passed value (like c parameters), don't have copy_from_user() obtain pointer value before can copy_from_user() data points to.
numeric arguments work same way pointer arguments; in c terms, they're both scalars. don't have use copy_from_user() copy value of parameter; that's been copied. have use copy data that's pointed passed pointer.
so if have parameter of type int, can use directly. if parameter points int, int object in user space, , need use copy_to_user copy value of object kernel space.
Comments
Post a Comment