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=2…
==============================================================================
--- 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.…
==============================================================================
--- 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=…
==============================================================================
--- 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…
==============================================================================
--- 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.a…
==============================================================================
--- 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=2…
==============================================================================
--- 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>