:man| Alphabetical   Categories   About us 
 
COPY (9) | Kernel routines | Unix Manual Pages | :man

NAME

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

CONTENTS

Synopsis
Description
Return Values
See Also

SYNOPSIS


.In sys/types.h
.In sys/systm.h int copyin "const void *uaddr" "void *kaddr" "size_t len" int copyout "const void *kaddr" "void *uaddr" "size_t len" int copystr "const void *kfaddr" "void *kdaddr" "size_t len" "size_t *done" int copyinstr "const void *uaddr" "void *kaddr" "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.
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 terminating NUL, is returned in *done (if done is non- NULL).
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 terminating NUL, is returned in *done (if done is non- NULL).

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)


Share this page

     Follow us

Facebook Twitter Google+ LinkedIn


 
Created by Blin Media, 2008-2013