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

FreeBSD Manual Pages

  
 
  

home | help
COPY(9)                FreeBSD Kernel Developer's Manual               COPY(9)

NAME
     copy, copyin, copyout, 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
     copyout(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 copy routines provide the following functionality:

     copyin()      Copies len bytes of data from the user-space address uaddr
                   to the kernel-space address kaddr.

     copyout()     Copies len bytes of data from the kernel-space address
                   kaddr to the user-space address uaddr.

     copystr()     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).

     copyinstr()   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 copystr(), and copyinstr() functions
     return ENAMETOOLONG if the string is longer than len bytes.

SEE ALSO
     fetch(9), store(9)

FreeBSD 6.2                     January 7, 1996                    FreeBSD 6.2

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+6.2-RELEASE>

home | help