| COPY(9) | Kernel Developer's Manual | COPY(9) |
copy, copyin,
copyinstr, copyout,
copystr — kernel copy
functions
#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);
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()copyinstr()copyout()copystr()The copy functions return 0 on success or
the following error on failure:
copyin(), copyinstr(), and
copystr(); *uaddr for
copyout()) are undefined. For
copyinstr() and copystr(),
the contents of the *done parameter are also
undefined on a return of EFAULT.In addition to EFAULT, copystr() and
copyinstr() on failure will return:
| October 2, 2008 | Mac OS X 12 |