January 7, 1996 FETCH 9

### NAME

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

### SYNOPSIS

```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 context.

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.