Author: ion
Date: Tue Aug 29 03:56:35 2006
New Revision: 23763
URL:
http://svn.reactos.org/svn/reactos?rev=23763&view=rev
Log:
- Complete and utter reimplementation of V86 Mode for Ke386CallBios. Details below. Tested
on QEMU/VMWARE. May give you a breakpoint/crash on real hardware - please let me know the
V86 opcode displayed on the debug log/screen if this is the case *if you see such a
message*.
- Got rid of all the previous related assembly code and implemented
Ki386SetupAndExitToV86Mode and Ki386BiosCallREturnAddress.
- Implemented GPF (Trap 13) code for V86 faults (which will happen in V86 mode). Implement
a generic Ki386HandleOpcodeV86 handler that increments counts and calls the right opcode
handler.
- Implemented an Opcode Table Entry Index and Opcode Table array for mapping opcodes that
caused a GPF to their V86 handlers/emulators.
- Implemented handlers for PUSHF, POPF, CLI, STI, IRETD and INTnn, which is what
QEMU/VMWare and *most* VIDEO ROM BIOS code should use.
- Created a /vdm tree and moved all NTVDM/VDM specific code there.
- Halfplemented VdmStart/EndExecution APIs which the BIOS ROM V86 implementation is built
upon. Currently don't handle VDM at all, only this V86 mode.
- Also added code for NtVdmControl and fixed up CSRSS and ACPI's calls to this API.
- Added detection and FIXMEs for support of VMEs in VMWare, Bochs and real hardware (VME
is not yet supported).
- Move exp.c fixmes to krnlfun and remove kernel fun entries that this patch fixes.
Added:
trunk/reactos/ntoskrnl/include/internal/vdm.h
trunk/reactos/ntoskrnl/ke/i386/v86vdm.c
trunk/reactos/ntoskrnl/vdm/
trunk/reactos/ntoskrnl/vdm/vdmexec.c
trunk/reactos/ntoskrnl/vdm/vdmmain.c
Removed:
trunk/reactos/ntoskrnl/ke/i386/v86m.c
trunk/reactos/ntoskrnl/ke/i386/vdm.c
trunk/reactos/ntoskrnl/mkconfig.c
trunk/reactos/ntoskrnl/ntoskrnl.txt
Modified:
trunk/reactos/boot/bootdata/hivesys.inf
trunk/reactos/drivers/bus/acpi/ospm/osl.c
trunk/reactos/drivers/video/videoprt/int10.c
trunk/reactos/include/ndk/asm.h
trunk/reactos/include/ndk/i386/ketypes.h
trunk/reactos/ntoskrnl/KrnlFun.c
trunk/reactos/ntoskrnl/ex/init.c
trunk/reactos/ntoskrnl/include/internal/i386/asmmacro.S
trunk/reactos/ntoskrnl/include/internal/i386/ke.h
trunk/reactos/ntoskrnl/include/internal/ke.h
trunk/reactos/ntoskrnl/include/internal/ntoskrnl.h
trunk/reactos/ntoskrnl/ke/i386/exp.c
trunk/reactos/ntoskrnl/ke/i386/kernel.c
trunk/reactos/ntoskrnl/ke/i386/trap.s
trunk/reactos/ntoskrnl/ke/i386/v86m_sup.S
trunk/reactos/ntoskrnl/ke/main.c
trunk/reactos/ntoskrnl/mm/mm.c
trunk/reactos/ntoskrnl/ntoskrnl.rbuild
trunk/reactos/subsystems/win32/csrss/video.c
[This mail would be too long, it was shortened to contain the URLs only.]
Modified: trunk/reactos/boot/bootdata/hivesys.inf
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/bootdata/hivesys.inf?…
Modified: trunk/reactos/drivers/bus/acpi/ospm/osl.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/bus/acpi/ospm/osl.…
Modified: trunk/reactos/drivers/video/videoprt/int10.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/video/videoprt/int…
Modified: trunk/reactos/include/ndk/asm.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/ndk/asm.h?rev=2376…
Modified: trunk/reactos/include/ndk/i386/ketypes.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/ndk/i386/ketypes.h…
Modified: trunk/reactos/ntoskrnl/KrnlFun.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/KrnlFun.c?rev=237…
Modified: trunk/reactos/ntoskrnl/ex/init.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ex/init.c?rev=237…
Modified: trunk/reactos/ntoskrnl/include/internal/i386/asmmacro.S
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/…
Modified: trunk/reactos/ntoskrnl/include/internal/i386/ke.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/…
Modified: trunk/reactos/ntoskrnl/include/internal/ke.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/…
Modified: trunk/reactos/ntoskrnl/include/internal/ntoskrnl.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/…
Added: trunk/reactos/ntoskrnl/include/internal/vdm.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/…
Modified: trunk/reactos/ntoskrnl/ke/i386/exp.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/i386/exp.c?rev…
Modified: trunk/reactos/ntoskrnl/ke/i386/kernel.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/i386/kernel.c?…
Modified: trunk/reactos/ntoskrnl/ke/i386/trap.s
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/i386/trap.s?re…
Removed: trunk/reactos/ntoskrnl/ke/i386/v86m.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/i386/v86m.c?re…
Modified: trunk/reactos/ntoskrnl/ke/i386/v86m_sup.S
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/i386/v86m_sup.…
Added: trunk/reactos/ntoskrnl/ke/i386/v86vdm.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/i386/v86vdm.c?…
Removed: trunk/reactos/ntoskrnl/ke/i386/vdm.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/i386/vdm.c?rev…
Modified: trunk/reactos/ntoskrnl/ke/main.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/main.c?rev=237…
Removed: trunk/reactos/ntoskrnl/mkconfig.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mkconfig.c?rev=23…
Modified: trunk/reactos/ntoskrnl/mm/mm.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/mm.c?rev=23763…
Modified: trunk/reactos/ntoskrnl/ntoskrnl.rbuild
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ntoskrnl.rbuild?r…
Removed: trunk/reactos/ntoskrnl/ntoskrnl.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ntoskrnl.txt?rev=…
Added: trunk/reactos/ntoskrnl/vdm/vdmexec.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/vdm/vdmexec.c?rev…
Added: trunk/reactos/ntoskrnl/vdm/vdmmain.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/vdm/vdmmain.c?rev…
Modified: trunk/reactos/subsystems/win32/csrss/video.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/csrss/vid…