The
fetch
functions are designed to copy small amounts of data from user-space
of the current process.
If read is successful, it is performed atomically.
The data read must be naturally aligned.
The
fetch
routines provide the following functionality:
fubyte()
|
|
Fetches a byte of data from the user-space address
base.
The byte read is zero-extended into the results variable.
|
fuword()
|
|
Fetches a word of data (long) from the user-space address
base.
|
fuword16()
|
|
Fetches 16 bits of data from the user-space address
base.
The half-word read is zero-extended into the results variable.
|
fuword32()
|
|
Fetches 32 bits of data from the user-space address
base.
|
fuword64()
|
|
Fetches 64 bits of data from the user-space address
base.
|
fueword()
|
|
Fetches a word of data (long) from the user-space address
base
and stores the result in the variable pointed by
val.
|
fueword32()
|
|
Fetches 32 bits of data from the user-space address
base
and stores the result in the variable pointed by
val.
|
fueword64()
|
|
Fetches 64 bits of data from the user-space address
base
and stores the result in the variable pointed by
val.
|
The callers of
fuword(),
fuword32()
and
fuword64()
functions cannot distinguish between -1 read from
userspace and function failure.