[ Bottom of Page | Previous Page | Next Page | Contents | Index | Library Home | Legal | Search ]

Technical Reference: Kernel and Subsystems, Volume 1

copyout Kernel Service

Purpose

Copies data between user and kernel memory.

Syntax

#include <sys/types.h>
#include <sys/errno.h>


int copyout ( kaddr, uaddr, count)
char *kaddr;
char *uaddr;
int count;

Parameters

kaddr Specifies the address of kernel data.
uaddr Specifies the address of user data.
count Specifies the number of bytes to copy.

Description

The copyout service copies the specified number of bytes from kernel memory to user memory. It is provided so that system calls and device driver top half routines can safely access user data. The copyout service ensures that the user has the appropriate authority to access the data. This service also provides recovery from paging I/O errors that would otherwise cause the system to crash.

The copyout service should be called only while executing in kernel mode in the user process.

Execution Environment

The copyout kernel service can be called from the process environment only.

Return Values

0 Indicates a successful operation.
EFAULT Indicates that the user has insufficient authority to access the data or the address specified in the uaddr parameter is not valid.
EIO Indicates that a permanent I/O error occurred while referencing data.
ENOMEM Indicates insufficient memory for the required paging operation.
ENOSPC Indicates insufficient file system or paging space.

Related Information

The copyin kernel service, copyinstr kernel service.

Accessing User-Mode Data While in Kernel Mode and Memory Kernel Services in AIX 5L Version 5.2 Kernel Extensions and Device Support Programming Concepts.

[ Top of Page | Previous Page | Next Page | Contents | Index | Library Home | Legal | Search ]