1
0
Fork 0
mirror of synced 2025-03-07 03:53:26 +01:00
wine/dlls/ntoskrnl.exe
Eric Pouech 495711c251 ntdll: Fix export and calling convention of RtlUlonglongByteSwap().
The RtlU*ByteSwap() family:
- has FASTCALL calling convention
- is only exported from ntdll and ntoskrnl.exe in 32bit mode
  (didn't check ARM though)

Wine's support for RtlUlonglongByteSwap() doesn't follow these constraints.
Note: in __fastcall, 64bit paramaters are passed on the stack, to
RtlUlonglongByteSwap() calling convention acts as __stdcall.

So:
- fix ntdll.spec (resp. ntoskrnl.exe.spec) to only export
  (resp. forward) RtlUlonglongByteSwap for i386
- always provide an inline implementation in winternl.h
- reimplement ntdll.RtlUlonglongByteSwap() for i386 with
  __fastcall calling convention.
- fix ntdll/tests/rtl.c to use correct calling convention.
- add test in ntdll/tests/rtl.c for inlined version.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53536
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-12-16 18:48:30 +01:00
..
tests ntoskrnl/tests: Ignore CONFIGFLAG_FINISH_INSTALL on the child device. 2022-12-13 12:44:51 +01:00
instr.c ntoskrnl.exe: Enable compilation with long types. 2022-02-16 17:16:52 +01:00
Makefile.in ntoskrnl.exe: Enable compilation with long types. 2022-02-16 17:16:52 +01:00
ntoskrnl.c ntdll: Fix export and calling convention of RtlUlonglongByteSwap(). 2022-12-16 18:48:30 +01:00
ntoskrnl.exe.spec ntdll: Fix export and calling convention of RtlUlonglongByteSwap(). 2022-12-16 18:48:30 +01:00
ntoskrnl.rc
ntoskrnl_private.h ntoskrnl: Enumerate child devices on a separate thread. 2022-07-11 10:35:15 +02:00
plugplay.idl
pnp.c ntoskrnl: Set SPDRP_CONFIGFLAGS in install_device_driver(). 2022-11-17 18:01:48 +01:00
sync.c ntoskrnl.exe: Implement KeInitializeGuardedMutex. 2022-11-10 09:49:31 +01:00