Skip site navigation (1)Skip section navigation (2)

FreeBSD Man Pages

Man Page or Keyword Search:
Man Architecture
Apropos Keyword Search (all sections) Output format
home | help
COPY(9)                FreeBSD Kernel Developer's Manual               COPY(9)

NAME
     copy, copyin, copyin_nofault, copyout, copyout_nofault, copystr,
     copyinstr - kernel copy functions

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

     int
     copyin(const void *uaddr, void *kaddr, size_t len);

     int
     copyin_nofault(const void *uaddr, void *kaddr, size_t len);

     int
     copyout(const void *kaddr, void *uaddr, size_t len);

     int
     copyout_nofault(const void *kaddr, void *uaddr, size_t len);

     int
     copystr(const void *kfaddr, void *kdaddr, size_t len, size_t *done);

     int
     copyinstr(const void *uaddr, void *kaddr, size_t len, size_t *done);

DESCRIPTION
     The copy functions are designed to copy contiguous data from one address
     to another.  All but copystr() copy data from user-space to kernel-space
     or vice-versa.

     The copyin() and copyin_nofault() functions copy len bytes of data from
     the user-space address uaddr to the kernel-space address kaddr.

     The copyout() and copyout_nofault() functions copy len bytes of data from
     the kernel-space address kaddr to the user-space address uaddr.

     The copyin_nofault() and copyout_nofault() functions require that the
     kernel-space and user-space data be accessible without incurring a page
     fault.  The source and destination addresses must be physically mapped
     for read and write access, respectively, and neither the source nor
     destination addresses may be pageable.

     The copystr() function copies a NUL-terminated string, at most len bytes
     long, from kernel-space address kfaddr to kernel-space address kdaddr.
     The number of bytes actually copied, including the terminating NUL, is
     returned in *done (if done is non-NULL).

     The copyinstr() function copies a NUL-terminated string, at most len
     bytes long, from user-space address uaddr to kernel-space address kaddr.
     The number of bytes actually copied, including the terminating NUL, is
     returned in *done (if done is non-NULL).

RETURN VALUES
     The copy functions return 0 on success or EFAULT if a bad address is
     encountered.  In addition, the copyin_nofault() and copyout_nofault()
     functions return EFAULT if a page fault occurs, and the copystr() and
     copyinstr() functions return ENAMETOOLONG if the string is longer than
     len bytes.

SEE ALSO
     fetch(9), store(9)

FreeBSD 11.0-PRERELEASE          July 9, 2011          FreeBSD 11.0-PRERELEASE

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=copyin&sektion=9&manpath=FreeBSD+10.0-RELEASE>

home | help