[ Next Article | Previous Article | Book Contents | Library Home | Legal | Search ]
Kernel and Subsystems Technical Reference, Volume 1

vm_uiomove Kernel Service

Purpose

Moves data between a virtual memory object and a buffer specified in the uio structure.

Syntax

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

int vm_uiomove (vmid, limit, rw, uio)
vmid_t vmid;
int limit;
enum uio_rw rw;
struct uio *uio;

Parameters

vmid Specifies the virtual memory object ID.
limit Indicates the limit on the transfer length. If this parameter is negative or 0, no bytes are transferred.
rw Specifies a read/write flag that gives the direction of the move. The possible values for this parameter (UIO_READ, UIO_WRITE) are defined in the /usr/include/sys/uio.h file.
uio Points to the uio structure.

Description

The vm_uiomove kernel service moves data between a virtual memory object and the buffer specified in a uio structure.

This service determines the virtual addressing required for the data movement according to the offset in the object.

The vm_uiomove kernel service is similar to the uiomove kernel service, but the address for the trusted buffer is specified by the vmid parameter and the uio_offset field of offset parameters instead of as a caddr_t address. The offset size is a 64 bit offset_t, which allows file offsets in client segments which are greater than 2 gigabytes. vm_uiomove must be used instead of vm_move if the client filesystem supports files which are greater than 2 gigabytes.

Note: The vm_uiomove kernel service does not support use of cross-memory descriptors.

I/O errors for paging space and a lack of paging space are reported as signals.

Execution Environment

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

Return Values

0 Indicates a successful operation.
EFAULT Indicates a bad address.
ENOMEM Indicates insufficient memory.
ENOSPC Indicates insufficient disk space.
EIO Indicates an I/O error.

Other file system-specific errno global variables are returned by the virtual file system involved in the move function.

Implementation Specifics

The vm_uiomove kernel service is part of Base Operating System (BOS) Runtime.

Related Information

The uiomove kernel service.

Memory Kernel Services and Understanding Virtual Memory Manager Interfaces in AIX Kernel Extensions and Device Support Programming Concepts.


[ Next Article | Previous Article | Book Contents | Library Home | Legal | Search ]