ntdll: Implement RtlInterlockedPushListSListEx and fix calling convention of RtlInterlockedPushListSList.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
d8a2d5eb15
commit
a4be1ca6db
@ -706,7 +706,8 @@
|
|||||||
@ stdcall RtlInterlockedFlushSList(ptr)
|
@ stdcall RtlInterlockedFlushSList(ptr)
|
||||||
@ stdcall RtlInterlockedPopEntrySList(ptr)
|
@ stdcall RtlInterlockedPopEntrySList(ptr)
|
||||||
@ stdcall RtlInterlockedPushEntrySList(ptr ptr)
|
@ stdcall RtlInterlockedPushEntrySList(ptr ptr)
|
||||||
@ stdcall RtlInterlockedPushListSList(ptr ptr ptr long)
|
@ stdcall -norelay RtlInterlockedPushListSList(ptr ptr ptr long)
|
||||||
|
@ stdcall RtlInterlockedPushListSListEx(ptr ptr ptr long)
|
||||||
# @ stub RtlInvertRangeList
|
# @ stub RtlInvertRangeList
|
||||||
@ stdcall RtlIpv4AddressToStringA(ptr ptr)
|
@ stdcall RtlIpv4AddressToStringA(ptr ptr)
|
||||||
@ stdcall RtlIpv4AddressToStringExA(ptr long ptr ptr)
|
@ stdcall RtlIpv4AddressToStringExA(ptr long ptr ptr)
|
||||||
|
@ -58,6 +58,16 @@ static RTL_CRITICAL_SECTION_DEBUG critsect_debug =
|
|||||||
};
|
};
|
||||||
static RTL_CRITICAL_SECTION peb_lock = { &critsect_debug, -1, 0, 0, 0, 0 };
|
static RTL_CRITICAL_SECTION peb_lock = { &critsect_debug, -1, 0, 0, 0, 0 };
|
||||||
|
|
||||||
|
#ifdef __i386__
|
||||||
|
#define DEFINE_FASTCALL4_ENTRYPOINT( name ) \
|
||||||
|
__ASM_STDCALL_FUNC( name, 16, \
|
||||||
|
"popl %eax\n\t" \
|
||||||
|
"pushl %edx\n\t" \
|
||||||
|
"pushl %ecx\n\t" \
|
||||||
|
"pushl %eax\n\t" \
|
||||||
|
"jmp " __ASM_NAME("__regs_") #name __ASM_STDCALL(16))
|
||||||
|
#endif
|
||||||
|
|
||||||
/* CRC polynomial 0xedb88320 */
|
/* CRC polynomial 0xedb88320 */
|
||||||
static const DWORD CRC_table[256] =
|
static const DWORD CRC_table[256] =
|
||||||
{
|
{
|
||||||
@ -1191,9 +1201,9 @@ PSLIST_ENTRY WINAPI RtlInterlockedPopEntrySList(PSLIST_HEADER list)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
* RtlInterlockedPushListSList [NTDLL.@]
|
* RtlInterlockedPushListSListEx [NTDLL.@]
|
||||||
*/
|
*/
|
||||||
PSLIST_ENTRY WINAPI RtlInterlockedPushListSList(PSLIST_HEADER list, PSLIST_ENTRY first,
|
PSLIST_ENTRY WINAPI RtlInterlockedPushListSListEx(PSLIST_HEADER list, PSLIST_ENTRY first,
|
||||||
PSLIST_ENTRY last, ULONG count)
|
PSLIST_ENTRY last, ULONG count)
|
||||||
{
|
{
|
||||||
SLIST_HEADER old, new;
|
SLIST_HEADER old, new;
|
||||||
@ -1222,6 +1232,21 @@ PSLIST_ENTRY WINAPI RtlInterlockedPushListSList(PSLIST_HEADER list, PSLIST_ENTRY
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
* RtlInterlockedPushListSList [NTDLL.@]
|
||||||
|
*/
|
||||||
|
#ifdef DEFINE_FASTCALL4_ENTRYPOINT
|
||||||
|
DEFINE_FASTCALL4_ENTRYPOINT(RtlInterlockedPushListSList)
|
||||||
|
PSLIST_ENTRY WINAPI __regs_RtlInterlockedPushListSList(PSLIST_HEADER list, PSLIST_ENTRY first,
|
||||||
|
PSLIST_ENTRY last, ULONG count)
|
||||||
|
#else
|
||||||
|
PSLIST_ENTRY WINAPI RtlInterlockedPushListSList(PSLIST_HEADER list, PSLIST_ENTRY first,
|
||||||
|
PSLIST_ENTRY last, ULONG count)
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
return RtlInterlockedPushListSListEx(list, first, last, count);
|
||||||
|
}
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* RtlGetCompressionWorkSpaceSize [NTDLL.@]
|
* RtlGetCompressionWorkSpaceSize [NTDLL.@]
|
||||||
*/
|
*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user