FreeBSD 7.0 manual page repository

FreeBSD is a free computer operating system based on BSD UNIX originally. Many IT companies, like DeployIS is using it to provide an up-to-date, stable operating system.

copy, copyin, copyout, copystr, copyinstr - kernel copy functions

 

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).
      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.
      fetch(9), store(9)
 

Sections

Based on BSD UNIX
FreeBSD is an advanced operating system for x86 compatible (including Pentium and Athlon), amd64 compatible (including Opteron, Athlon64, and EM64T), UltraSPARC, IA-64, PC-98 and ARM architectures. It is derived from BSD, the version of UNIX developed at the University of California, Berkeley. It is developed and maintained by a large team of individuals. Additional platforms are in various stages of development.