24.05.2014 Views

AIX Version 4.3 Differences Guide

AIX Version 4.3 Differences Guide

AIX Version 4.3 Differences Guide

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Figure 6. Interfacing 64-Bit Processes to a 32-Bit Kernel<br />

Each system call that is exported by the 32-bit kernel is represented in 64-bit<br />

mode by a 64-bit-mode library routine in libc64.a that is the call target of what<br />

would have been (in 32-bit mode) a system call. These library routines handle<br />

any necessary reformatting of data to communicate with the 32-bit system call<br />

routines in the kernel. In many cases, they build a remapping table that tells how<br />

the required portions of the 64-bit address space should be reflected in a 32-bit<br />

map for the kernel.<br />

On the kernel side, in 32-bit mode, a kernel extension routine is added for each of<br />

the system calls supported in 64-bit mode. These routines are invoked from the<br />

64-bit library routines through <strong>AIX</strong>’s syscall interface. They accept the<br />

reformatted data from the library routines and perform any necessary remapping<br />

of addresses using data supplied by the library routines. The kernel can then<br />

properly see data structures, buffers, and so on in the user spaces that are<br />

referred to in the call.<br />

A typical system call involves several pieces of code located in various places in<br />

the system. The names of these various pieces are all derived from the original<br />

38 <strong>AIX</strong> <strong>Version</strong> <strong>4.3</strong> <strong>Differences</strong> <strong>Guide</strong>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!