Fixed definition of the RtlMemory functions. Use macros internally and

for Winelib, use real functions for exports from ntdll.
This commit is contained in:
Juergen Schmied 2000-02-26 19:35:50 +00:00 committed by Alexandre Julliard
parent 61ef5111b6
commit 9f50d049ea
5 changed files with 59 additions and 37 deletions

View File

@ -291,7 +291,7 @@ type win32
@ stub RtlClearAllBits
@ stdcall RtlClearBits(long long long) RtlClearBits
@ stub RtlCompactHeap
@ stub RtlCompareMemory
@ stdcall RtlCompareMemory(ptr ptr long) RtlCompareMemory
@ stub RtlCompareMemoryUlong
@ stub RtlCompareString
@ stdcall RtlCompareUnicodeString (ptr ptr long) RtlCompareUnicodeString

View File

@ -502,6 +502,53 @@ NTSTATUS WINAPI RtlClearBits(DWORD x1,DWORD x2,DWORD x3)
return 0;
}
/******************************************************************************
* RtlCopyMemory [NTDLL]
*
*/
#undef RtlCopyMemory
VOID WINAPI RtlCopyMemory( VOID *Destination, CONST VOID *Source, SIZE_T Length )
{
memcpy(Destination, Source, Length);
}
/******************************************************************************
* RtlMoveMemory [NTDLL]
*/
#undef RtlMoveMemory
VOID WINAPI RtlMoveMemory( VOID *Destination, CONST VOID *Source, SIZE_T Length )
{
memmove(Destination, Source, Length);
}
/******************************************************************************
* RtlFillMemory [NTDLL]
*/
#undef RtlFillMemory
VOID WINAPI RtlFillMemory( VOID *Destination, SIZE_T Length, BYTE Fill )
{
memset(Destination, Fill, Length);
}
/******************************************************************************
* RtlZeroMemory [NTDLL]
*/
#undef RtlZeroMemory
VOID WINAPI RtlZeroMemory( VOID *Destination, SIZE_T Length )
{
memset(Destination, 0, Length);
}
/******************************************************************************
* RtlCompareMemory [NTDLL]
*/
SIZE_T WINAPI RtlCompareMemory( const VOID *Source1, const VOID *Source2, SIZE_T Length)
{
int i;
for(i=0; (i<Length) && (((LPBYTE)Source1)[i]==((LPBYTE)Source2)[i]); i++);
return i;
}
/******************************************************************************
* RtlAssert [NTDLL]
*

View File

@ -1439,14 +1439,6 @@ BOOL WINAPI ReportEventW(HANDLE,WORD,WORD,DWORD,PSID,WORD,DWORD,LPCWSTR *
#define ReportEvent WINELIB_NAME_AW(ReportEvent)
BOOL WINAPI ResetEvent(HANDLE);
DWORD WINAPI ResumeThread(HANDLE);
VOID WINAPI RtlFillMemory(LPVOID,UINT,UINT);
#define FillMemory RtlFillMemory
VOID WINAPI RtlMoveMemory(LPVOID,LPCVOID,UINT);
#define MoveMemory RtlMoveMemory
VOID WINAPI RtlZeroMemory(LPVOID,UINT);
#define ZeroMemory RtlZeroMemory
VOID WINAPI RtlCopyMemory(LPVOID,const VOID*, DWORD);
#define CopyMemory RtlCopyMemory
BOOL WINAPI RevertToSelf(void);
DWORD WINAPI SearchPathA(LPCSTR,LPCSTR,LPCSTR,DWORD,LPSTR,LPSTR*);
DWORD WINAPI SearchPathW(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,LPWSTR,LPWSTR*);
@ -1765,6 +1757,11 @@ INT WINAPI lstrcmpiA(LPCSTR,LPCSTR);
INT WINAPI lstrcmpiW(LPCWSTR,LPCWSTR);
#define lstrcmpi WINELIB_NAME_AW(lstrcmpi)
/* compatibility macros */
#define FillMemory RtlFillMemory
#define MoveMemory RtlMoveMemory
#define ZeroMemory RtlZeroMemory
#define CopyMemory RtlCopyMemory
/* the following may be macros when compiling Wine */
#ifndef SetLastError

View File

@ -1625,6 +1625,12 @@ typedef enum tagSID_NAME_USE {
#define DACL_SECURITY_INFORMATION 0x00000004
#define SACL_SECURITY_INFORMATION 0x00000008
#define RtlEqualMemory(Destination, Source, Length) (!memcmp((Destination),(Source),(Length)))
#define RtlMoveMemory(Destination, Source, Length) memmove((Destination),(Source),(Length))
#define RtlCopyMemory(Destination, Source, Length) memcpy((Destination),(Source),(Length))
#define RtlFillMemory(Destination, Length, Fill) memset((Destination),(Fill),(Length))
#define RtlZeroMemory(Destination, Length) memset((Destination),0,(Length))
#include "poppack.h"
#endif /* __WINE_WINNT_H */

View File

@ -477,34 +477,6 @@ void WINAPI Copy16( LPVOID src, LPVOID dst, WORD size )
memcpy( dst, src, size );
}
/***********************************************************************
* RtlFillMemory (KERNEL32.441)
*/
VOID WINAPI RtlFillMemory( LPVOID ptr, UINT len, UINT fill )
{
memset( ptr, fill, len );
}
/***********************************************************************
* RtlMoveMemory (KERNEL32.442)
*/
VOID WINAPI RtlMoveMemory( LPVOID dst, LPCVOID src, UINT len )
{
memmove( dst, src, len );
}
/***********************************************************************
* RtlZeroMemory (KERNEL32.444)
*/
VOID WINAPI RtlZeroMemory( LPVOID ptr, UINT len )
{
memset( ptr, 0, len );
}
/***********************************************************************
* AnsiToOem16 (KEYBOARD.5)
*/