HP (Hewlett-Packard) IA-64 Computer Accessories User Manual


 
Copyright © 2000 Hewlett-Packard Co. Linux and MS-DOS ABI Emulation 7-1
Ski IA-64 Simulator Reference Manual 1.0L
7 Linux and MS-DOS ABI Emulation
As discussed in Section 6.1, “Application-Mode and System-Mode Simulation”, Ski can provide application programs
with a Linux-compatible or MS-DOS-compatible environment. The environments aren’t full-blown operating system
emulations, however. The most common OS functions are provided, as described below.
7.1 Interruptions
The IA-64 architecture defines a large set of interruption types, including faults, traps, and interrupts. Interruptions may
happen asynchronously, during an instruction, or between instructions. Like application programs running on a “real”
Linux machine, IA-64 application-mode programs in Ski never see interruptions. Instead, Ski translates interruptions into
the signal that a real IA-64 Linux kernel would generate. For example, a memory access violation gets translated into the
SIGSEGV signal. Similarly, if Ski receives a keyboard signal such as the SIGINT generated (usually) by control-C, it
passes this signal on to the IA-64 application. Ski does not accurately simulate the
siginfo
and
sigcontext
structures
that a real IA-64 Linux kernel would pass to a signal handler. Thus, applications relying on either of these parameters can-
not be simulated in Ski application mode.
7.2 Linux Application Environment
Ski provides a commonly-used subset of the Linux environment to IA-64 application-mode programs. Both statically
linked and dynamically linked programs are supported. The argc, argv, and envp parameters are created on the stack as
described in Section 6.5.3.2, “Creating the argc, argv, and envp Parameters”. Ski initializes the IA-64 registers like this:
sp points to the top of the stack.
bsp, and bspstore are initialized in the same way the IA-64 version of Linux is likely to do.
rsc.pl is initialized to 3.
rsc.be and psr.be are cleared.
Ski supports the Linux system calls shown in Table 7-1. This list is subject to change; consult the release notes for the lat-
est information. The data passed between the application program and the simulated Linux environment is interpreted as
64 bit (LP64) quantities.