Add byte swap functions.

svn path=/trunk/; revision=8011
This commit is contained in:
Eric Kohl 2004-02-03 14:24:02 +00:00
parent ffa90a12e2
commit cd98a247e4
6 changed files with 115 additions and 68 deletions

View file

@ -2172,18 +2172,7 @@ NTSTATUS STDCALL RtlpUnWaitCriticalSection(RTL_CRITICAL_SECTION *crit);
NTSTATUS STDCALL RtlpWaitForCriticalSection(RTL_CRITICAL_SECTION *crit);
NTSTATUS STDCALL LdrLockLoaderLock(ULONG flags, ULONG *result, ULONG *magic);
NTSTATUS STDCALL LdrUnlockLoaderLock(ULONG flags, ULONG magic);
NTSTATUS STDCALL RtlAddAccessAllowedAceEx(
IN OUT PACL pAcl,
IN DWORD dwAceRevision,
IN DWORD AceFlags,
IN DWORD AccessMask,
IN PSID pSid);
NTSTATUS STDCALL RtlAddAccessDeniedAceEx(
IN OUT PACL pAcl,
IN DWORD dwAceRevision,
IN DWORD AceFlags,
IN DWORD AccessMask,
IN PSID pSid);
NTSTATUS STDCALL RtlDuplicateUnicodeString(
int add_nul,
const UNICODE_STRING *source,
@ -2194,7 +2183,6 @@ NTSTATUS STDCALL RtlFindCharInUnicodeString(
const UNICODE_STRING *search_chars,
USHORT *pos);
NTSTATUS STDCALL RtlInitUnicodeStringEx(PUNICODE_STRING target,PCWSTR source);
NTSTATUS STDCALL RtlInt64ToUnicodeString(ULONGLONG value,ULONG base,UNICODE_STRING *str);
ULONG
__cdecl
@ -2335,12 +2323,6 @@ NtUnloadKeyEx(
);
NTSTATUS
STDCALL
RtlGUIDFromString(
IN PUNICODE_STRING GuidString,
OUT GUID* Guid
);
NTSTATUS
STDCALL
RtlGetVersion(
OUT PRTL_OSVERSIONINFOW lpVersionInformation
);
@ -2352,21 +2334,6 @@ RtlHashUnicodeString(
IN ULONG HashAlgorithm,
OUT PULONG HashValue
);
USHORT
FASTCALL
RtlUshortByteSwap(
IN USHORT Source
);
ULONG
FASTCALL
RtlUlongByteSwap(
IN ULONG Source
);
ULONGLONG
FASTCALL
RtlUlonglongByteSwap(
IN ULONGLONG Source
);
BOOL
STDCALL
RtlValidRelativeSecurityDescriptor (

View file

@ -1,4 +1,4 @@
/* $Id: rtl.h,v 1.42 2004/02/01 20:44:59 ekohl Exp $
/* $Id: rtl.h,v 1.43 2004/02/03 14:19:56 ekohl Exp $
*
*/
@ -116,34 +116,47 @@ typedef struct _RTL_HANDLE_TABLE
#define PDI_HEAP_BLOCKS 0x10 /* The heap blocks */
#define PDI_LOCKS 0x20 /* The locks created by the process */
VOID STDCALL
RtlDeleteCriticalSection (
PCRITICAL_SECTION CriticalSection
);
VOID STDCALL
RtlEnterCriticalSection (
PCRITICAL_SECTION CriticalSection
);
NTSTATUS STDCALL
RtlInitializeCriticalSection (
PCRITICAL_SECTION CriticalSection
);
RtlAddAccessAllowedAceEx (IN OUT PACL Acl,
IN ULONG Revision,
IN ULONG Flags,
IN ACCESS_MASK AccessMask,
IN PSID Sid);
NTSTATUS STDCALL
RtlAddAccessDeniedAceEx (IN OUT PACL Acl,
IN ULONG Revision,
IN ULONG Flags,
IN ACCESS_MASK AccessMask,
IN PSID Sid);
VOID STDCALL
RtlDeleteCriticalSection (PCRITICAL_SECTION CriticalSection);
WCHAR STDCALL
RtlDowncaseUnicodeChar(IN WCHAR Source);
VOID STDCALL
RtlEnterCriticalSection (PCRITICAL_SECTION CriticalSection);
NTSTATUS STDCALL
RtlInitializeCriticalSection (PCRITICAL_SECTION CriticalSection);
NTSTATUS STDCALL
RtlInitializeCriticalSectionAndSpinCount (PCRITICAL_SECTION CriticalSection,
ULONG SpinCount);
NTSTATUS STDCALL
RtlInt64ToUnicodeString (IN ULONGLONG Value,
IN ULONG Base,
PUNICODE_STRING String);
VOID STDCALL
RtlLeaveCriticalSection (
PCRITICAL_SECTION CriticalSection
);
RtlLeaveCriticalSection (PCRITICAL_SECTION CriticalSection);
BOOLEAN STDCALL
RtlTryEnterCriticalSection (
PCRITICAL_SECTION CriticalSection
);
RtlTryEnterCriticalSection (PCRITICAL_SECTION CriticalSection);
DWORD STDCALL
RtlCompactHeap (

View file

@ -1,4 +1,4 @@
/* $Id: rtl.h,v 1.26 2004/02/02 00:35:00 ekohl Exp $
/* $Id: rtl.h,v 1.27 2004/02/03 14:19:29 ekohl Exp $
*
*/
#ifndef __DDK_RTL_H
@ -1243,6 +1243,10 @@ RtlGetSaclSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor,
PACL* Sacl,
PBOOLEAN SaclDefaulted);
NTSTATUS STDCALL
RtlGUIDFromString (IN PUNICODE_STRING GuidString,
OUT GUID* Guid);
PSID_IDENTIFIER_AUTHORITY STDCALL
RtlIdentifierAuthoritySid (PSID Sid);
@ -1965,6 +1969,12 @@ RtlTimeToTimeFields (
PTIME_FIELDS TimeFields
);
ULONG FASTCALL
RtlUlongByteSwap (IN ULONG Source);
ULONGLONG FASTCALL
RtlUlonglongByteSwap (IN ULONGLONG Source);
ULONG
STDCALL
RtlUnicodeStringToAnsiSize (
@ -2135,18 +2145,15 @@ RtlUpcaseUnicodeToOemN (
ULONG UnicodeSize
);
CHAR
STDCALL
RtlUpperChar (
CHAR Source
);
CHAR STDCALL
RtlUpperChar (CHAR Source);
VOID
STDCALL
RtlUpperString (
PSTRING DestinationString,
PSTRING SourceString
);
VOID STDCALL
RtlUpperString (PSTRING DestinationString,
PSTRING SourceString);
USHORT FASTCALL
RtlUshortByteSwap (IN USHORT Source);
BOOLEAN STDCALL
RtlValidAcl (PACL Acl);

View file

@ -1,4 +1,4 @@
; $Id: ntoskrnl.def,v 1.173 2004/02/02 00:36:07 ekohl Exp $
; $Id: ntoskrnl.def,v 1.174 2004/02/03 14:23:29 ekohl Exp $
;
; reactos/ntoskrnl/ntoskrnl.def
;
@ -840,6 +840,8 @@ RtlTimeFieldsToTime@8
RtlTimeToSecondsSince1970@8
RtlTimeToSecondsSince1980@8
RtlTimeToTimeFields@8
@RtlUlongByteSwap@4
@RtlUlonglongByteSwap@8
RtlUnicodeStringToAnsiSize@4
RtlUnicodeStringToAnsiString@12
RtlUnicodeStringToCountedOemString@12
@ -861,6 +863,7 @@ RtlUpcaseUnicodeToMultiByteN@20
RtlUpcaseUnicodeToOemN@20
RtlUpperChar@4
RtlUpperString@8
@RtlUshortByteSwap@4
RtlValidSecurityDescriptor@4
RtlValidSid@4
RtlWriteRegistryValue@24

View file

@ -1,4 +1,4 @@
; $Id: ntoskrnl.edf,v 1.160 2004/02/02 00:36:07 ekohl Exp $
; $Id: ntoskrnl.edf,v 1.161 2004/02/03 14:23:29 ekohl Exp $
;
; reactos/ntoskrnl/ntoskrnl.def
;
@ -840,6 +840,8 @@ RtlTimeFieldsToTime=RtlTimeFieldsToTime@8
RtlTimeToSecondsSince1970=RtlTimeToSecondsSince1970@8
RtlTimeToSecondsSince1980=RtlTimeToSecondsSince1980@8
RtlTimeToTimeFields=RtlTimeToTimeFields@8
@RtlUlongByteSwap=@RtlUlongByteSwap@4
@RtlUlonglongByteSwap=@RtlUlonglongByteSwap@8
RtlUnicodeStringToAnsiSize=RtlUnicodeStringToAnsiSize@4
RtlUnicodeStringToAnsiString=RtlUnicodeStringToAnsiString@12
RtlUnicodeStringToCountedOemString=RtlUnicodeStringToCountedOemString@12
@ -861,6 +863,7 @@ RtlUpcaseUnicodeToMultiByteN=RtlUpcaseUnicodeToMultiByteN@20
RtlUpcaseUnicodeToOemN=RtlUpcaseUnicodeToOemN@20
RtlUpperChar=RtlUpperChar@4
RtlUpperString=RtlUpperString@8
@RtlUshortByteSwap=@RtlUshortByteSwap@4
RtlValidSecurityDescriptor=RtlValidSecurityDescriptor@4
RtlValidSid=RtlValidSid@4
RtlWriteRegistryValue=RtlWriteRegistryValue@24

View file

@ -1,4 +1,4 @@
/* $Id: mem.c,v 1.20 2003/08/10 07:05:24 gvg Exp $
/* $Id: mem.c,v 1.21 2004/02/03 14:24:02 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@ -219,4 +219,58 @@ RtlZeroMemory (
);
}
/*************************************************************************
* RtlUshortByteSwap
*
* Swap the bytes of an unsigned short value.
*
* NOTES
* Based on the inline versions in Wine winternl.h
*
* @implemented
*/
USHORT FASTCALL
RtlUshortByteSwap (IN USHORT Source)
{
return (Source >> 8) | (Source << 8);
}
/*************************************************************************
* RtlUlongByteSwap
*
* Swap the bytes of an unsigned int value.
*
* NOTES
* Based on the inline versions in Wine winternl.h
*
* @implemented
*/
ULONG FASTCALL
RtlUlongByteSwap (IN ULONG Source)
{
return ((ULONG) RtlUshortByteSwap ((USHORT)Source) << 16) | RtlUshortByteSwap ((USHORT)(Source >> 16));
}
/*************************************************************************
* RtlUlonglongByteSwap
*
* Swap the bytes of an unsigned long long value.
*
* PARAMS
* i [I] Value to swap bytes of
*
* RETURNS
* The value with its bytes swapped.
*
* @implemented
*/
ULONGLONG FASTCALL
RtlUlonglongByteSwap (IN ULONGLONG Source)
{
return ((ULONGLONG) RtlUlongByteSwap (Source) << 32) | RtlUlongByteSwap (Source>>32);
}
/* EOF */