DOKK / manpages / debian 10 / freebsd-manpages / fubyte.9freebsd.en
FETCH(9) Kernel Developer's Manual FETCH(9)

fetch, fubyte, fuword, fuword16, fuword32, fuword64, fueword, fueword32, fueword64fetch data from user-space

#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);

long
fueword(volatile const void *base, long *val);

int32_t
fueword32(volatile const void *base, int32_t *val);

int64_t
fueword64(volatile const void *base, int64_t *val);

#include <sys/resourcevar.h>

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:

()
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.
()
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.
()
Fetches a word of data (long) from the user-space address base and stores the result in the variable pointed by val.
()
Fetches 32 bits of data from the user-space address base and stores the result in the variable pointed by val.
()
Fetches 64 bits of data from the user-space address base and stores the result in the variable pointed by val.

The callers of (), () and () functions cannot distinguish between -1 read from userspace and function failure.

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.

copy(9), store(9)

April 17, 2018 Debian