Author: tkreuzer
Date: Thu May 14 22:32:49 2015
New Revision: 67737
URL:
http://svn.reactos.org/svn/reactos?rev=67737&view=rev
Log:
[RPCRT4]
Fix ARM build
Modified:
trunk/reactos/dll/win32/rpcrt4/CMakeLists.txt
trunk/reactos/dll/win32/rpcrt4/cproxy.c
trunk/reactos/dll/win32/rpcrt4/cstub.c
trunk/reactos/dll/win32/rpcrt4/ndr_stubless.c
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] Thu May 14 22:32:49 2015
@@ -35,7 +35,7 @@
-DCOM_NO_WINDOWS_H
-DMSWMSG)
-if(MSVC)
+if(MSVC AND NOT ARCH STREQUAL "arm")
add_asm_files(rpcrt4_asm msvc.S)
endif()
Modified: trunk/reactos/dll/win32/rpcrt4/cproxy.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rpcrt4/cproxy.c?…
==============================================================================
--- trunk/reactos/dll/win32/rpcrt4/cproxy.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/rpcrt4/cproxy.c [iso-8859-1] Thu May 14 22:32:49 2015
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
- *
+ *
* TODO: Handle non-i386 architectures
*/
@@ -150,6 +150,30 @@
thunk->call_stubless = call_stubless_func;
}
+#elif defined(__arm__)
+
+extern void call_stubless_func(void);
+__ASM_GLOBAL_FUNC(call_stubless_func,
+ "DCD 0xDEFC\n\t" // _assertfail
+ "" );
+
+#include "pshpack1.h"
+struct thunk
+{
+ DWORD assertfail;
+};
+#include "poppack.h"
+
+static const struct thunk thunk_template =
+{
+ { 0xDEFC } /* _assertfail */
+};
+
+static inline void init_thunk( struct thunk *thunk, unsigned int index )
+{
+ *thunk = thunk_template;
+}
+
#else /* __i386__ */
#warning You must implement stubless proxies for your CPU
Modified: trunk/reactos/dll/win32/rpcrt4/cstub.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rpcrt4/cstub.c?r…
==============================================================================
--- trunk/reactos/dll/win32/rpcrt4/cstub.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/rpcrt4/cstub.c [iso-8859-1] Thu May 14 22:32:49 2015
@@ -156,6 +156,13 @@
static const BYTE opcodes[16] = { 0x48, 0x8b, 0x49, 0x20, 0x48, 0x8b, 0x01,
0xff, 0xa0, 0, 0, 0, 0, 0x48, 0x8d, 0x36 };
+#elif defined(__arm__)
+typedef struct
+{
+ DWORD offset;
+} vtbl_method_t;
+static const BYTE opcodes[1];
+
#else
#warning You must implement delegated proxies/stubs for your CPU
Modified: trunk/reactos/dll/win32/rpcrt4/ndr_stubless.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rpcrt4/ndr_stubl…
==============================================================================
--- trunk/reactos/dll/win32/rpcrt4/ndr_stubless.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/rpcrt4/ndr_stubless.c [iso-8859-1] Thu May 14 22:32:49 2015
@@ -1062,6 +1062,13 @@
__ASM_CFI(".cfi_adjust_cfa_offset -8\n\t")
__ASM_CFI(".cfi_same_value %rbp\n\t")
"ret")
+#elif defined(__arm__)
+LONG_PTR __cdecl call_server_func(SERVER_ROUTINE func, unsigned char * args, unsigned
short stack_size)
+{
+ FIXME("Not implemented for ARM\n");
+ assert(FALSE);
+ return 0;
+}
#else
#warning call_server_func not implemented for your architecture
LONG_PTR __cdecl call_server_func(SERVER_ROUTINE func, unsigned char * args, unsigned
short stack_size)
@@ -1389,7 +1396,7 @@
pRpcMsg->BufferLength = stubMsg.BufferLength;
/* allocate buffer for [out] and [ret] params */
- Status = I_RpcGetBuffer(pRpcMsg);
+ Status = I_RpcGetBuffer(pRpcMsg);
if (Status)
RpcRaiseException(Status);
stubMsg.Buffer = pRpcMsg->Buffer;