| COPYIN(9) | Kernel Developer's Manual | COPYIN(9) |
copyin, copyout,
copyinstr, copyoutstr,
kcopy — kernel copy
functions
#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
copyinstr(const
void *uaddr, void
*kaddr, size_t len,
size_t *done);
int
copyoutstr(const
void *kaddr, void
*uaddr, size_t len,
size_t *done);
int
kcopy(const
void *kfaddr, void
*kdaddr, size_t
len);
The copyin functions are designed to copy
contiguous data from one address to another. All but
kcopy()
copy data from user-space to kernel-space or vice-versa.
The copyin routines provide the following
functionality:
copyin()copyout()copyinstr()NULL.copyoutstr()NULL.kcopy()The copyin functions return 0 on success
or EFAULT if a bad address is encountered. In
addition, the copyinstr() and
copyoutstr() functions return
ENAMETOOLONG if the string is longer than
len bytes.
| January 6, 2023 | openbsd |