FETCH(9)               NetBSD Kernel Developer's Manual               FETCH(9)

NAME
     fetch, fubyte, fuibyte, fusword, fuswintr, fuword, fuiword -- fetch data
     from user-space

SYNOPSIS
     #include <sys/types.h>
     #include <sys/systm.h>

     int
     fubyte(const void *base);

     int
     fusword(const void *base);

     int
     fuswintr(const void *base);

     long
     fuword(const void *base);

DESCRIPTION
     The fetch functions are designed to copy small amounts of data from user-
     space.

     The fetch routines provide the following functionality:

     fubyte()    Fetches a byte of data from the user-space address base.

     fusword()   Fetches a short word 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 con-
                 text.

     fuword()    Fetches a word of data from the user-space address base.

RETURN VALUES
     The fetch functions return the data fetched or -1 on failure.  Note that
     these functions all do "unsigned" access, and therefore will never sign
     extend byte or short values.  This prevents ambiguity with the error
     return value for all functions except fuword().

SEE ALSO
     copy(9), store(9)

BUGS
     The function fuword() has no way to unambiguously signal an error,
     because the data it reads might legitimately be the same as the -1 used
     to indicate an error.  The other functions do not have this problem
     because the unsigned values returned by those can never match the -1
     error return value.

NetBSD 5.0_STABLE               January 7, 1996              NetBSD 5.0_STABLE
