Author: tkreuzer
Date: Sat Feb 6 20:16:23 2010
New Revision: 45466
URL:
http://svn.reactos.org/svn/reactos?rev=45466&view=rev
Log:
[HAL]
Add the x86 emulator to x86BiosCall. It can call into int 10 and executes a few
instructions.
Removed:
branches/ros-amd64-bringup/reactos/hal/halx86/generic/amd64/x86emu.h
Modified:
branches/ros-amd64-bringup/reactos/hal/halx86/generic/amd64/x86bios.c
branches/ros-amd64-bringup/reactos/hal/halx86/hal_generic.rbuild
branches/ros-amd64-bringup/reactos/hal/halx86/halamd64.rbuild
Modified: branches/ros-amd64-bringup/reactos/hal/halx86/generic/amd64/x86bios.c
URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/hal/h…
==============================================================================
--- branches/ros-amd64-bringup/reactos/hal/halx86/generic/amd64/x86bios.c [iso-8859-1]
(original)
+++ branches/ros-amd64-bringup/reactos/hal/halx86/generic/amd64/x86bios.c [iso-8859-1] Sat
Feb 6 20:16:23 2010
@@ -254,7 +254,7 @@
VmState.Flags.ReturnOnIret = 1;
/* Call the x86 emulator */
-// x86Emulator(&VmState);
+ x86Emulator(&VmState);
/* Copy registers back to caller */
*Registers = VmState.BiosRegisters;
Removed: branches/ros-amd64-bringup/reactos/hal/halx86/generic/amd64/x86emu.h
URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/hal/h…
==============================================================================
--- branches/ros-amd64-bringup/reactos/hal/halx86/generic/amd64/x86emu.h [iso-8859-1]
(original)
+++ branches/ros-amd64-bringup/reactos/hal/halx86/generic/amd64/x86emu.h (removed)
@@ -1,221 +1,0 @@
-
-typedef union
-{
- USHORT Short;
- ULONG Long;
- struct
- {
- ULONG Cf:1;
- ULONG Pf:1;
- ULONG Af:1;
- ULONG Zf:1;
- ULONG Sf:1;
- ULONG Tf:1;
- ULONG If:1;
- ULONG Df:1;
- ULONG Of:1;
- ULONG Iopl:3;
- ULONG Nt:1;
- ULONG Rf:1;
- ULONG Vm:1;
- ULONG Ac:1;
- ULONG Vif:1;
- ULONG Vip:1;
- ULONG Id:1;
- };
-} EFLAGS;
-
-typedef union
-{
- ULONG Dword;
- USHORT Word;
- UCHAR Byte;
- struct
- {
- UCHAR Low;
- UCHAR High;
- };
-} REGU;
-
-typedef union
-{
- struct
- {
- UCHAR mod:2;
- UCHAR reg:3;
- UCHAR rm:3;
- };
- UCHAR Byte;
-} MODRM;
-
-typedef struct
-{
- union
- {
- ULONG Eax;
- USHORT Ax;
- struct
- {
- UCHAR Al;
- UCHAR Ah;
- };
- };
- union
- {
- ULONG Ecx;
- USHORT Cx;
- struct
- {
- UCHAR Cl;
- UCHAR Ch;
- };
- };
- union
- {
- ULONG Edx;
- USHORT Dx;
- struct
- {
- UCHAR Dl;
- UCHAR Dh;
- };
- };
- union
- {
- ULONG Ebx;
- USHORT Bx;
- struct
- {
- UCHAR Bl;
- UCHAR Bh;
- };
- };
- union
- {
- ULONG Ebp;
- USHORT Bp;
- };
- union
- {
- ULONG Esi;
- USHORT Si;
- };
- union
- {
- ULONG Edi;
- USHORT Di;
- };
- union
- {
- struct
- {
- ULONG ReservedDsMBZ:4;
- ULONG SegDs:16;
- };
- ULONG ShiftedDs;
- };
- union
- {
- struct
- {
- ULONG ReservedEsMBZ:4;
- ULONG SegEs:16;
- };
- ULONG ShiftedEs;
- };
-
- /* Extended */
- union
- {
- struct
- {
- ULONG ReservedCsMBZ:4;
- ULONG SegCs:16;
- };
- ULONG ShiftedCs;
- };
- union
- {
- struct
- {
- ULONG ReservedSsMBZ:4;
- ULONG SegSs:16;
- };
- ULONG ShiftedSs;
- };
-
- union
- {
- struct
- {
- ULONG ReservedMsMBZ:4;
- ULONG SegMs:16;
- };
- ULONG ShiftedMs;
- };
-
- union
- {
- ULONG Eip;
- USHORT Ip;
- };
-
- union
- {
- ULONG Esp;
- USHORT Sp;
- };
-
- EFLAGS Eflags;
-
-} X86_REGISTERS, *PX86_REGISTERS;
-
-enum
-{
- X86_VMFLAGS_RETURN_ON_IRET = 1,
-};
-
-typedef struct
-{
- union
- {
- X86_BIOS_REGISTERS BiosRegisters;
- X86_REGISTERS Registers;
- REGU IndexedRegisters[8];
- };
-
- struct
- {
- ULONG ReturnOnIret:1;
- } Flags;
-
- PVOID MemBuffer;
-
-#if 1
- PCHAR Mnemonic;
- PCHAR DstReg;
- PCHAR SrcReg;
- ULONG SrcEncodung;
- ULONG DstEncoding;
- ULONG Length;
-#endif
-} X86_VM_STATE, *PX86_VM_STATE;
-
-enum
-{
- PREFIX_SIZE_OVERRIDE = 0x010001,
- PREFIX_ADDRESS_OVERRIDE = 0x020002,
- PREFIX_SEGMENT_CS = 0x040004,
- PREFIX_SEGMENT_DS = 0x040008,
- PREFIX_SEGMENT_ES = 0x040010,
- PREFIX_SEGMNET_FS = 0x040020,
- PREFIX_SEGMENT_GS = 0x040040,
- PREFIX_SEGMENT_SS = 0x040080,
- PREFIX_LOCK = 0x080100,
- PREFIX_REP = 0x100200,
-} PREFIX_STATE;
-
-
-VOID
-NTAPI
-x86Emulator(PX86_VM_STATE VmState);
Modified: branches/ros-amd64-bringup/reactos/hal/halx86/hal_generic.rbuild
URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/hal/h…
==============================================================================
--- branches/ros-amd64-bringup/reactos/hal/halx86/hal_generic.rbuild [iso-8859-1]
(original)
+++ branches/ros-amd64-bringup/reactos/hal/halx86/hal_generic.rbuild [iso-8859-1] Sat Feb
6 20:16:23 2010
@@ -5,7 +5,6 @@
<include>include</include>
<include base="ntoskrnl">include</include>
<define name="_NTHAL_" />
- <define name="_X86BIOS_" />
<directory name="generic">
<directory name="bus">
<file>bushndlr.c</file>
@@ -43,7 +42,6 @@
<file>misc.c</file>
<file>systimer.S</file>
<file>usage.c</file>
- <file>x86bios.c</file>
</directory>
</if>
</directory>
Modified: branches/ros-amd64-bringup/reactos/hal/halx86/halamd64.rbuild
URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/hal/h…
==============================================================================
--- branches/ros-amd64-bringup/reactos/hal/halx86/halamd64.rbuild [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/hal/halx86/halamd64.rbuild [iso-8859-1] Sat Feb 6
20:16:23 2010
@@ -5,11 +5,14 @@
<bootstrap installbase="$(CDOUTPUT)" nameoncd="hal.dll" />
<include base="hal">include</include>
<include base="ntoskrnl">include</include>
+ <include base="x86emu">.</include>
<define name="_DISABLE_TIDENTS" />
<define name="_NTHAL_" />
+ <define name="_X86BIOS_" />
<library>hal_generic</library>
<library>hal_generic_up</library>
<library>ntoskrnl</library>
+ <library>x86emu</library>
<directory name="up">
<file>halinit_up.c</file>
@@ -21,4 +24,10 @@
<file>mps.S</file>
</directory>
</directory>
+ <directory name="generic">
+ <directory name="amd64">
+ <file>x86bios.c</file>
+ </directory>
+ </directory>
+
</module>