mirror of
https://github.com/reactos/reactos.git
synced 2025-08-04 09:36:33 +00:00
[RPCRT4]
Fix ARM build svn path=/trunk/; revision=67737
This commit is contained in:
parent
369786f126
commit
6eae9fd0d8
4 changed files with 41 additions and 3 deletions
|
@ -35,7 +35,7 @@ add_definitions(
|
|||
-DCOM_NO_WINDOWS_H
|
||||
-DMSWMSG)
|
||||
|
||||
if(MSVC)
|
||||
if(MSVC AND NOT ARCH STREQUAL "arm")
|
||||
add_asm_files(rpcrt4_asm msvc.S)
|
||||
endif()
|
||||
|
||||
|
|
|
@ -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 @@ static inline void init_thunk( struct thunk *thunk, unsigned int index )
|
|||
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
|
||||
|
|
|
@ -156,6 +156,13 @@ typedef struct
|
|||
|
||||
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
|
||||
|
|
|
@ -1062,6 +1062,13 @@ __ASM_GLOBAL_FUNC( call_server_func,
|
|||
__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 @@ LONG WINAPI NdrStubCall2(
|
|||
|
||||
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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue