2
0
Fork 0
ibcs/x286emul
1999-09-27 20:48:10 +00:00
..
boot.S Added the 990210 version of David Bruce's x286emul. 1999-09-27 20:48:10 +00:00
debug.h Added David Bruce's updated x286emul. 1998-08-19 19:44:12 +00:00
emu_control.c Added the alpha Xenix 286 emulator. 1994-10-28 10:07:39 +00:00
emu_exec.c Added David Bruce's updated x286emul. 1998-08-19 19:44:12 +00:00
emu_fileio.c Added the alpha Xenix 286 emulator. 1994-10-28 10:07:39 +00:00
emu_generic.c Added David Bruce's updated x286emul. 1998-08-19 19:44:12 +00:00
emu_memory.c Added the 990210 version of David Bruce's x286emul. 1999-09-27 20:48:10 +00:00
emu_odd.c Added the 990210 version of David Bruce's x286emul. 1999-09-27 20:48:10 +00:00
emu_signal.c Added the 990210 version of David Bruce's x286emul. 1999-09-27 20:48:10 +00:00
emu_signal.h Added David Bruce's updated x286emul. 1998-08-19 19:44:12 +00:00
emu_time.c Added the alpha Xenix 286 emulator. 1994-10-28 10:07:39 +00:00
lcall7.h Added the alpha Xenix 286 emulator. 1994-10-28 10:07:39 +00:00
ldt.c Added David Bruce's updated x286emul. 1998-08-19 19:44:12 +00:00
ldt.h Added David Bruce's updated x286emul. 1998-08-19 19:44:12 +00:00
Makefile Added the 990210 version of David Bruce's x286emul. 1999-09-27 20:48:10 +00:00
README Added the alpha Xenix 286 emulator. 1994-10-28 10:07:39 +00:00
README.TO Added David Bruce's updated x286emul. 1998-08-19 19:44:12 +00:00
syscall.c Added the 990210 version of David Bruce's x286emul. 1999-09-27 20:48:10 +00:00
syscall.h Added the 990210 version of David Bruce's x286emul. 1999-09-27 20:48:10 +00:00
x286emul.c Added the 990210 version of David Bruce's x286emul. 1999-09-27 20:48:10 +00:00
x286emul.h More x286emul changes from David. 1998-08-19 19:54:38 +00:00

                          Xenix 286 Emulation
                          (under development)



* Copyright

Copyright 1994  Mike Jagdis (jaggy@purplet.demon.co.uk)

This isn't finished. If enough is there to be useful to you go ahead.
I do, however, disclaim all responsibility for any bad fortune that
befalls you whether caused by this emulation code or not.

The Xenix 286 emulator is copyright. It is not public domain. It is
not under a GNU Public Licence. It simply is. All I ask is that you
give the usual credits where appropriate.


* Theory

The Xenix 286 emulator is implemented as a "magic" shared library that
is known to the x.out binary loader contained in the iBCS emulator
kernel module. When the x.out loader encounters a binary built for a
286 or lower it maps /lib/x286emul into the process' memory, maps the
actual binary higher in memory building the LDT as it goes and then
starts the process by entering the *library* rather than the actual
binary. The x286emul library initialises its environment and then enters
the 286 binary. When the 286 binary attempts a system call it causes a
segmentation fault which is trapped by x286emul and reprocessed as a
normal 386 system call. Note that x286emul may sometimes use a normal
Linux call and sometimes an iBCS lcall7. Use of lcall7 avoids the
need to copy code from the iBCS module to x286emul in order to map
values between the iBCS and Linux domains.