fetch, fubyte, fuword, fuword16, fuword32, fuword64, fueword, fueword32, fueword64 — fetch data from
Contents
Description
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.
Name
fetch, fubyte, fuword, fuword16, fuword32, fuword64, fueword, fueword32, fueword64 — fetch data from
user-space
Return Values
The fubyte(), fuword(), fuword16(), fuword32(), and fuword64() functions return the data fetched or -1 on
failure. The fueword(), fueword32() and fueword64() functions return 0 on success and -1 on failure.
See Also
copy(9), store(9) Debian January 23, 2020 FETCH(9)
Synopsis
#include<sys/types.h>#include<sys/systm.h>intfubyte(volatileconstvoid*base);
longfuword(volatileconstvoid*base);
intfuword16(volatileconstvoid*base);
int32_tfuword32(volatileconstvoid*base);
int64_tfuword64(volatileconstvoid*base);
intfueword(volatileconstvoid*base, long*val);
intfueword32(volatileconstvoid*base, int32_t*val);
intfueword64(volatileconstvoid*base, int64_t*val);
#include<sys/resourcevar.h>