[ros-diffs] [fireball] 28221: - Add RtlUnwind to headers, and make list.h MSVC-compatible. - Rename framebased.asm to framebased.S and write in GAS compatible assembly, instead of using nasmw. - Fix WDK compatibility.

fireball at svn.reactos.org fireball at svn.reactos.org
Tue Aug 7 22:11:21 CEST 2007


Author: fireball
Date: Wed Aug  8 00:11:21 2007
New Revision: 28221

URL: http://svn.reactos.org/svn/reactos?rev=28221&view=rev
Log:
- Add RtlUnwind to headers, and make list.h MSVC-compatible.
- Rename framebased.asm to framebased.S and write in GAS compatible assembly, instead of using nasmw.
- Fix WDK compatibility.

Added:
    trunk/reactos/lib/pseh/i386/framebased.S
      - copied, changed from r28215, trunk/reactos/lib/pseh/i386/framebased.asm
Removed:
    trunk/reactos/lib/pseh/i386/framebased.asm
Modified:
    trunk/reactos/include/psdk/winnt.h
    trunk/reactos/include/reactos/wine/list.h
    trunk/reactos/lib/pseh/framebased.c
    trunk/reactos/lib/pseh/pseh.rbuild

Modified: trunk/reactos/include/psdk/winnt.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/winnt.h?rev=28221&r1=28220&r2=28221&view=diff
==============================================================================
--- trunk/reactos/include/psdk/winnt.h (original)
+++ trunk/reactos/include/psdk/winnt.h Wed Aug  8 00:11:21 2007
@@ -2885,6 +2885,16 @@
 } RTL_CRITICAL_SECTION,*PRTL_CRITICAL_SECTION;
 #endif
 
+NTSYSAPI
+VOID
+NTAPI
+RtlUnwind (
+    IN PVOID TargetFrame OPTIONAL,
+    IN PVOID TargetIp OPTIONAL,
+    IN PEXCEPTION_RECORD ExceptionRecord OPTIONAL,
+    IN PVOID ReturnValue
+    );
+
 #define RTL_SRWLOCK_INIT {0}
 typedef struct _RTL_SRWLOCK
 {

Modified: trunk/reactos/include/reactos/wine/list.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/wine/list.h?rev=28221&r1=28220&r2=28221&view=diff
==============================================================================
--- trunk/reactos/include/reactos/wine/list.h (original)
+++ trunk/reactos/include/reactos/wine/list.h Wed Aug  8 00:11:21 2007
@@ -140,7 +140,7 @@
 }
 
 /* count the elements of a list */
