FreeBSD manual

download PDF document: fetch.9.pdf

FETCH(9) FreeBSD Kernel Developer's Manual FETCH(9)
NAME fetch, fubyte, fuword, fuword16, fuword32, fuword64, fueword, fueword32, fueword64 - fetch data from user-space
SYNOPSIS #include <sys/types.h> #include <sys/systm.h>
int fubyte(volatile const void *base);
long fuword(volatile const void *base);
int fuword16(volatile const void *base);
int32_t fuword32(volatile const void *base);
int64_t fuword64(volatile const void *base);
int fueword(volatile const void *base, long *val);
int fueword32(volatile const void *base, int32_t *val);
int fueword64(volatile const void *base, int64_t *val);
DESCRIPTION The fetch functions are designed to copy small amounts of data from user- space of the current process. If the user address is naturally aligned, then the operation will be performed atomically. Otherwise it may fail or be performed non-atomically, depending on the platform.
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.
distinguish between -1 read from userspace and function failure.
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)
FreeBSD 14.0-RELEASE-p11 July 22, 2021 FreeBSD 14.0-RELEASE-p11