Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51850 Signed-off-by: Mohamad Al-Jaf mohamadaljaf@gmail.com --- v10: - Revert to stdcall since it makes no difference. --- dlls/wdscore/Makefile.in | 3 +++ dlls/wdscore/main.c | 55 +++++++++++++++++++++++++++++++++++++++ dlls/wdscore/wdscore.spec | 2 +- 3 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 dlls/wdscore/main.c
diff --git a/dlls/wdscore/Makefile.in b/dlls/wdscore/Makefile.in index 20ba1d3b1c9..2020e72c7bb 100644 --- a/dlls/wdscore/Makefile.in +++ b/dlls/wdscore/Makefile.in @@ -1,3 +1,6 @@ MODULE = wdscore.dll
EXTRADLLFLAGS = -Wb,--prefer-native + +C_SRCS = \ + main.c diff --git a/dlls/wdscore/main.c b/dlls/wdscore/main.c new file mode 100644 index 00000000000..95dea0e7e5f --- /dev/null +++ b/dlls/wdscore/main.c @@ -0,0 +1,55 @@ +/* + * Copyright 2022 Mohamad Al-Jaf + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * 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 + */ + +#include <stdarg.h> + +#include "windef.h" +#include "winbase.h" +#include "wdscore_internal.h" + +#include "wine/asm.h" +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(wdscore); + +/*********************************************************************** + * CurrentIP (wdscore.@) + */ +#ifdef __i386__ +__ASM_STDCALL_FUNC(CurrentIP, 0, + "movl (%esp), %eax\n\t" + "ret") +#elif defined(__x86_64__) +__ASM_STDCALL_FUNC(CurrentIP, 0, + "movq (%rsp), %rax\n\t" + "ret") +#elif defined(__arm__) +__ASM_STDCALL_FUNC(CurrentIP, 0, + "mov r0, lr\n\t" + "bx lr") +#elif defined(__aarch64__) +__ASM_STDCALL_FUNC(CurrentIP, 0, + "mov x0, lr\n\t" + "ret") +#else +LPVOID WINAPI CurrentIP(void) +{ + FIXME( "not implemented\n" ); + return NULL; +} +#endif diff --git a/dlls/wdscore/wdscore.spec b/dlls/wdscore/wdscore.spec index aa55f494387..282b6301688 100644 --- a/dlls/wdscore/wdscore.spec +++ b/dlls/wdscore/wdscore.spec @@ -71,7 +71,7 @@ @ stub ConstructPartialMsgIfW @ stub ConstructPartialMsgVA @ stub ConstructPartialMsgVW -@ stub CurrentIP +@ stdcall CurrentIP() @ stub EndMajorTask @ stub EndMinorTask @ stub GetMajorTask