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 | macOS 14.6 |