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... ============================================================================== --- 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... ============================================================================== --- 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.spe... ============================================================================== --- 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