Migrate RTL subsystem to C++
This commit is contained in:
@@ -28,4 +28,37 @@ HlInitializeComPort(IN OUT PCPPORT Port,
|
||||
IN PUCHAR PortAddress,
|
||||
IN ULONG BaudRate);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
UCHAR
|
||||
HlReadRegister8(IN PVOID Register);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
USHORT
|
||||
HlReadRegister16(IN PVOID Register);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
ULONG
|
||||
HlReadRegister32(IN PVOID Register);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
VOID
|
||||
HlWriteRegister8(IN PVOID Register,
|
||||
IN UCHAR Value);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
VOID
|
||||
HlWriteRegister16(IN PVOID Register,
|
||||
IN USHORT Value);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
VOID
|
||||
HlWriteRegister32(IN PVOID Register,
|
||||
IN ULONG Value);
|
||||
|
||||
#endif /* __XTDK_HLFUNCS_H */
|
||||
|
@@ -15,326 +15,363 @@
|
||||
#include <rtltypes.h>
|
||||
|
||||
|
||||
/* Routines used by XTLDR */
|
||||
XTCDECL
|
||||
VOID
|
||||
RtlInitializeListHead(IN PLIST_ENTRY ListHead);
|
||||
|
||||
XTCDECL
|
||||
VOID
|
||||
RtlInsertHeadList(IN OUT PLIST_ENTRY ListHead,
|
||||
IN PLIST_ENTRY Entry);
|
||||
|
||||
XTCDECL
|
||||
VOID
|
||||
RtlInsertTailList(IN OUT PLIST_ENTRY ListHead,
|
||||
IN PLIST_ENTRY Entry);
|
||||
|
||||
XTAPI
|
||||
UCHAR
|
||||
RtlReadRegisterByte(IN VOLATILE PVOID Register);
|
||||
|
||||
XTAPI
|
||||
ULONG
|
||||
RtlReadRegisterLong(IN VOLATILE PVOID Register);
|
||||
|
||||
XTAPI
|
||||
USHORT
|
||||
RtlReadRegisterShort(IN VOLATILE PVOID Register);
|
||||
|
||||
|
||||
XTCDECL
|
||||
VOID
|
||||
RtlRemoveEntryList(IN PLIST_ENTRY Entry);
|
||||
|
||||
|
||||
/* Runtime Library routines forward references */
|
||||
XTCLINK
|
||||
XTAPI
|
||||
VOID
|
||||
RtlClearAllBits(IN PRTL_BITMAP BitMap);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
VOID
|
||||
RtlClearBit(IN PRTL_BITMAP BitMap,
|
||||
IN ULONG_PTR Bit);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
VOID
|
||||
RtlClearBits(IN PRTL_BITMAP BitMap,
|
||||
IN ULONG_PTR StartingIndex,
|
||||
IN ULONG_PTR Length);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
ULONG
|
||||
RtlClearSetBits(IN PRTL_BITMAP BitMap,
|
||||
IN ULONG_PTR Length,
|
||||
IN ULONG_PTR Index);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
BOOLEAN
|
||||
RtlCompareGuids(IN PGUID Guid1,
|
||||
IN PGUID Guid2);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
SIZE_T
|
||||
RtlCompareMemory(IN PCVOID LeftBuffer,
|
||||
IN PCVOID RightBuffer,
|
||||
IN SIZE_T Length);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
SIZE_T
|
||||
RtlCompareString(IN PCSTR String1,
|
||||
IN PCSTR String2,
|
||||
IN SIZE_T Length);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
SIZE_T
|
||||
RtlCompareStringInsensitive(IN PCSTR String1,
|
||||
IN PCSTR String2,
|
||||
IN SIZE_T Length);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
SIZE_T
|
||||
RtlCompareWideString(IN PCWSTR String1,
|
||||
IN PCWSTR String2,
|
||||
IN SIZE_T Length);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
SIZE_T
|
||||
RtlCompareWideStringInsensitive(IN PCWSTR String1,
|
||||
IN PCWSTR String2,
|
||||
IN SIZE_T Length);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
PCHAR
|
||||
RtlConcatenateString(OUT PCHAR Destination,
|
||||
IN PCHAR Source,
|
||||
IN SIZE_T Count);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
PWCHAR
|
||||
RtlConcatenateWideString(OUT PWCHAR Destination,
|
||||
IN PWCHAR Source,
|
||||
IN SIZE_T Count);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
LARGE_INTEGER
|
||||
RtlConvertToLargeInteger32(IN LONG Value);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
LARGE_INTEGER
|
||||
RtlConvertToLargeIntegerUnsigned32(IN ULONG Value);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
VOID
|
||||
RtlCopyMemory(OUT PVOID Destination,
|
||||
IN PCVOID Source,
|
||||
IN SIZE_T Length);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
VOID
|
||||
RtlCopyString(IN PCHAR Destination,
|
||||
IN PCSTR Source,
|
||||
IN ULONG Length);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
VOID
|
||||
RtlCopyWideString(IN PWCHAR Destination,
|
||||
IN PCWSTR Source,
|
||||
IN ULONG Length);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
LARGE_INTEGER
|
||||
RtlDivideLargeInteger(IN LARGE_INTEGER Dividend,
|
||||
IN ULONG Divisor,
|
||||
OUT PULONG Remainder);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
ULONG_PTR
|
||||
RtlFindClearBits(IN PRTL_BITMAP BitMap,
|
||||
IN ULONG_PTR Length,
|
||||
IN ULONG_PTR Index);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
ULONG_PTR
|
||||
RtlFindSetBits(IN PRTL_BITMAP BitMap,
|
||||
IN ULONG_PTR Length,
|
||||
IN ULONG_PTR Index);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
PCSTR
|
||||
RtlFindString(IN PCSTR Source,
|
||||
IN PCSTR Search);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
PCSTR
|
||||
RtlFindStringInsensitive(IN PCSTR Source,
|
||||
IN PCSTR Search);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
PCWSTR
|
||||
RtlFindWideString(IN PCWSTR Source,
|
||||
IN PCWSTR Search);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
PCWSTR
|
||||
RtlFindWideStringInsensitive(IN PCWSTR Source,
|
||||
IN PCWSTR Search);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
XTSTATUS
|
||||
RtlFormatWideString(IN PRTL_PRINT_CONTEXT Context,
|
||||
IN PCWSTR Format,
|
||||
IN VA_LIST ArgumentList);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
VOID
|
||||
RtlInitializeBitMap(IN PRTL_BITMAP BitMap,
|
||||
IN PULONG_PTR Buffer,
|
||||
IN ULONG Size);
|
||||
|
||||
XTCLINK
|
||||
XTCDECL
|
||||
VOID
|
||||
RtlInitializeListHead(IN PLIST_ENTRY ListHead);
|
||||
|
||||
XTCLINK
|
||||
XTCDECL
|
||||
VOID
|
||||
RtlInsertHeadList(IN OUT PLIST_ENTRY ListHead,
|
||||
IN PLIST_ENTRY Entry);
|
||||
|
||||
XTCLINK
|
||||
XTCDECL
|
||||
VOID
|
||||
RtlInsertTailList(IN OUT PLIST_ENTRY ListHead,
|
||||
IN PLIST_ENTRY Entry);
|
||||
|
||||
XTCLINK
|
||||
XTCDECL
|
||||
BOOLEAN
|
||||
RtlListEmpty(IN PLIST_ENTRY ListHead);
|
||||
|
||||
XTCLINK
|
||||
XTCDECL
|
||||
BOOLEAN
|
||||
RtlListLoop(IN PLIST_ENTRY ListHead);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
VOID
|
||||
RtlMoveMemory(OUT PVOID Destination,
|
||||
IN PCVOID Source,
|
||||
IN SIZE_T Length);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
LARGE_INTEGER
|
||||
RtlMultiplyLargeInteger(IN LARGE_INTEGER Multiplicand,
|
||||
IN LONG Multiplier);
|
||||
|
||||
XTCLINK
|
||||
XTCDECL
|
||||
VOID
|
||||
RtlRemoveEntryList(IN PLIST_ENTRY Entry);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
VOID
|
||||
RtlReverseString(IN OUT PCHAR String,
|
||||
IN ULONG Length);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
VOID
|
||||
RtlReverseWideString(IN OUT PWCHAR String,
|
||||
IN ULONG Length);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
BOOLEAN
|
||||
RtlSameMemory(IN PCVOID LeftBuffer,
|
||||
IN PCVOID RightBuffer,
|
||||
IN SIZE_T Length);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
VOID
|
||||
RtlSetAllBits(IN PRTL_BITMAP BitMap);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
VOID
|
||||
RtlSetBit(IN PRTL_BITMAP BitMap,
|
||||
IN ULONG_PTR Bit);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
VOID
|
||||
RtlSetBits(IN PRTL_BITMAP BitMap,
|
||||
IN ULONG_PTR StartingIndex,
|
||||
IN ULONG_PTR Length);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
ULONG
|
||||
RtlSetClearBits(IN PRTL_BITMAP BitMap,
|
||||
IN ULONG_PTR Length,
|
||||
IN ULONG_PTR Index);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
VOID
|
||||
RtlSetMemory(OUT PVOID Destination,
|
||||
IN UCHAR Byte,
|
||||
IN SIZE_T Length);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
SIZE_T
|
||||
RtlStringLength(IN PCSTR String,
|
||||
IN SIZE_T MaxLength);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
SIZE_T
|
||||
RtlStringToWideString(OUT PWCHAR Destination,
|
||||
IN PCSTR *Source,
|
||||
IN SIZE_T Length);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
BOOLEAN
|
||||
RtlTestBit(IN PRTL_BITMAP BitMap,
|
||||
IN ULONG_PTR Bit);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
PCHAR
|
||||
RtlTokenizeString(IN PCHAR String,
|
||||
IN PCSTR Delimiter,
|
||||
IN OUT PCHAR *SavePtr);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
PWCHAR
|
||||
RtlTokenizeWideString(IN PWCHAR String,
|
||||
IN PCWSTR Delimiter,
|
||||
IN OUT PWCHAR *SavePtr);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
CHAR
|
||||
RtlToLowerCharacter(IN CHAR Character);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
WCHAR
|
||||
RtlToLowerWideCharacter(IN WCHAR Character);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
CHAR
|
||||
RtlToUpperCharacter(IN CHAR Character);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
WCHAR
|
||||
RtlToUpperWideCharacter(IN WCHAR Character);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
PCHAR
|
||||
RtlTrimLeftString(IN PCHAR String);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
PWCHAR
|
||||
RtlTrimLeftWideString(IN PWCHAR String);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
PCHAR
|
||||
RtlTrimRightString(IN PCHAR String);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
PWCHAR
|
||||
RtlTrimRightWideString(IN PWCHAR String);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
PCHAR
|
||||
RtlTrimString(IN PCHAR String);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
PWCHAR
|
||||
RtlTrimWideString(IN PWCHAR String);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
SIZE_T
|
||||
RtlWideStringLength(IN PCWSTR String,
|
||||
IN SIZE_T MaxLength);
|
||||
|
||||
XTAPI
|
||||
VOID
|
||||
RtlWriteRegisterByte(IN VOLATILE PVOID Register,
|
||||
IN UCHAR Value);
|
||||
|
||||
XTAPI
|
||||
VOID
|
||||
RtlWriteRegisterLong(IN VOLATILE PVOID Register,
|
||||
IN ULONG Value);
|
||||
|
||||
XTAPI
|
||||
VOID
|
||||
RtlWriteRegisterShort(IN VOLATILE PVOID Register,
|
||||
IN USHORT Value);
|
||||
|
||||
XTCLINK
|
||||
XTAPI
|
||||
VOID
|
||||
RtlZeroMemory(OUT PVOID Destination,
|
||||
|
@@ -56,17 +56,17 @@ typedef XTSTATUS (*PWRITE_WIDE_CHARACTER)(IN WCHAR Character);
|
||||
/* Variable types enumeration list */
|
||||
typedef enum _RTL_VARIABLE_TYPE
|
||||
{
|
||||
Unknown,
|
||||
AnsiString,
|
||||
Boolean,
|
||||
Char,
|
||||
Float,
|
||||
Guid,
|
||||
Integer,
|
||||
String,
|
||||
UnicodeString,
|
||||
WideChar,
|
||||
WideString
|
||||
TypeUnknown,
|
||||
TypeAnsiString,
|
||||
TypeBoolean,
|
||||
TypeChar,
|
||||
TypeFloat,
|
||||
TypeGuid,
|
||||
TypeInteger,
|
||||
TypeString,
|
||||
TypeUnicodeString,
|
||||
TypeWideChar,
|
||||
TypeWideString
|
||||
} RTL_VARIABLE_TYPE, *PRTL_VARIABLE_TYPE;
|
||||
|
||||
/* Bit Map structure definition */
|
||||
|
Reference in New Issue
Block a user