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/CMakeList…
==============================================================================
--- 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?re…
==============================================================================
--- 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@4:PROC
+
+PUBLIC _call_stubless_func
+_call_stubless_func:
+
+ push esp /* pointer to index */
+ call _ObjectStubless@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…
==============================================================================
--- 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.sp…
==============================================================================
--- 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