put_user — Write a simple value into user space.
Value to copy to user space.
Destination address, in user space.
User context only. This function may sleep.
This macro copies a single simple value from kernel space to user space. It supports simple types like char and int, but not larger data types like structures or arrays.
ptr must have pointer-to-simple-variable type, and x must be assignable to the result of dereferencing ptr.
Returns zero on success, or -EFAULT on error.