[ros-diffs] [ion] 23763: - 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.

ion at svn.reactos.org ion at svn.reactos.org
Tue Aug 29 01:56:38 CEST 2006


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?rev=23763&r1=23762&r2=23763&view=diff

Modified: trunk/reactos/drivers/bus/acpi/ospm/osl.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/bus/acpi/ospm/osl.c?rev=23763&r1=23762&r2=23763&view=diff

Modified: trunk/reactos/drivers/video/videoprt/int10.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/video/videoprt/int10.c?rev=23763&r1=23762&r2=23763&view=diff

Modified: trunk/reactos/include/ndk/asm.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/ndk/asm.h?rev=23763&r1=23762&r2=23763&view=diff

Modified: trunk/reactos/include/ndk/i386/ketypes.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/ndk/i386/ketypes.h?rev=23763&r1=23762&r2=23763&view=diff

Modified: trunk/reactos/ntoskrnl/KrnlFun.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/KrnlFun.c?rev=23763&r1=23762&r2=23763&view=diff

Modified: trunk/reactos/ntoskrnl/ex/init.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ex/init.c?rev=23763&r1=23762&r2=23763&view=diff

Modified: trunk/reactos/ntoskrnl/include/internal/i386/asmmacro.S
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/i386/asmmacro.S?rev=23763&r1=23762&r2=23763&view=diff

Modified: trunk/reactos/ntoskrnl/include/internal/i386/ke.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/i386/ke.h?rev=23763&r1=23762&r2=23763&view=diff

Modified: trunk/reactos/ntoskrnl/include/internal/ke.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/ke.h?rev=23763&r1=23762&r2=23763&view=diff

Modified: trunk/reactos/ntoskrnl/include/internal/ntoskrnl.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/ntoskrnl.h?rev=23763&r1=23762&r2=23763&view=diff

Added: trunk/reactos/ntoskrnl/include/internal/vdm.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/vdm.h?rev=23763&view=auto

Modified: trunk/reactos/ntoskrnl/ke/i386/exp.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/i386/exp.c?rev=23763&r1=23762&r2=23763&view=diff

Modified: trunk/reactos/ntoskrnl/ke/i386/kernel.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/i386/kernel.c?rev=23763&r1=23762&r2=23763&view=diff

Modified: trunk/reactos/ntoskrnl/ke/i386/trap.s
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/i386/trap.s?rev=23763&r1=23762&r2=23763&view=diff

Removed: trunk/reactos/ntoskrnl/ke/i386/v86m.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/i386/v86m.c?rev=23762&view=auto

Modified: trunk/reactos/ntoskrnl/ke/i386/v86m_sup.S
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/i386/v86m_sup.S?rev=23763&r1=23762&r2=23763&view=diff

Added: trunk/reactos/ntoskrnl/ke/i386/v86vdm.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/i386/v86vdm.c?rev=23763&view=auto

Removed: trunk/reactos/ntoskrnl/ke/i386/vdm.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/i386/vdm.c?rev=23762&view=auto

Modified: trunk/reactos/ntoskrnl/ke/main.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/main.c?rev=23763&r1=23762&r2=23763&view=diff

Removed: trunk/reactos/ntoskrnl/mkconfig.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mkconfig.c?rev=23762&view=auto

Modified: trunk/reactos/ntoskrnl/mm/mm.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/mm.c?rev=23763&r1=23762&r2=23763&view=diff

Modified: trunk/reactos/ntoskrnl/ntoskrnl.rbuild
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ntoskrnl.rbuild?rev=23763&r1=23762&r2=23763&view=diff

Removed: trunk/reactos/ntoskrnl/ntoskrnl.txt
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ntoskrnl.txt?rev=23762&view=auto

Added: trunk/reactos/ntoskrnl/vdm/vdmexec.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/vdm/vdmexec.c?rev=23763&view=auto

Added: trunk/reactos/ntoskrnl/vdm/vdmmain.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/vdm/vdmmain.c?rev=23763&view=auto

Modified: trunk/reactos/subsystems/win32/csrss/video.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/csrss/video.c?rev=23763&r1=23762&r2=23763&view=diff




More information about the Ros-diffs mailing list