[ros-diffs] [tkreuzer] 52399: [RPCRT4] - Add msvc.S containing call_stubless_func in assembly - Fix spec file, 2 stub functions are already implemented - fix use of GetExceptionCode(), it cannot be used in tha...

tkreuzer at svn.reactos.org tkreuzer at svn.reactos.org
Tue Jun 21 12:22:48 UTC 2011


Author: tkreuzer
Date: Tue Jun 21 12:22:47 2011
New Revision: 52399

URL: http://svn.reactos.org/svn/reactos?rev=52399&view=rev
Log:
[RPCRT4]
- Add msvc.S containing call_stubless_func in assembly
- Fix spec file, 2 stub functions are already implemented
- fix use of GetExceptionCode(), it cannot be used in that context.

Added:
    trunk/reactos/dll/win32/rpcrt4/msvc.S   (with props)
Modified:
    trunk/reactos/dll/win32/rpcrt4/CMakeLists.txt
    trunk/reactos/dll/win32/rpcrt4/rpc_epmap.c
    trunk/reactos/dll/win32/rpcrt4/rpcrt4.spec

Modified: trunk/reactos/dll/win32/rpcrt4/CMakeLists.txt
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rpcrt4/CMakeLists.txt?rev=52399&r1=52398&r2=52399&view=diff
==============================================================================
--- trunk/reactos/dll/win32/rpcrt4/CMakeLists.txt [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/rpcrt4/CMakeLists.txt [iso-8859-1] Tue Jun 21 12:22:47 2011
@@ -22,6 +22,10 @@
     unix_func.c
     ${CMAKE_CURRENT_BINARY_DIR}/rpcrt4_stubs.c
     ${CMAKE_CURRENT_BINARY_DIR}/rpcrt4.def)
+
+if(MSVC)
+    list(APPEND SOURCE msvc.S)
+endif()
 
 remove_definitions(-D_WIN32_WINNT=0x502)
 add_definitions(-D_WIN32_WINNT=0x600)

Added: trunk/reactos/dll/win32/rpcrt4/msvc.S
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rpcrt4/msvc.S?rev=52399&view=auto
==============================================================================
--- trunk/reactos/dll/win32/rpcrt4/msvc.S (added)
+++ trunk/reactos/dll/win32/rpcrt4/msvc.S [iso-8859-1] Tue Jun 21 12:22:47 2011
@@ -1,0 +1,18 @@
+
+#include <asm.inc>
+
+.code32
+
+EXTERN _ObjectStubless at 4:PROC
+
+PUBLIC _call_stubless_func
+_call_stubless_func:
+
+    push esp        /* pointer to index */
+    call _ObjectStubless at 4
+    pop edx         /* args size */
+    mov ecx, [esp]  /* return address */
+    add esp, edx
+    jmp ecx
+
+END

Propchange: trunk/reactos/dll/win32/rpcrt4/msvc.S
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: trunk/reactos/dll/win32/rpcrt4/rpc_epmap.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rpcrt4/rpc_epmap.c?rev=52399&r1=52398&r2=52399&view=diff
==============================================================================
--- trunk/reactos/dll/win32/rpcrt4/rpc_epmap.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/rpcrt4/rpc_epmap.c [iso-8859-1] Tue Jun 21 12:22:47 2011
@@ -171,7 +171,7 @@
 
 static LONG WINAPI rpc_filter(EXCEPTION_POINTERS *__eptr)
 {
-    switch (GetExceptionCode())
+    switch (__eptr->ExceptionRecord->ExceptionCode)
     {
         case EXCEPTION_ACCESS_VIOLATION:
         case EXCEPTION_ILLEGAL_INSTRUCTION:
@@ -396,7 +396,7 @@
 
   status = get_epm_handle_client(Binding, &handle);
   if (status != RPC_S_OK) return status;
-  
+
   status = TowerConstruct(&If->InterfaceId, &If->TransferSyntax, bind->Protseq,
                           ((RpcBinding *)handle)->Endpoint,
                           bind->NetworkAddr, &tower);

Modified: trunk/reactos/dll/win32/rpcrt4/rpcrt4.spec
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rpcrt4/rpcrt4.spec?rev=52399&r1=52398&r2=52399&view=diff
==============================================================================
--- trunk/reactos/dll/win32/rpcrt4/rpcrt4.spec [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/rpcrt4/rpcrt4.spec [iso-8859-1] Tue Jun 21 12:22:47 2011
@@ -53,7 +53,7 @@
 @ stub I_RpcIfInqTransferSyntaxes
 @ stub I_RpcLogEvent
 @ stdcall I_RpcMapWin32Status(long)
-@ stub I_RpcNegotiateTransferSyntax # wxp
+@ stdcall I_RpcNegotiateTransferSyntax(ptr) # wxp
 @ stub I_RpcNsBindingSetEntryName
 @ stub I_RpcNsBindingSetEntryNameA
 @ stub I_RpcNsBindingSetEntryNameW
@@ -194,7 +194,7 @@
 @ stdcall NdrFullPointerQueryPointer(ptr ptr long ptr)
 @ stdcall NdrFullPointerQueryRefId(ptr long long ptr)
 @ stdcall NdrFullPointerXlatFree(ptr)
-@ stdcall NdrFullPointerXlatInit(long long) 
+@ stdcall NdrFullPointerXlatInit(long long)
 @ stdcall NdrGetBuffer(ptr long ptr)
 @ stub NdrGetDcomProtocolVersion
 @ stub NdrGetPartialBuffer
@@ -265,7 +265,7 @@
 @ stdcall NdrRangeUnmarshall(ptr ptr ptr long)
 @ stub NdrRpcSmClientAllocate
 @ stub NdrRpcSmClientFree
-@ stub NdrRpcSmSetClientToOsf
+@ stdcall NdrRpcSmSetClientToOsf(ptr)
 @ stub NdrRpcSsDefaultAllocate
 @ stub NdrRpcSsDefaultFree
 @ stub NdrRpcSsDisableAllocate




More information about the Ros-diffs mailing list