__copy_to_user_inatomic — Copy a block of data into user space, with less checking.
unsigned long __copy_to_user_inatomic ( | void __user * to, |
const void * from, | |
unsigned long n) ; |
to
Destination address, in user space.
from
Source address, in kernel space.
n
Number of bytes to copy.
Copy data from kernel space to user space. Caller must check
the specified block with access_ok
before calling this function.
The caller should also make sure he pins the user space address
so that we don't result in page fault and sleep.
Here we special-case 1, 2 and 4-byte copy_*_user invocations. On a fault we return the initial request size (1, 2 or 4), as copy_*_user should do. If a store crosses a page boundary and gets a fault, the x86 will not write anything, so this is accurate.