CVS: winex/include stackframe.h, 1.1.1.4, 1.2 thread.h, 1.18, 1.19

[email protected] 12 Sep 2007 12:34:56 -0000
Newsgroups gmane.comp.emulators.winex.cvs
Message-ID <[email protected]>
Subject: winex/include stackframe.h,1.1.1.4,1.2 thread.h,1.18,1.19Update of /var/lib/cvsd/cvsroot/winex/include
In directory agravaine:/tmp/cvs-serv11620/include

Modified Files:
	stackframe.h thread.h 
Log Message:

- changed TEB::cur_stack to TEB::WOW32Reserved.  WOW32Reserved is now at offset 0xC0 (cur_stack was at 0x70).  The old cur_stack has been renamed to 'unknown70'.



Index: stackframe.h
===================================================================
RCS file: /var/lib/cvsd/cvsroot/winex/include/stackframe.h,v
retrieving revision 1.1.1.4
retrieving revision 1.2
diff -u -d -r1.1.1.4 -r1.2
--- stackframe.h	21 Dec 2000 03:34:34 -0000	1.1.1.4
+++ stackframe.h	12 Sep 2007 12:34:53 -0000	1.2
@@ -55,7 +55,7 @@
 
 #include "poppack.h"
 
-#define THREAD_STACK16(teb)  ((STACK16FRAME*)MapSL((teb)->cur_stack))
+#define THREAD_STACK16(teb)  ((STACK16FRAME*)MapSL((DWORD)((teb)->WOW32Reserved)))
 #define CURRENT_STACK16      (THREAD_STACK16(NtCurrentTeb()))
 #define CURRENT_DS           (CURRENT_STACK16->ds)
 
@@ -80,8 +80,8 @@
     TEB *teb = NtCurrentTeb();
     STACK16FRAME *frame = THREAD_STACK16(teb);
     memmove( (char*)frame - size, frame, sizeof(*frame) );
-    teb->cur_stack -= size;
-    return (SEGPTR)(teb->cur_stack + sizeof(*frame));
+    teb->WOW32Reserved -= size;
+    return (SEGPTR)(teb->WOW32Reserved + sizeof(*frame));
 }
 
 /* Pop bytes from the 16-bit stack of a thread */
@@ -90,7 +90,7 @@
     TEB *teb = NtCurrentTeb();
     STACK16FRAME *frame = THREAD_STACK16(teb);
     memmove( (char*)frame + size, frame, sizeof(*frame) );
-    teb->cur_stack += size;
+    teb->WOW32Reserved += size;
 }
 
 /* Push a DWORD on the 32-bit stack */

Index: thread.h
===================================================================
RCS file: /var/lib/cvsd/cvsroot/winex/include/thread.h,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -d -r1.18 -r1.19
--- thread.h	30 Mar 2007 14:40:03 -0000	1.18
+++ thread.h	12 Sep 2007 12:34:53 -0000	1.19
@@ -68,7 +68,7 @@
     HANDLE       debug_cb;       /* 1-n  64 Debugger context block */
     DWORD        debug_thread;   /* 1-n  68 Thread debugging this one (?) */
     void        *pcontext;       /* 1-n  6c Thread register context */
-    DWORD        cur_stack;      /* --3  70 Current stack (was: unknown) */
+    DWORD        unknown70;      /* --n  70 */
     DWORD        ThunkConnect;   /* 1-n  74 */
     DWORD        NegStackBase;   /* 1-n  78 */
     WORD         current_ss;     /* 1-n  7c Another 16-bit stack selector */
@@ -76,7 +76,8 @@
     void        *ss_table;       /* --n  80 Pointer to info about 16-bit stack */
     WORD         thunk_ss;       /* --n  84 Yet another 16-bit stack selector */
     WORD         pad3;           /* --n  86 */
-    DWORD        pad4[15];       /* --n  88 */
+    DWORD        pad4[14];       /* --n  88 */
+    PVOID        WOW32Reserved;  /* -2-  C0 */
     ULONG        CurrentLocale;  /* -2-  C4 */
     DWORD        pad5[48];       /* --n  C8 */
     DWORD        delta_priority; /* 1-n 188 Priority delta */