ADC Home > Reference Library > Reference > Mac OS X > Mac OS X Man Pages

 

This document is a Mac OS X manual page. Manual pages are a command-line technology for providing documentation. You can view these manual pages locally using the man(1) command. These manual pages come from many different sources, and thus, have a variety of writing styles.

For more information about the manual page format, see the manual page for manpages(5).



COPY(9)                  BSD Kernel Developer's Manual                 COPY(9)

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

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

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

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

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

     int
     copystr(const void *kfaddr, void *kdaddr, 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.

     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 terminat-ing terminating
                   ing NUL, is returned in *done.

     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 ter-minating terminating
                   minating NUL, is returned in *done.

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)

BSD                             January 7, 1996                            BSD

Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.