copyinstr.9freebsd

Langue: en

Version: 306230 (debian - 07/07/09)

Section: 9 (Appels noyau Linux)


BSD mandoc

NAME

copy copyin copyout copystr copyinstr - kernel copy functions

SYNOPSIS

In sys/types.h In sys/systm.h Ft int Fn copyin const void *uaddr void *kaddr size_t len Ft int Fn copyout const void *kaddr void *uaddr size_t len Ft int Fn copystr const void *kfaddr void *kdaddr size_t len size_t *done Ft int Fn copyinstr const void *uaddr void *kaddr size_t len size_t *done

DESCRIPTION

The functions are designed to copy contiguous data from one address to another. All but Fn copystr copy data from user-space to kernel-space or vice-versa.

The routines provide the following functionality:

Fn copyin
Copies Fa len bytes of data from the user-space address Fa uaddr to the kernel-space address Fa kaddr .
Fn copyout
Copies Fa len bytes of data from the kernel-space address Fa kaddr to the user-space address Fa uaddr .
Fn copystr
Copies a NUL-terminated string, at most Fa len bytes long, from kernel-space address Fa kfaddr to kernel-space address Fa kdaddr . The number of bytes actually copied, including the terminating NUL, is returned in Fa *done (if Fa done is non- NULL
Fn copyinstr
Copies a NUL-terminated string, at most Fa len bytes long, from user-space address Fa uaddr to kernel-space address Fa kaddr . The number of bytes actually copied, including the terminating NUL, is returned in Fa *done (if Fa done is non- NULL

RETURN VALUES

The functions return 0 on success or Er EFAULT if a bad address is encountered. In addition, the Fn copystr , and Fn copyinstr functions return Er ENAMETOOLONG if the string is longer than Fa len bytes.

SEE ALSO

fetch(9), store(9)