-inline static unsigned int list_count( const struct list *list )
+__inline static unsigned int list_count( const struct list *list )
 {
     unsigned count = 0;
     const struct list *ptr;

Modified: trunk/reactos/lib/pseh/framebased.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/pseh/framebased.c?rev=28221&r1=28220&r2=28221&view=diff
==============================================================================
--- trunk/reactos/lib/pseh/framebased.c (original)
+++ trunk/reactos/lib/pseh/framebased.c Wed Aug  8 00:11:21 2007
@@ -20,6 +20,7 @@
 	DEALINGS IN THE SOFTWARE.
 */
 
+#define _NTSYSTEM_
 #define STRICT
 #define WIN32_LEAN_AND_MEAN
 #include <windows.h>
@@ -281,7 +282,7 @@
 extern _SEHRegistration_t * __cdecl _SEHCurrentRegistration(void);
 
 /* Borland C++ uses a different decoration (i.e. none) for stdcall functions */
-extern void __stdcall RtlUnwind(void *, void *, void *, void *);
+extern void __stdcall RtlUnwind(void *, void *, PEXCEPTION_RECORD, void *);
 void const * _SEHRtlUnwind = RtlUnwind;
 
 static void __stdcall _SEHLocalUnwind

Copied: trunk/reactos/lib/pseh/i386/framebased.S (from r28215, trunk/reactos/lib/pseh/i386/framebased.asm)
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/pseh/i386/framebased.S?p2=trunk/reactos/lib/pseh/i386/framebased.S&p1=trunk/reactos/lib/pseh/i386/framebased.asm&r1=28215&r2=28221&rev=28221&view=diff
==============================================================================
--- trunk/reactos/lib/pseh/i386/framebased.asm (original)
+++ trunk/reactos/lib/pseh/i386/framebased.S Wed Aug  8 00:11:21 2007
@@ -1,36 +1,37 @@
-; Copyright (c) 2004/2005 KJK::Hyperion
+// Copyright (c) 2004/2005 KJK::Hyperion
 
-; Permission is hereby granted, free of charge, to any person obtaining a copy
-; of this software and associated documentation files (the "Software"), to deal
-; in the Software without restriction, including without limitation the rights
-; to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-; copies of the Software, and to permit persons to whom the Software is
-; furnished to dos so, subject to the following conditions:
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to dos so, subject to the following conditions:
 
-; The above copyright notice and this permission notice shall be included in all
-; copies or substantial portions of the Software.
+// The above copyright notice and this permission notice shall be included in all
+// copies or substantial portions of the Software.
 
-; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-; IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-; FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-; AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-; LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-; SOFTWARE.
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+// SOFTWARE.
 
-segment .text use32
+.text
+.intel_syntax noprefix
 
-global __SEHCleanHandlerEnvironment
+.globl __SEHCleanHandlerEnvironment
 __SEHCleanHandlerEnvironment:
 	cld
 	ret
 
-global __SEHCurrentRegistration
+.globl __SEHCurrentRegistration
 __SEHCurrentRegistration:
 	mov eax, [fs:0]
 	ret
 
-global __SEHRegisterFrame
+.globl __SEHRegisterFrame
 __SEHRegisterFrame:
 	mov ecx, [esp+4]
 	mov eax, [fs:0]
@@ -38,28 +39,28 @@
 	mov [fs:0], ecx
 	ret
 
-global __SEHUnregisterFrame
+.globl __SEHUnregisterFrame
 __SEHUnregisterFrame:
 	mov ecx, [fs:0]
 	mov ecx, [ecx+0]
 	mov [fs:0], ecx
 	ret
 
-global __SEHGlobalUnwind
+.globl __SEHGlobalUnwind
 __SEHGlobalUnwind:
 
-	extern __SEHRtlUnwind
+.extern __SEHRtlUnwind
 
-; RtlUnwind clobbers all the "don't clobber" registers, so we save them
+// RtlUnwind clobbers all the "don't clobber" registers, so we save them
 	push ebx
 	mov ebx, [esp+8]
 	push esi
 	push edi
 
-	push dword 0x0 ; ReturnValue
-	push dword 0x0 ; ExceptionRecord
-	push dword .RestoreRegisters ; TargetIp
-	push ebx ; TargetFrame
+	push 0 // ReturnValue
+	push 0 // ExceptionRecord
+	push .RestoreRegisters // TargetIp
+	push ebx // TargetFrame
 	call [__SEHRtlUnwind]
 
 .RestoreRegisters:
@@ -69,4 +70,4 @@
 
 	ret
 
-; EOF
+// EOF

Removed: trunk/reactos/lib/pseh/i386/framebased.asm
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/pseh/i386/framebased.asm?rev=28220&view=auto
==============================================================================
--- trunk/reactos/lib/pseh/i386/framebased.asm (original)
+++ trunk/reactos/lib/pseh/i386/framebased.asm (removed)
@@ -1,72 +1,0 @@
-; Copyright (c) 2004/2005 KJK::Hyperion
-
-; Permission is hereby granted, free of charge, to any person obtaining a copy
-; of this software and associated documentation files (the "Software"), to deal
-; in the Software without restriction, including without limitation the rights
-; to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-; copies of the Software, and to permit persons to whom the Software is
-; furnished to dos so, subject to the following conditions:
-
-; The above copyright notice and this permission notice shall be included in all
-; copies or substantial portions of the Software.
-
-; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-; IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-; FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-; AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-; LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-; SOFTWARE.
-
-segment .text use32
-
-global __SEHCleanHandlerEnvironment
-__SEHCleanHandlerEnvironment:
-	cld
-	ret
-
-global __SEHCurrentRegistration
-__SEHCurrentRegistration:
-	mov eax, [fs:0]
-	ret
-
-global __SEHRegisterFrame
-__SEHRegisterFrame:
-	mov ecx, [esp+4]
-	mov eax, [fs:0]
-	mov [ecx+0], eax
-	mov [fs:0], ecx
-	ret
-
-global __SEHUnregisterFrame
-__SEHUnregisterFrame:
-	mov ecx, [fs:0]
-	mov ecx, [ecx+0]
-	mov [fs:0], ecx
-	ret
-
-global __SEHGlobalUnwind
-__SEHGlobalUnwind:
-
-	extern __SEHRtlUnwind
-
-; RtlUnwind clobbers all the "don't clobber" registers, so we save them
-	push ebx
-	mov ebx, [esp+8]
-	push esi
-	push edi
-
-	push dword 0x0 ; ReturnValue
-	push dword 0x0 ; ExceptionRecord
-	push dword .RestoreRegisters ; TargetIp
-	push ebx ; TargetFrame
-	call [__SEHRtlUnwind]
-
-.RestoreRegisters:
-	pop edi
-	pop esi
-	pop ebx
-
-	ret
-
-; EOF

Modified: trunk/reactos/lib/pseh/pseh.rbuild
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/pseh/pseh.rbuild?rev=28221&r1=28220&r2=28221&view=diff
==============================================================================
--- trunk/reactos/lib/pseh/pseh.rbuild (original)
+++ trunk/reactos/lib/pseh/pseh.rbuild Wed Aug  8 00:11:21 2007
@@ -2,7 +2,7 @@
 	<define name="__USE_W32API" />
 	<if property="ARCH" value="i386">
 		<directory name="i386">
-			<file>framebased.asm</file>
+			<file>framebased.S</file>
 		</directory>
 	</if>
 	<file>framebased.c</file>




More information about the Ros-diffs mailing list