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

Technical Reference: Kernel and Subsystems, Volume 1

as_remap64 Kernel Service

Purpose

Maps a 64-bit address to a 32-bit address that can be used by the 32-bit PowerPC kernel.

Syntax

#include <sys/types.h>
#include <sys/errno.h>
#include <sys/remap.h>
int as_remap64 (addr64, len, addr32 )
unsigned long long addr64;
unsigned int len;
unsigned int*addr32;

Parameters

addr64 Specifies the 64-bit, effective address of start of range to be mapped.
len Specifies the number of bytes in the range to be mapped.
addr32 Specifies the location where the mapped, 32-bit address will be saved by as_remap64.

Description

The as_remap64 service maps a 64-bit address into a 32-bit address. This service allows other kernel services to continue using 32-bit addreses, even for 64-bit processes. If the 32-bit address is passed to a user-memory-access kernel service, the original 64-bit address is obtained and used. The original 64-bit address can also be obtained by calling the as_unremap64 kernel service.

The as_remap64 kernel service may be called for either a 32-bit or 64-bit process. If called for a 32-bit process and addr64 is a valid 32-bit address, then this address is simply returned in the addr32 parameter.

Note
The as_remap64 kernel service is not supported on the 64-bit kernel.

Execution Environment

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

Return Values

0 Successful completion.
EINVAL

The process is 32-bit, and addr64 is not a valid 32-bit address

or

Too many address ranges have already been mapped.

Related Information

The as_unremap64 kernel service.

Memory Kernel Services and Understanding Virtual Memory Manager Interfaces 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 ]