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?r...
Modified: trunk/reactos/drivers/bus/acpi/ospm/osl.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/bus/acpi/ospm/osl.c...
Modified: trunk/reactos/drivers/video/videoprt/int10.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/video/videoprt/int1...
Modified: trunk/reactos/include/ndk/asm.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/ndk/asm.h?rev=23763...
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=2376...
Modified: trunk/reactos/ntoskrnl/ex/init.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ex/init.c?rev=2376...
Modified: trunk/reactos/ntoskrnl/include/internal/i386/asmmacro.S URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/i...
Modified: trunk/reactos/ntoskrnl/include/internal/i386/ke.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/i...
Modified: trunk/reactos/ntoskrnl/include/internal/ke.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/k...
Modified: trunk/reactos/ntoskrnl/include/internal/ntoskrnl.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/n...
Added: trunk/reactos/ntoskrnl/include/internal/vdm.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/v...
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?r...
Modified: trunk/reactos/ntoskrnl/ke/i386/trap.s URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/i386/trap.s?rev...
Removed: trunk/reactos/ntoskrnl/ke/i386/v86m.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/i386/v86m.c?rev...
Modified: trunk/reactos/ntoskrnl/ke/i386/v86m_sup.S URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/i386/v86m_sup.S...
Added: trunk/reactos/ntoskrnl/ke/i386/v86vdm.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/i386/v86vdm.c?r...
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=2376...
Removed: trunk/reactos/ntoskrnl/mkconfig.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mkconfig.c?rev=237...
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?re...
Removed: trunk/reactos/ntoskrnl/ntoskrnl.txt URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ntoskrnl.txt?rev=2...
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/vide...