Provided by: freebsd-manpages_11.1-3_all bug

NAME

       fetch, fubyte, fuswintr, 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);

       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>

       int
       fuswintr(void *base);

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.

       fuswintr()   Fetches a short word of data from the user-space address base.  This  function  is  safe  to
                    call during an interrupt context.

       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.

RETURN VALUES

       The  fubyte(),  fuword(),  fuword16(),  fuword32(),  fuword64(), and fuswintr() 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                                          October 29, 2014                                        FETCH(9)