From 0d5dbba99cbf7e4cf43e9e1ac33a3128d66dc7ff Mon Sep 17 00:00:00 2001 From: Eric Kohl Date: Sun, 1 Feb 2004 20:48:06 +0000 Subject: [PATCH] - Move rangelist stubs. - Move sscanf() stub. - Implement _bsearch(), _lfind(), _ui64toa() and _ui64tow(). - Export iswdigit(), iswlower(), iswxdigit() and _vsnwsprintf(). - Replace Win32 types by corresponding native types. svn path=/trunk/; revision=7976 --- reactos/include/funcs.h | 109 ------------ reactos/include/ntdll/rtl.h | 102 +++++------ reactos/include/ntos/rtl.h | 104 +++++++++--- reactos/include/ntos/rtltypes.h | 54 +++++- reactos/include/structs.h | 37 ---- reactos/lib/ntdll/def/ntdll.def | 57 +++---- reactos/lib/ntdll/def/ntdll.edf | 59 ++++--- reactos/lib/ntdll/makefile | 113 ++++++++++--- reactos/lib/ntdll/rtl/bitmap.c | 39 ++++- reactos/lib/ntdll/rtl/crc32.c | 39 ++--- reactos/lib/ntdll/rtl/critical.c | 37 ++-- reactos/lib/ntdll/rtl/encode.c | 105 ++++++------ reactos/lib/ntdll/rtl/nls.c | 4 +- reactos/lib/ntdll/rtl/random.c | 3 +- reactos/lib/ntdll/rtl/rangelist.c | 186 ++++++++++++++++++++ reactos/lib/ntdll/stdio/sscanf.c | 10 ++ reactos/lib/ntdll/stdio/swprintf.c | 6 +- reactos/lib/ntdll/stdlib/bsearch.c | 28 +++ reactos/lib/ntdll/stdlib/itoa.c | 38 ++++- reactos/lib/ntdll/stdlib/itow.c | 36 ++++ reactos/lib/ntdll/stdlib/lfind.c | 23 +++ reactos/lib/ntdll/string/ctype.c | 24 ++- reactos/lib/ntdll/stubs/stubs.c | 263 ++--------------------------- 23 files changed, 812 insertions(+), 664 deletions(-) create mode 100644 reactos/lib/ntdll/rtl/rangelist.c create mode 100644 reactos/lib/ntdll/stdio/sscanf.c create mode 100644 reactos/lib/ntdll/stdlib/bsearch.c create mode 100644 reactos/lib/ntdll/stdlib/lfind.c diff --git a/reactos/include/funcs.h b/reactos/include/funcs.h index eed1dfad83f..3155b424264 100644 --- a/reactos/include/funcs.h +++ b/reactos/include/funcs.h @@ -2184,8 +2184,6 @@ NTSTATUS STDCALL RtlAddAccessDeniedAceEx( IN DWORD AceFlags, IN DWORD AccessMask, IN PSID pSid); -DWORD STDCALL RtlComputeCrc32(DWORD dwInitial, PBYTE pData, INT iLen); -WCHAR STDCALL RtlDowncaseUnicodeChar(WCHAR wch); NTSTATUS STDCALL RtlDuplicateUnicodeString( int add_nul, const UNICODE_STRING *source, @@ -2195,17 +2193,11 @@ NTSTATUS STDCALL RtlFindCharInUnicodeString( const UNICODE_STRING *main_str, const UNICODE_STRING *search_chars, USHORT *pos); -ULONG STDCALL RtlFindClearRuns(PCRTL_BITMAP lpBits, PRTL_BITMAP_RUN lpSeries, - ULONG ulCount, BOOLEAN bLongest); -ULONG STDCALL RtlFindLastBackwardRunClear(PCRTL_BITMAP lpBits, ULONG ulStart, PULONG lpPos); CCHAR STDCALL RtlFindLeastSignificantBit(ULONGLONG ulLong); CCHAR STDCALL RtlFindMostSignificantBit(ULONGLONG ulLong); -ULONG STDCALL RtlFindNextForwardRunClear(PCRTL_BITMAP lpBits, ULONG ulStart, PULONG lpPos); VOID STDCALL RtlFreeOemString(POEM_STRING str); NTSTATUS STDCALL RtlInitUnicodeStringEx(PUNICODE_STRING target,PCWSTR source); -NTSTATUS STDCALL RtlInitializeCriticalSectionAndSpinCount(RTL_CRITICAL_SECTION *crit, DWORD spincount); NTSTATUS STDCALL RtlInt64ToUnicodeString(ULONGLONG value,ULONG base,UNICODE_STRING *str); -void *_lfind(const void* match, const void* start,unsigned int* array_size, unsigned int elem_size,int (*cf)(const void*,const void*)); ULONG __cdecl @@ -2346,76 +2338,12 @@ NtUnloadKeyEx( ); NTSTATUS STDCALL -RtlAddRange( - IN OUT PRTL_RANGE_LIST RangeList, - IN ULONGLONG Start, - IN ULONGLONG End, - IN UCHAR Attributes, - IN ULONG Flags, - IN PVOID UserData, OPTIONAL - IN PVOID Owner OPTIONAL - ); -NTSTATUS -STDCALL -RtlCopyRangeList( - OUT PRTL_RANGE_LIST CopyRangeList, - IN PRTL_RANGE_LIST RangeList - ); -NTSTATUS -STDCALL -RtlDeleteOwnersRanges( - IN OUT PRTL_RANGE_LIST RangeList, - IN PVOID Owner - ); -NTSTATUS -STDCALL -RtlDeleteRange( - IN OUT PRTL_RANGE_LIST RangeList, - IN ULONGLONG Start, - IN ULONGLONG End, - IN PVOID Owner - ); -NTSTATUS -STDCALL -RtlFindRange( - IN PRTL_RANGE_LIST RangeList, - IN ULONGLONG Minimum, - IN ULONGLONG Maximum, - IN ULONG Length, - IN ULONG Alignment, - IN ULONG Flags, - IN UCHAR AttributeAvailableMask, - IN PVOID Context OPTIONAL, - IN PRTL_CONFLICT_RANGE_CALLBACK Callback OPTIONAL, - OUT PULONGLONG Start - ); -VOID -STDCALL -RtlFreeRangeList( - IN PRTL_RANGE_LIST RangeList - ); -NTSTATUS -STDCALL RtlGUIDFromString( IN PUNICODE_STRING GuidString, OUT GUID* Guid ); NTSTATUS STDCALL -RtlGetFirstRange( - IN PRTL_RANGE_LIST RangeList, - OUT PRTL_RANGE_LIST_ITERATOR Iterator, - OUT PRTL_RANGE *Range - ); -NTSTATUS -STDCALL -RtlGetNextRange( - IN OUT PRTL_RANGE_LIST_ITERATOR Iterator, - OUT PRTL_RANGE *Range, - IN BOOL MoveForwards - ); -NTSTATUS -STDCALL RtlGetVersion( OUT PRTL_OSVERSIONINFOW lpVersionInformation ); @@ -2427,43 +2355,6 @@ RtlHashUnicodeString( IN ULONG HashAlgorithm, OUT PULONG HashValue ); -VOID -STDCALL -RtlInitializeRangeList( - IN OUT PRTL_RANGE_LIST RangeList - ); -NTSTATUS -STDCALL -RtlInvertRangeList( - OUT PRTL_RANGE_LIST InvertedRangeList, - IN PRTL_RANGE_LIST RangeList - ); -NTSTATUS -STDCALL -RtlIsRangeAvailable( - IN PRTL_RANGE_LIST RangeList, - IN ULONGLONG Start, - IN ULONGLONG End, - IN ULONG Flags, - IN UCHAR AttributeAvailableMask, - IN PVOID Context OPTIONAL, - IN PRTL_CONFLICT_RANGE_CALLBACK Callback OPTIONAL, - OUT PBOOL Available - ); -NTSTATUS -STDCALL -RtlMergeRangeLists( - OUT PRTL_RANGE_LIST MergedRangeList, - IN PRTL_RANGE_LIST RangeList1, - IN PRTL_RANGE_LIST RangeList2, - IN ULONG Flags - ); -NTSTATUS -STDCALL -RtlStringFromGUID( - IN REFGUID Guid, - OUT PUNICODE_STRING GuidString - ); USHORT FASTCALL RtlUshortByteSwap( diff --git a/reactos/include/ntdll/rtl.h b/reactos/include/ntdll/rtl.h index 56f8d1a1cf8..5339b19d306 100644 --- a/reactos/include/ntdll/rtl.h +++ b/reactos/include/ntdll/rtl.h @@ -1,4 +1,4 @@ -/* $Id: rtl.h,v 1.41 2004/01/29 23:41:36 navaraf Exp $ +/* $Id: rtl.h,v 1.42 2004/02/01 20:44:59 ekohl Exp $ * */ @@ -37,24 +37,28 @@ typedef struct _DEBUG_BUFFER PVOID Reserved[8]; } DEBUG_BUFFER, *PDEBUG_BUFFER; -typedef struct _CRITICAL_SECTION_DEBUG { - WORD Type; - WORD CreatorBackTraceIndex; - struct _CRITICAL_SECTION *CriticalSection; - LIST_ENTRY ProcessLocksList; - DWORD EntryCount; - DWORD ContentionCount; - DWORD Depth; - PVOID OwnerBackTrace[ 5 ]; + +typedef struct _CRITICAL_SECTION_DEBUG +{ + USHORT Type; + USHORT CreatorBackTraceIndex; + struct _CRITICAL_SECTION *CriticalSection; + LIST_ENTRY ProcessLocksList; + ULONG EntryCount; + ULONG ContentionCount; + ULONG Depth; + PVOID OwnerBackTrace[ 5 ]; } CRITICAL_SECTION_DEBUG, *PCRITICAL_SECTION_DEBUG; -typedef struct _CRITICAL_SECTION { - PCRITICAL_SECTION_DEBUG DebugInfo; - LONG LockCount; - LONG RecursionCount; - HANDLE OwningThread; - HANDLE LockSemaphore; - ULONG_PTR SpinCount; + +typedef struct _CRITICAL_SECTION +{ + PCRITICAL_SECTION_DEBUG DebugInfo; + LONG LockCount; + LONG RecursionCount; + HANDLE OwningThread; + HANDLE LockSemaphore; + ULONG_PTR SpinCount; } CRITICAL_SECTION, *PCRITICAL_SECTION, *LPCRITICAL_SECTION; typedef CRITICAL_SECTION RTL_CRITICAL_SECTION; @@ -112,43 +116,46 @@ 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 +VOID STDCALL RtlDeleteCriticalSection ( PCRITICAL_SECTION CriticalSection ); -VOID -STDCALL +VOID STDCALL RtlEnterCriticalSection ( PCRITICAL_SECTION CriticalSection ); -NTSTATUS -STDCALL +NTSTATUS STDCALL RtlInitializeCriticalSection ( PCRITICAL_SECTION CriticalSection ); -VOID -STDCALL +NTSTATUS STDCALL +RtlInitializeCriticalSectionAndSpinCount (PCRITICAL_SECTION CriticalSection, + ULONG SpinCount); + +VOID STDCALL RtlLeaveCriticalSection ( PCRITICAL_SECTION CriticalSection ); -BOOLEAN -STDCALL +BOOLEAN STDCALL RtlTryEnterCriticalSection ( PCRITICAL_SECTION CriticalSection ); -DWORD -STDCALL +DWORD STDCALL RtlCompactHeap ( HANDLE heap, DWORD flags ); +ULONG STDCALL +RtlComputeCrc32 (IN ULONG Initial, + IN PUCHAR Data, + IN ULONG Length); + PDEBUG_BUFFER STDCALL RtlCreateQueryDebugBuffer(IN ULONG Size, IN BOOLEAN EventPair); @@ -156,28 +163,24 @@ RtlCreateQueryDebugBuffer(IN ULONG Size, NTSTATUS STDCALL RtlDestroyQueryDebugBuffer(IN PDEBUG_BUFFER DebugBuffer); -BOOLEAN -STDCALL +BOOLEAN STDCALL RtlEqualComputerName ( IN PUNICODE_STRING ComputerName1, IN PUNICODE_STRING ComputerName2 ); -BOOLEAN -STDCALL +BOOLEAN STDCALL RtlEqualDomainName ( IN PUNICODE_STRING DomainName1, IN PUNICODE_STRING DomainName2 ); -VOID -STDCALL +VOID STDCALL RtlEraseUnicodeString ( IN PUNICODE_STRING String ); -NTSTATUS -STDCALL +NTSTATUS STDCALL RtlLargeIntegerToChar ( IN PLARGE_INTEGER Value, IN ULONG Base, @@ -242,9 +245,11 @@ RtlGetLongestNtPathLength ( VOID ); -ULONG STDCALL RtlGetNtGlobalFlags(VOID); +ULONG STDCALL +RtlGetNtGlobalFlags (VOID); -BOOLEAN STDCALL RtlGetNtProductType(PNT_PRODUCT_TYPE ProductType); +BOOLEAN STDCALL +RtlGetNtProductType (PNT_PRODUCT_TYPE ProductType); ULONG STDCALL @@ -343,7 +348,8 @@ RtlCreateUserThread ( IN OUT PCLIENT_ID ClientId ); -NTSTATUS STDCALL RtlExitUserThread(NTSTATUS Status); +NTSTATUS STDCALL +RtlExitUserThread (NTSTATUS Status); NTSTATUS STDCALL @@ -589,17 +595,13 @@ RtlpNtSetValueKey ( ); -VOID NTAPI RtlRunDecodeUnicodeString -( - IN UCHAR hash, - IN OUT PUNICODE_STRING uString -); +VOID STDCALL +RtlRunDecodeUnicodeString (IN UCHAR Hash, + IN OUT PUNICODE_STRING String); -VOID NTAPI RtlRunEncodeUnicodeString -( - IN OUT PUCHAR hash, - IN OUT PUNICODE_STRING uString -); +VOID STDCALL +RtlRunEncodeUnicodeString (IN OUT PUCHAR Hash, + IN OUT PUNICODE_STRING String); #ifndef __NTDRIVER__ diff --git a/reactos/include/ntos/rtl.h b/reactos/include/ntos/rtl.h index 8ce78c8e4f6..c608d294fc8 100755 --- a/reactos/include/ntos/rtl.h +++ b/reactos/include/ntos/rtl.h @@ -1,4 +1,4 @@ -/* $Id: rtl.h,v 1.24 2004/01/23 18:00:53 navaraf Exp $ +/* $Id: rtl.h,v 1.25 2004/02/01 20:45:18 ekohl Exp $ * */ #ifndef __DDK_RTL_H @@ -615,6 +615,15 @@ RtlAddAtomToAtomTable ( OUT PRTL_ATOM Atom ); +NTSTATUS STDCALL +RtlAddRange (IN OUT PRTL_RANGE_LIST RangeList, + IN ULONGLONG Start, + IN ULONGLONG End, + IN UCHAR Attributes, + IN ULONG Flags, + IN PVOID UserData OPTIONAL, + IN PVOID Owner OPTIONAL); + PVOID STDCALL RtlAllocateHeap ( HANDLE Heap, @@ -797,6 +806,10 @@ RtlCopyLuidAndAttributesArray(ULONG Count, PLUID_AND_ATTRIBUTES Src, PLUID_AND_ATTRIBUTES Dest); +NTSTATUS STDCALL +RtlCopyRangeList (OUT PRTL_RANGE_LIST CopyRangeList, + IN PRTL_RANGE_LIST RangeList); + NTSTATUS STDCALL RtlCopySid(ULONG BufferLength, PSID Dest, @@ -901,6 +914,16 @@ NTSTATUS STDCALL RtlDeleteAtomFromAtomTable(IN PRTL_ATOM_TABLE AtomTable, IN RTL_ATOM Atom); +NTSTATUS STDCALL +RtlDeleteOwnersRanges (IN OUT PRTL_RANGE_LIST RangeList, + IN PVOID Owner); + +NTSTATUS STDCALL +RtlDeleteRange (IN OUT PRTL_RANGE_LIST RangeList, + IN ULONGLONG Start, + IN ULONGLONG End, + IN PVOID Owner); + NTSTATUS STDCALL RtlDescribeChunk(IN USHORT CompressionFormat, IN OUT PUCHAR *CompressedBuffer, @@ -990,13 +1013,6 @@ RtlFillMemoryUlong ( ULONG Fill ); -NTSTATUS -STDCALL -RtlStringFromGUID ( - IN REFGUID Guid, - OUT PUNICODE_STRING GuidString - ); - ULONG STDCALL RtlFindClearBits ( @@ -1051,6 +1067,18 @@ RtlFindMessage ( OUT PRTL_MESSAGE_RESOURCE_ENTRY *MessageResourceEntry ); +NTSTATUS STDCALL +RtlFindRange (IN PRTL_RANGE_LIST RangeList, + IN ULONGLONG Minimum, + IN ULONGLONG Maximum, + IN ULONG Length, + IN ULONG Alignment, + IN ULONG Flags, + IN UCHAR AttributeAvailableMask, + IN PVOID Context OPTIONAL, + IN PRTL_CONFLICT_RANGE_CALLBACK Callback OPTIONAL, + OUT PULONGLONG Start); + ULONG STDCALL RtlFindSetBits ( @@ -1093,6 +1121,9 @@ RtlFreeOemString ( POEM_STRING OemString ); +VOID STDCALL +RtlFreeRangeList (IN PRTL_RANGE_LIST RangeList); + VOID STDCALL RtlFreeUnicodeString ( @@ -1117,6 +1148,16 @@ RtlGetDefaultCodePage ( PUSHORT OemCodePage ); +NTSTATUS STDCALL +RtlGetFirstRange (IN PRTL_RANGE_LIST RangeList, + OUT PRTL_RANGE_LIST_ITERATOR Iterator, + OUT PRTL_RANGE *Range); + +NTSTATUS STDCALL +RtlGetNextRange (IN OUT PRTL_RANGE_LIST_ITERATOR Iterator, + OUT PRTL_RANGE *Range, + IN BOOLEAN MoveForwards); + PVOID STDCALL RtlImageDirectoryEntryToData ( @@ -1214,6 +1255,9 @@ RtlInitializeGenericTable ( IN ULONG UserParameter ); +VOID STDCALL +RtlInitializeRangeList (IN OUT PRTL_RANGE_LIST RangeList); + PVOID STDCALL RtlInsertElementGenericTable ( @@ -1240,19 +1284,27 @@ RtlIntegerToUnicodeString ( IN OUT PUNICODE_STRING String ); -BOOLEAN -STDCALL -RtlIsGenericTableEmpty ( - IN PRTL_GENERIC_TABLE Table - ); +NTSTATUS STDCALL +RtlInvertRangeList (OUT PRTL_RANGE_LIST InvertedRangeList, + IN PRTL_RANGE_LIST RangeList); -BOOLEAN -STDCALL -RtlIsNameLegalDOS8Dot3 ( - IN PUNICODE_STRING UnicodeName, - IN PANSI_STRING AnsiName, - OUT PBOOLEAN SpacesFound - ); +BOOLEAN STDCALL +RtlIsGenericTableEmpty (IN PRTL_GENERIC_TABLE Table); + +BOOLEAN STDCALL +RtlIsNameLegalDOS8Dot3 (IN PUNICODE_STRING UnicodeName, + IN PANSI_STRING AnsiName, + OUT PBOOLEAN SpacesFound); + +NTSTATUS STDCALL +RtlIsRangeAvailable (IN PRTL_RANGE_LIST RangeList, + IN ULONGLONG Start, + IN ULONGLONG End, + IN ULONG Flags, + IN UCHAR AttributeAvailableMask, + IN PVOID Context OPTIONAL, + IN PRTL_CONFLICT_RANGE_CALLBACK Callback OPTIONAL, + OUT PBOOLEAN Available); ULONG STDCALL @@ -1464,6 +1516,12 @@ RtlLookupAtomInAtomTable ( OUT PRTL_ATOM Atom ); +NTSTATUS STDCALL +RtlMergeRangeLists (OUT PRTL_RANGE_LIST MergedRangeList, + IN PRTL_RANGE_LIST RangeList1, + IN PRTL_RANGE_LIST RangeList2, + IN ULONG Flags); + NTSTATUS STDCALL RtlMultiByteToUnicodeN ( @@ -1738,7 +1796,11 @@ RtlSizeHeap ( { \ *((PUSHORT)(Address))=(USHORT)(Value); \ } - + +NTSTATUS STDCALL +RtlStringFromGUID (IN REFGUID Guid, + OUT PUNICODE_STRING GuidString); + BOOLEAN STDCALL RtlTimeFieldsToTime ( diff --git a/reactos/include/ntos/rtltypes.h b/reactos/include/ntos/rtltypes.h index 218d252c384..cdf98872858 100755 --- a/reactos/include/ntos/rtltypes.h +++ b/reactos/include/ntos/rtltypes.h @@ -1,4 +1,4 @@ -/* $Id: rtltypes.h,v 1.11 2004/01/05 14:28:19 weiden Exp $ +/* $Id: rtltypes.h,v 1.12 2004/02/01 20:45:18 ekohl Exp $ * */ @@ -63,10 +63,15 @@ typedef struct _TIME_FIELDS typedef struct _RTL_BITMAP { - ULONG SizeOfBitMap; + ULONG SizeOfBitMap; PULONG Buffer; } RTL_BITMAP, *PRTL_BITMAP; +typedef struct _RTL_BITMAP_RUN +{ + ULONG StarttingIndex; + ULONG NumberOfBits; +} RTL_BITMAP_RUN, *PRTL_BITMAP_RUN; #ifdef __GNUC__ #define STDCALL_FUNC STDCALL @@ -123,13 +128,48 @@ typedef struct _RTL_SPLAY_LINKS struct _RTL_SPLAY_LINKS *RightChild; } RTL_SPLAY_LINKS, *PRTL_SPLAY_LINKS; + +typedef struct _RTL_RANGE_LIST +{ + LIST_ENTRY ListHead; + ULONG Flags; + ULONG Count; + ULONG Stamp; +} RTL_RANGE_LIST, *PRTL_RANGE_LIST; + + +typedef struct _RTL_RANGE +{ + ULONGLONG Start; + ULONGLONG End; + PVOID UserData; + PVOID Owner; + UCHAR Attributes; + UCHAR Flags; +} RTL_RANGE, *PRTL_RANGE; + + +typedef BOOLEAN +(STDCALL *PRTL_CONFLICT_RANGE_CALLBACK) (PVOID Context, + PRTL_RANGE Range); + + +typedef struct _RANGE_LIST_ITERATOR +{ + PLIST_ENTRY RangeListHead; + PLIST_ENTRY MergedHead; + PVOID Current; + ULONG Stamp; +} RTL_RANGE_LIST_ITERATOR, *PRTL_RANGE_LIST_ITERATOR; + + typedef struct _USER_STACK { - PVOID FixedStackBase; - PVOID FixedStackLimit; - PVOID ExpandableStackBase; - PVOID ExpandableStackLimit; - PVOID ExpandableStackBottom; + PVOID FixedStackBase; + PVOID FixedStackLimit; + PVOID ExpandableStackBase; + PVOID ExpandableStackLimit; + PVOID ExpandableStackBottom; } USER_STACK, *PUSER_STACK; #else /* __USE_W32API */ diff --git a/reactos/include/structs.h b/reactos/include/structs.h index 41e0e939dc8..6635fbdff40 100644 --- a/reactos/include/structs.h +++ b/reactos/include/structs.h @@ -496,36 +496,6 @@ typedef struct _cpinfoexW { typedef_tident(CPINFOEX) typedef_tident(LPCPINFOEX) -typedef struct _RTL_RANGE_LIST { - LIST_ENTRY ListHead; - ULONG Flags; - ULONG Count; - ULONG Stamp; -} RTL_RANGE_LIST, *PRTL_RANGE_LIST; - -typedef struct _RTL_RANGE { - ULONGLONG Start; - ULONGLONG End; - PVOID UserData; - PVOID Owner; - UCHAR Attributes; - UCHAR Flags; -} RTL_RANGE, *PRTL_RANGE; - -typedef -BOOLEAN -(CALLBACK *PRTL_CONFLICT_RANGE_CALLBACK) ( -PVOID Context, -PRTL_RANGE Range - ); - -typedef struct _RANGE_LIST_ITERATOR { - PLIST_ENTRY RangeListHead; - PLIST_ENTRY MergedHead; - PVOID Current; - ULONG Stamp; -} RTL_RANGE_LIST_ITERATOR, *PRTL_RANGE_LIST_ITERATOR; - typedef struct tagCBT_CREATEWNDA { LPCREATESTRUCTA lpcs; HWND hwndInsertAfter; @@ -1000,13 +970,6 @@ typedef struct tagACTCTX_SECTION_KEYED_DATA { } ACTCTX_SECTION_KEYED_DATA, *PACTCTX_SECTION_KEYED_DATA; typedef const ACTCTX_SECTION_KEYED_DATA * PCACTCTX_SECTION_KEYED_DATA; -typedef struct tagRTL_BITMAP_RUN { - ULONG StartOfRun; - ULONG SizeOfRun; -} RTL_BITMAP_RUN, *PRTL_BITMAP_RUN; - -typedef const RTL_BITMAP *PCRTL_BITMAP; - typedef struct _cpinfo { UINT MaxCharSize; BYTE DefaultChar[MAX_DEFAULTCHAR]; diff --git a/reactos/lib/ntdll/def/ntdll.def b/reactos/lib/ntdll/def/ntdll.def index 4c97917ddaa..8cc1261517f 100644 --- a/reactos/lib/ntdll/def/ntdll.def +++ b/reactos/lib/ntdll/def/ntdll.def @@ -1,4 +1,4 @@ -; $Id: ntdll.def,v 1.113 2003/12/02 11:38:46 gvg Exp $ +; $Id: ntdll.def,v 1.114 2004/02/01 20:48:05 ekohl Exp $ ; ; ReactOS Operating System ; @@ -288,6 +288,7 @@ RtlAddAtomToAtomTable@12 ;RtlAddAttributeActionToRXact RtlAddAuditAccessAce@24 ;RtlAddCompoundAce +RtlAddRange@36 RtlAdjustPrivilege@16 RtlAllocateAndInitializeSid@44 RtlAllocateHandle@8 @@ -319,6 +320,7 @@ RtlCompareMemoryUlong@12 RtlCompareString@12 RtlCompareUnicodeString@12 RtlCompressBuffer@32 +RtlComputeCrc32@12 ;RtlConsoleMultiByteToUnicodeN RtlConvertExclusiveToShared@4 RtlConvertLongToLargeInteger@4 @@ -328,6 +330,7 @@ RtlConvertSidToUnicodeString@12 RtlConvertUlongToLargeInteger@4 RtlCopyLuid@8 RtlCopyLuidAndAttributesArray@12 +RtlCopyRangeList@8 ;RtlCopySecurityDescriptor RtlCopySid@12 RtlCopySidAndAttributesArray@28 @@ -360,6 +363,8 @@ RtlDeleteAtomFromAtomTable@8 RtlDeleteCriticalSection@4 RtlDeleteElementGenericTable@8 RtlDeleteNoSplay@8 +RtlDeleteOwnersRanges@8 +RtlDeleteRange@24 RtlDeleteRegistryValue@12 RtlDeleteResource@4 RtlDeleteSecurityObject@4 @@ -373,6 +378,7 @@ RtlDetermineDosPathNameType_U@4 RtlDoesFileExists_U@4 RtlDosPathNameToNtPathName_U@16 RtlDosSearchPath_U@24 +RtlDowncaseUnicodeChar@4 RtlDowncaseUnicodeString@12 RtlDumpResource@4 RtlEmptyAtomTable@8 @@ -402,9 +408,13 @@ RtlFillMemory@12 RtlFillMemoryUlong@12 RtlFindClearBits@12 RtlFindClearBitsAndSet@12 +RtlFindClearRuns@16 +RtlFindLastBackwardRunClear@12 RtlFindLongestRunClear@8 RtlFindLongestRunSet@8 RtlFindMessage@20 +RtlFindNextForwardRunClear@12 +RtlFindRange@48 RtlFindSetBits@12 RtlFindSetBitsAndClear@12 RtlFirstFreeAce@8 @@ -415,6 +425,7 @@ RtlFreeAnsiString@4 RtlFreeHandle@8 RtlFreeHeap@12 RtlFreeOemString@4 +RtlFreeRangeList@4 RtlFreeSid@4 RtlFreeUnicodeString@4 RtlFreeUserThreadStack@8 @@ -426,9 +437,11 @@ RtlGetControlSecurityDescriptor@12 RtlGetCurrentDirectory_U@8 RtlGetDaclSecurityDescriptor@16 RtlGetElementGenericTable@8 +RtlGetFirstRange@12 RtlGetFullPathName_U@16 RtlGetGroupSecurityDescriptor@12 RtlGetLongestNtPathLength@0 +RtlGetNextRange@12 RtlGetNtGlobalFlags@0 RtlGetNtProductType@4 RtlGetNtVersionNumbers@12 @@ -452,17 +465,21 @@ RtlInitUnicodeString@8 RtlInitializeBitMap@12 RtlInitializeContext@20 RtlInitializeCriticalSection@4 +RtlInitializeCriticalSectionAndSpinCount@8 RtlInitializeGenericTable@20 RtlInitializeHandleTable@12 -;RtlInitializeRXact +RtlInitializeRangeList@4 RtlInitializeResource@4 +;RtlInitializeRXact RtlInitializeSid@12 RtlInsertElementGenericTable@16 RtlIntegerToChar@16 RtlIntegerToUnicodeString@12 +RtlInvertRangeList@8 RtlIsDosDeviceName_U@4 RtlIsGenericTableEmpty@4 RtlIsNameLegalDOS8Dot3@12 +RtlIsRangeAvailable@40 RtlIsTextUnicode@12 RtlIsValidHandle@8 RtlIsValidIndexHandle@12 @@ -484,6 +501,7 @@ RtlLookupAtomInAtomTable@12 RtlLookupElementGenericTable@8 RtlMakeSelfRelativeSD@12 RtlMapGenericMask@8 +RtlMergeRangeLists@16 RtlMoveMemory@12 RtlMultiByteToUnicodeN@20 RtlMultiByteToUnicodeSize@12 @@ -846,6 +864,7 @@ _i64toa _i64tow _itoa _itow +_lfind _ltoa _ltow _memccpy @@ -860,9 +879,12 @@ _strnicmp _strupr _tolower _toupper +_ui64toa +_ui64tow _ultoa _ultow _vsnprintf +_vsnwprintf _wcsicmp _wcslwr _wcsnicmp @@ -874,6 +896,7 @@ abs atan atoi atol +bsearch ceil cos fabs @@ -890,7 +913,10 @@ isspace isupper iswalpha iswctype +iswdigit +iswlower iswspace +iswxdigit isxdigit labs log @@ -1072,7 +1098,6 @@ RtlAddAccessDeniedAceEx@20 ;RtlAddAccessDeniedObjectAce ;RtlAddAuditAccessAceEx ;RtlAddAuditAccessObjectAce -RtlAddRange@36 RtlAddRefActivationContext@4 ;RtlAddRefMemoryStream ;RtlAddVectoredExceptionHandler @@ -1088,7 +1113,6 @@ RtlCaptureContext@4 ;RtlCloneMemoryStream ;RtlCommitMemoryStream ;RtlCompareVariants -RtlComputeCrc32@12 ;RtlComputeImportTableHash ;RtlComputePrivatizedDllName_U ;RtlConvertPropertyToVariant @@ -1096,7 +1120,6 @@ RtlComputeCrc32@12 ;RtlConvertVariantToProperty ;RtlCopyMemoryStreamTo ;RtlCopyOutOfProcessMemoryStreamTo -RtlCopyRangeList@8 ;RtlCreateActivationContext ;RtlCreateBootStatusDataFile ;RtlCreateSystemVolumeInformationFolder @@ -1107,8 +1130,6 @@ RtlDeactivateActivationContext@8 ;RtlDebugPrintTimes ;RtlDefaultNpAcl ;RtlDeleteElementGenericTableAvl -RtlDeleteOwnersRanges@8 -RtlDeleteRange@24 RtlDeleteTimer@12 RtlDeleteTimerQueue@4 RtlDeleteTimerQueueEx@8 @@ -1118,7 +1139,6 @@ RtlDllShutdownInProgress@0 ;RtlDnsHostNameToComputerName ;RtlDosApplyFileIsolationRedirection_Ustr ;RtlDosSearchPath_Ustr -RtlDowncaseUnicodeChar@4 RtlDuplicateUnicodeString@12 ;RtlEnableEarlyCriticalSectionEventCreation ;RtlEnumerateGenericTableAvl @@ -1128,29 +1148,21 @@ RtlDuplicateUnicodeString@12 ;RtlFindActivationContextSectionGuid ;RtlFindActivationContextSectionString RtlFindCharInUnicodeString@16 -RtlFindClearRuns@16 -RtlFindLastBackwardRunClear@12 RtlFindLeastSignificantBit@8 RtlFindMostSignificantBit@8 -RtlFindNextForwardRunClear@12 -RtlFindRange@48 ;RtlFirstEntrySList ;RtlFlushSecureMemoryCache -RtlFreeOemString@4 -RtlFreeRangeList@4 ;RtlFreeThreadActivationContextStack RtlGUIDFromString@8 RtlGetActiveActivationContext@4 RtlGetCurrentPeb@0 ;RtlGetElementGenericTableAvl -RtlGetFirstRange@12 ;RtlGetFrame RtlGetLastNtStatus@0 RtlGetLastWin32Error@0 ;RtlGetLengthWithoutLastFullDosOrNtPathElement ;RtlGetLengthWithoutTrailingPathSeperators RtlGetNativeSystemInformation@16 -RtlGetNextRange@12 ;RtlGetSecurityDescriptorRMControl ;RtlGetSetBootStatusData RtlGetVersion@4 @@ -1158,9 +1170,7 @@ RtlHashUnicodeString@16 ;RtlInitMemoryStream ;RtlInitOutOfProcessMemoryStream RtlInitUnicodeStringEx@8 -RtlInitializeCriticalSectionAndSpinCount@8 ;RtlInitializeGenericTableAvl -RtlInitializeRangeList@4 RtlInitializeSListHead@4 ;RtlInsertElementGenericTableAvl RtlInt64ToUnicodeString@16 @@ -1168,7 +1178,6 @@ RtlInterlockedFlushSList@4 RtlInterlockedPopEntrySList@4 RtlInterlockedPushEntrySList@8 ;RtlInterlockedPushListSList -RtlInvertRangeList@8 ;RtlIpv4AddressToStringA ;RtlIpv4AddressToStringW ;RtlIpv4StringToAddressA @@ -1178,14 +1187,12 @@ RtlInvertRangeList@8 ;RtlIpv6StringToAddressW ;RtlIsActivationContextActive ;RtlIsGenericTableEmptyAvl -RtlIsRangeAvailable@40 ;RtlIsThreadWithinLoaderCallout ;RtlLockBootStatusData ;RtlLockMemoryStreamRegion RtlLogStackBackTrace@0 ;RtlLookupElementGenericTableAvl ;RtlMapSecurityErrorToNtStatus -RtlMergeRangeLists@16 ;RtlMultiAppendUnicodeStringBuffer ;RtlNewSecurityObjectEx ;RtlNewSecurityObjectWithMultipleInheritance @@ -1458,14 +1465,6 @@ _CIpow ;__eGetStatusWord ;_alldvrm ;_aulldvrm -_lfind -_ui64toa -_ui64tow -_vsnwprintf -bsearch -iswdigit -iswlower -iswxdigit vDbgPrintEx vDbgPrintExWithPrefix CsrIsCsrss@0 \ No newline at end of file diff --git a/reactos/lib/ntdll/def/ntdll.edf b/reactos/lib/ntdll/def/ntdll.edf index d9f6cd8b95c..f02b65db7a5 100644 --- a/reactos/lib/ntdll/def/ntdll.edf +++ b/reactos/lib/ntdll/def/ntdll.edf @@ -1,4 +1,4 @@ -; $Id: ntdll.edf,v 1.103 2003/12/02 11:38:46 gvg Exp $ +; $Id: ntdll.edf,v 1.104 2004/02/01 20:48:05 ekohl Exp $ ; ; ReactOS Operating System ; @@ -288,6 +288,7 @@ RtlAddAtomToAtomTable=RtlAddAtomToAtomTable@12 ;RtlAddAttributeActionToRXact RtlAddAuditAccessAce=RtlAddAuditAccessAce@24 ;RtlAddCompoundAce +RtlAddRange=RtlAddRange@36 RtlAdjustPrivilege=RtlAdjustPrivilege@16 RtlAllocateAndInitializeSid=RtlAllocateAndInitializeSid@44 RtlAllocateHandle=RtlAllocateHandle@8 @@ -319,6 +320,7 @@ RtlCompareMemoryUlong=RtlCompareMemoryUlong@12 RtlCompareString=RtlCompareString@12 RtlCompareUnicodeString=RtlCompareUnicodeString@12 RtlCompressBuffer=RtlCompressBuffer@32 +RtlComputeCrc32=RtlComputeCrc32@12 ;RtlConsoleMultiByteToUnicodeN RtlConvertExclusiveToShared=RtlConvertExclusiveToShared@4 RtlConvertLongToLargeInteger=RtlConvertLongToLargeInteger@4 @@ -328,6 +330,7 @@ RtlConvertSidToUnicodeString=RtlConvertSidToUnicodeString@12 RtlConvertUlongToLargeInteger=RtlConvertUlongToLargeInteger@4 RtlCopyLuid=RtlCopyLuid@8 RtlCopyLuidAndAttributesArray=RtlCopyLuidAndAttributesArray@12 +RtlCopyRangeList=RtlCopyRangeList@8 ;RtlCopySecurityDescriptor RtlCopySid=RtlCopySid@12 RtlCopySidAndAttributesArray=RtlCopySidAndAttributesArray@28 @@ -360,6 +363,8 @@ RtlDeleteAtomFromAtomTable=RtlDeleteAtomFromAtomTable@8 RtlDeleteCriticalSection=RtlDeleteCriticalSection@4 RtlDeleteElementGenericTable=RtlDeleteElementGenericTable@8 RtlDeleteNoSplay=RtlDeleteNoSplay@8 +RtlDeleteOwnersRanges=RtlDeleteOwnersRanges@8 +RtlDeleteRange=RtlDeleteRange@24 RtlDeleteRegistryValue=RtlDeleteRegistryValue@12 RtlDeleteResource=RtlDeleteResource@4 RtlDeleteSecurityObject=RtlDeleteSecurityObject@4 @@ -373,6 +378,7 @@ RtlDetermineDosPathNameType_U=RtlDetermineDosPathNameType_U@4 RtlDoesFileExists_U=RtlDoesFileExists_U@4 RtlDosPathNameToNtPathName_U=RtlDosPathNameToNtPathName_U@16 RtlDosSearchPath_U=RtlDosSearchPath_U@24 +RtlDowncaseUnicodeChar=RtlDowncaseUnicodeChar@4 RtlDowncaseUnicodeString=RtlDowncaseUnicodeString@12 RtlDumpResource=RtlDumpResource@4 RtlEmptyAtomTable=RtlEmptyAtomTable@8 @@ -402,12 +408,16 @@ RtlFillMemory=RtlFillMemory@12 RtlFillMemoryUlong=RtlFillMemoryUlong@12 RtlFindClearBits=RtlFindClearBits@12 RtlFindClearBitsAndSet=RtlFindClearBitsAndSet@12 -RtlFirstFreeAce=RtlFirstFreeAce@8 +RtlFindClearRuns=RtlFindClearRuns@16 +RtlFindLastBackwardRunClear=RtlFindLastBackwardRunClear@12 RtlFindLongestRunClear=RtlFindLongestRunClear@8 RtlFindLongestRunSet=RtlFindLongestRunSet@8 RtlFindMessage=RtlFindMessage@20 +RtlFindNextForwardRunClear=RtlFindNextForwardRunClear@12 +RtlFindRange=RtlFindRange@48 RtlFindSetBits=RtlFindSetBits@12 RtlFindSetBitsAndClear=RtlFindSetBitsAndClear@12 +RtlFirstFreeAce=RtlFirstFreeAce@8 ;RtlFlushPropertySet RtlFormatCurrentUserKeyPath=RtlFormatCurrentUserKeyPath@4 ;RtlFormatMessage @@ -415,6 +425,7 @@ RtlFreeAnsiString=RtlFreeAnsiString@4 RtlFreeHandle=RtlFreeHandle@8 RtlFreeHeap=RtlFreeHeap@12 RtlFreeOemString=RtlFreeOemString@4 +RtlFreeRangeList=RtlFreeRangeList@4 RtlFreeSid=RtlFreeSid@4 RtlFreeUnicodeString=RtlFreeUnicodeString@4 RtlFreeUserThreadStack=RtlFreeUserThreadStack@8 @@ -426,9 +437,11 @@ RtlGetControlSecurityDescriptor=RtlGetControlSecurityDescriptor@12 RtlGetCurrentDirectory_U=RtlGetCurrentDirectory_U@8 RtlGetDaclSecurityDescriptor=RtlGetDaclSecurityDescriptor@16 RtlGetElementGenericTable=RtlGetElementGenericTable@8 +RtlGetFirstRange=RtlGetFirstRange@12 RtlGetFullPathName_U=RtlGetFullPathName_U@16 RtlGetGroupSecurityDescriptor=RtlGetGroupSecurityDescriptor@12 RtlGetLongestNtPathLength=RtlGetLongestNtPathLength@0 +RtlGetNextRange=RtlGetNextRange@12 RtlGetNtGlobalFlags=RtlGetNtGlobalFlags@0 RtlGetNtProductType=RtlGetNtProductType@4 RtlGetNtVersionNumbers=RtlGetNtVersionNumbers@12 @@ -452,17 +465,21 @@ RtlInitUnicodeString=RtlInitUnicodeString@8 RtlInitializeBitMap=RtlInitializeBitMap@12 RtlInitializeContext=RtlInitializeContext@20 RtlInitializeCriticalSection=RtlInitializeCriticalSection@4 +RtlInitializeCriticalSectionAndSpinCount=RtlInitializeCriticalSectionAndSpinCount@8 RtlInitializeGenericTable=RtlInitializeGenericTable@20 RtlInitializeHandleTable=RtlInitializeHandleTable@12 -;RtlInitializeRXact +RtlInitializeRangeList=RtlInitializeRangeList@4 RtlInitializeResource=RtlInitializeResource@4 +;RtlInitializeRXact RtlInitializeSid=RtlInitializeSid@12 RtlInsertElementGenericTable=RtlInsertElementGenericTable@16 RtlIntegerToChar=RtlIntegerToChar@16 RtlIntegerToUnicodeString=RtlIntegerToUnicodeString@12 +RtlInvertRangeList=RtlInvertRangeList@8 RtlIsDosDeviceName_U=RtlIsDosDeviceName_U@4 RtlIsGenericTableEmpty=RtlIsGenericTableEmpty@4 RtlIsNameLegalDOS8Dot3=RtlIsNameLegalDOS8Dot3@12 +RtlIsRangeAvailable=RtlIsRangeAvailable@40 RtlIsTextUnicode=RtlIsTextUnicode@12 RtlIsValidHandle=RtlIsValidHandle@8 RtlIsValidIndexHandle=RtlIsValidIndexHandle@12 @@ -484,6 +501,7 @@ RtlLookupAtomInAtomTable=RtlLookupAtomInAtomTable@12 RtlLookupElementGenericTable=RtlLookupElementGenericTable@8 RtlMakeSelfRelativeSD=RtlMakeSelfRelativeSD@12 RtlMapGenericMask=RtlMapGenericMask@8 +RtlMergeRangeLists=RtlMergeRangeLists@16 RtlMoveMemory=RtlMoveMemory@12 RtlMultiByteToUnicodeN=RtlMultiByteToUnicodeN@20 RtlMultiByteToUnicodeSize=RtlMultiByteToUnicodeSize@12 @@ -850,6 +868,7 @@ _i64toa _i64tow _itoa _itow +_lfind _ltoa _ltow _memccpy @@ -864,9 +883,12 @@ _strnicmp _strupr _tolower _toupper +_ui64toa +_ui64tow _ultoa _ultow _vsnprintf +_vsnwprintf _wcsicmp _wcslwr _wcsnicmp @@ -878,6 +900,7 @@ abs atan atoi atol +bsearch ceil cos fabs @@ -894,7 +917,10 @@ isspace isupper iswalpha iswctype +iswdigit +iswlower iswspace +iswxdigit isxdigit labs log @@ -1072,7 +1098,6 @@ RtlAddAccessDeniedAceEx=RtlAddAccessDeniedAceEx@20 ;RtlAddAccessDeniedObjectAce ;RtlAddAuditAccessAceEx ;RtlAddAuditAccessObjectAce -RtlAddRange=RtlAddRange@36 RtlAddRefActivationContext=RtlAddRefActivationContext@4 ;RtlAddRefMemoryStream ;RtlAddVectoredExceptionHandler @@ -1088,7 +1113,6 @@ RtlCaptureContext=RtlCaptureContext@4 ;RtlCloneMemoryStream ;RtlCommitMemoryStream ;RtlCompareVariants -RtlComputeCrc32=RtlComputeCrc32@12 ;RtlComputeImportTableHash ;RtlComputePrivatizedDllName_U ;RtlConvertPropertyToVariant @@ -1096,7 +1120,6 @@ RtlComputeCrc32=RtlComputeCrc32@12 ;RtlConvertVariantToProperty ;RtlCopyMemoryStreamTo ;RtlCopyOutOfProcessMemoryStreamTo -RtlCopyRangeList=RtlCopyRangeList@8 ;RtlCreateActivationContext ;RtlCreateBootStatusDataFile ;RtlCreateSystemVolumeInformationFolder @@ -1107,8 +1130,6 @@ RtlDeactivateActivationContext=RtlDeactivateActivationContext@8 ;RtlDebugPrintTimes ;RtlDefaultNpAcl ;RtlDeleteElementGenericTableAvl -RtlDeleteOwnersRanges=RtlDeleteOwnersRanges@8 -RtlDeleteRange=RtlDeleteRange@24 RtlDeleteTimer=RtlDeleteTimer@12 RtlDeleteTimerQueue=RtlDeleteTimerQueue@4 RtlDeleteTimerQueueEx=RtlDeleteTimerQueueEx@8 @@ -1118,7 +1139,6 @@ RtlDllShutdownInProgress=RtlDllShutdownInProgress@0 ;RtlDnsHostNameToComputerName ;RtlDosApplyFileIsolationRedirection_Ustr ;RtlDosSearchPath_Ustr -RtlDowncaseUnicodeChar=RtlDowncaseUnicodeChar@4 RtlDuplicateUnicodeString=RtlDuplicateUnicodeString@12 ;RtlEnableEarlyCriticalSectionEventCreation ;RtlEnumerateGenericTableAvl @@ -1128,29 +1148,21 @@ RtlDuplicateUnicodeString=RtlDuplicateUnicodeString@12 ;RtlFindActivationContextSectionGuid ;RtlFindActivationContextSectionString RtlFindCharInUnicodeString=RtlFindCharInUnicodeString@16 -RtlFindClearRuns=RtlFindClearRuns@16 -RtlFindLastBackwardRunClear=RtlFindLastBackwardRunClear@12 RtlFindLeastSignificantBit=RtlFindLeastSignificantBit@8 RtlFindMostSignificantBit=RtlFindMostSignificantBit@8 -RtlFindNextForwardRunClear=RtlFindNextForwardRunClear@12 -RtlFindRange=RtlFindRange@48 ;RtlFirstEntrySList ;RtlFlushSecureMemoryCache -RtlFreeOemString=RtlFreeOemString -RtlFreeRangeList=RtlFreeRangeList@4 ;RtlFreeThreadActivationContextStack RtlGUIDFromString=RtlGUIDFromString@8 RtlGetActiveActivationContext=RtlGetActiveActivationContext@4 RtlGetCurrentPeb=RtlGetCurrentPeb@0 ;RtlGetElementGenericTableAvl -RtlGetFirstRange=RtlGetFirstRange@12 ;RtlGetFrame RtlGetLastNtStatus=RtlGetLastNtStatus@0 RtlGetLastWin32Error=RtlGetLastWin32Error@0 ;RtlGetLengthWithoutLastFullDosOrNtPathElement ;RtlGetLengthWithoutTrailingPathSeperators RtlGetNativeSystemInformation=RtlGetNativeSystemInformation@16 -RtlGetNextRange=RtlGetNextRange@12 ;RtlGetSecurityDescriptorRMControl ;RtlGetSetBootStatusData RtlGetVersion=RtlGetVersion@4 @@ -1158,9 +1170,7 @@ RtlHashUnicodeString=RtlHashUnicodeString@16 ;RtlInitMemoryStream ;RtlInitOutOfProcessMemoryStream RtlInitUnicodeStringEx=RtlInitUnicodeStringEx@8 -RtlInitializeCriticalSectionAndSpinCount=RtlInitializeCriticalSectionAndSpinCount@8 ;RtlInitializeGenericTableAvl -RtlInitializeRangeList=RtlInitializeRangeList@4 RtlInitializeSListHead=RtlInitializeSListHead@4 ;RtlInsertElementGenericTableAvl RtlInt64ToUnicodeString=RtlInt64ToUnicodeString@16 @@ -1168,7 +1178,6 @@ RtlInterlockedFlushSList=RtlInterlockedFlushSList@4 RtlInterlockedPopEntrySList=RtlInterlockedPopEntrySList@4 RtlInterlockedPushEntrySList=RtlInterlockedPushEntrySList@8 ;RtlInterlockedPushListSList -RtlInvertRangeList=RtlInvertRangeList@8 ;RtlIpv4AddressToStringA ;RtlIpv4AddressToStringW ;RtlIpv4StringToAddressA @@ -1178,14 +1187,12 @@ RtlInvertRangeList=RtlInvertRangeList@8 ;RtlIpv6StringToAddressW ;RtlIsActivationContextActive ;RtlIsGenericTableEmptyAvl -RtlIsRangeAvailable=RtlIsRangeAvailable@40 ;RtlIsThreadWithinLoaderCallout ;RtlLockBootStatusData ;RtlLockMemoryStreamRegion RtlLogStackBackTrace=RtlLogStackBackTrace@0 ;RtlLookupElementGenericTableAvl ;RtlMapSecurityErrorToNtStatus -RtlMergeRangeLists=RtlMergeRangeLists@16 ;RtlMultiAppendUnicodeStringBuffer ;RtlNewSecurityObjectEx ;RtlNewSecurityObjectWithMultipleInheritance @@ -1458,14 +1465,6 @@ _CIpow ;__eGetStatusWord ;_alldvrm ;_aulldvrm -_lfind -_ui64toa -_ui64tow -_vsnwprintf -bsearch -iswdigit -iswlower -iswxdigit vDbgPrintEx vDbgPrintExWithPrefix CsrIsCsrss=CsrIsCsrss@0 diff --git a/reactos/lib/ntdll/makefile b/reactos/lib/ntdll/makefile index 8caeb519b3f..80773fcafde 100644 --- a/reactos/lib/ntdll/makefile +++ b/reactos/lib/ntdll/makefile @@ -1,4 +1,4 @@ -# $Id: makefile,v 1.97 2004/01/30 20:31:35 mf Exp $ +# $Id: makefile,v 1.98 2004/02/01 20:48:05 ekohl Exp $ PATH_TO_TOP = ../.. @@ -29,9 +29,17 @@ TARGET_PATH = def TARGET_ENTRY = 0x0 -CSR_OBJECTS = csr/lpc.o csr/capture.o csr/probe.o csr/thread.o +CSR_OBJECTS = \ + csr/capture.o \ + csr/lpc.o \ + csr/probe.o \ + csr/thread.o -DBG_OBJECTS = dbg/brkpoint.o dbg/debug.o dbg/print.o #dbg/winedbg.o +DBG_OBJECTS = \ + dbg/brkpoint.o \ + dbg/debug.o \ + dbg/print.o +# dbg/winedbg.o LDR_OBJECTS = \ ldr/entry.o \ @@ -54,31 +62,86 @@ RTL_I386_OBJECTS = \ rtl/i386/float.o \ rtl/i386/ftol.o -RTL_OBJECTS = rtl/critical.o rtl/crc32.o rtl/error.o rtl/heap.o rtl/largeint.o \ - rtl/math.o rtl/mem.o rtl/nls.o rtl/process.o rtl/sd.o \ - rtl/thread.o rtl/unicode.o rtl/env.o rtl/path.o rtl/ppb.o \ - rtl/bitmap.o rtl/time.o rtl/acl.o rtl/sid.o rtl/image.o \ - rtl/access.o rtl/apc.o rtl/callback.o rtl/luid.o rtl/misc.o \ - rtl/registry.o rtl/exception.o rtl/intrlck.o rtl/resource.o \ - rtl/handle.o rtl/atom.o rtl/message.o rtl/timezone.o \ - rtl/propvar.o rtl/security.o rtl/dos8dot3.o rtl/compress.o \ - rtl/encode.o rtl/random.o rtl/teb.o rtl/splaytree.o +RTL_OBJECTS = \ + rtl/access.o \ + rtl/acl.o \ + rtl/apc.o \ + rtl/atom.o \ + rtl/bitmap.o \ + rtl/callback.o \ + rtl/compress.o \ + rtl/crc32.o \ + rtl/critical.o \ + rtl/dos8dot3.o \ + rtl/error.o \ + rtl/encode.o \ + rtl/env.o \ + rtl/exception.o \ + rtl/handle.o \ + rtl/heap.o \ + rtl/image.o \ + rtl/intrlck.o \ + rtl/largeint.o \ + rtl/luid.o \ + rtl/math.o \ + rtl/mem.o \ + rtl/message.o \ + rtl/misc.o \ + rtl/nls.o \ + rtl/path.o \ + rtl/ppb.o \ + rtl/process.o \ + rtl/propvar.o \ + rtl/random.o \ + rtl/rangelist.o \ + rtl/registry.o \ + rtl/resource.o \ + rtl/sd.o \ + rtl/security.o \ + rtl/sid.o \ + rtl/splaytree.o \ + rtl/teb.o \ + rtl/thread.o \ + rtl/time.o \ + rtl/timezone.o \ + rtl/unicode.o -STDIO_OBJECTS = stdio/sprintf.o stdio/swprintf.o +STDIO_OBJECTS = \ + stdio/sprintf.o \ + stdio/sscanf.o \ + stdio/swprintf.o -STDLIB_OBJECTS = stdlib/abs.o stdlib/atoi.o stdlib/atoi64.o stdlib/atol.o \ - stdlib/itoa.o stdlib/itow.o stdlib/labs.o stdlib/splitp.o \ - stdlib/strtol.o stdlib/strtoul.o stdlib/wcstol.o \ - stdlib/wcstoul.o stdlib/wtoi.o stdlib/wtoi64.o stdlib/wtol.o \ - stdlib/mbstowcs.o stdlib/wcstombs.o +STDLIB_OBJECTS = \ + stdlib/abs.o \ + stdlib/atoi.o \ + stdlib/atoi64.o \ + stdlib/atol.o \ + stdlib/bsearch.o \ + stdlib/itoa.o \ + stdlib/itow.o \ + stdlib/labs.o \ + stdlib/lfind.o \ + stdlib/mbstowcs.o \ + stdlib/splitp.o \ + stdlib/strtol.o \ + stdlib/strtoul.o \ + stdlib/wcstol.o \ + stdlib/wcstombs.o \ + stdlib/wcstoul.o \ + stdlib/wtoi.o \ + stdlib/wtoi64.o \ + stdlib/wtol.o -STRING_OBJECTS = string/ctype.o \ - string/memicmp.o\ - string/stricmp.o \ - string/strlwr.o \ - string/strnicmp.o \ - string/strpbrk.o \ - string/strstr.o string/strupr.o string/wstring.o +STRING_OBJECTS = \ + string/ctype.o \ + string/memicmp.o \ + string/stricmp.o \ + string/strlwr.o \ + string/strnicmp.o \ + string/strpbrk.o \ + string/strstr.o \ + string/strupr.o \ + string/wstring.o ARCH_OBJECTS = \ $(RTL_I386_OBJECTS) diff --git a/reactos/lib/ntdll/rtl/bitmap.c b/reactos/lib/ntdll/rtl/bitmap.c index df2ddc61520..485a6ca17c9 100644 --- a/reactos/lib/ntdll/rtl/bitmap.c +++ b/reactos/lib/ntdll/rtl/bitmap.c @@ -1,4 +1,4 @@ -/* $Id: bitmap.c,v 1.5 2003/07/11 13:50:23 royce Exp $ +/* $Id: bitmap.c,v 1.6 2004/02/01 20:48:06 ekohl Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -265,6 +265,19 @@ RtlFindClearBitsAndSet ( } +/* + * @unimplemented + */ +ULONG STDCALL +RtlFindClearRuns (PRTL_BITMAP BitMapHeader, + PRTL_BITMAP_RUN RunArray, + ULONG SizeOfRunArray, + BOOLEAN LocateLongestRuns) +{ + return (ULONG)-1; +} + + ULONG STDCALL RtlFindFirstRunClear ( @@ -383,6 +396,18 @@ RtlFindFirstRunSet ( } +/* + * @unimplemented + */ +ULONG STDCALL +RtlFindLastBackwardRunClear (IN PRTL_BITMAP BitMapHeader, + IN ULONG FromIndex, + IN PULONG StartingRunIndex) +{ + return (ULONG)-1; +} + + /* * @implemented */ @@ -503,6 +528,18 @@ RtlFindLongestRunSet ( } +/* + * @unimplemented + */ +ULONG STDCALL +RtlFindNextForwardRunClear (IN PRTL_BITMAP BitMapHeader, + IN ULONG FromIndex, + IN PULONG StartingRunIndex) +{ + return (ULONG)-1; +} + + /* * @implemented */ diff --git a/reactos/lib/ntdll/rtl/crc32.c b/reactos/lib/ntdll/rtl/crc32.c index 6cbb8ccb6dc..6385f1f0ac7 100644 --- a/reactos/lib/ntdll/rtl/crc32.c +++ b/reactos/lib/ntdll/rtl/crc32.c @@ -8,29 +8,22 @@ * 11/15/2000: Created */ -/* This work is based off of rtl.c in Wine. +/* This work is based off of rtl.c in Wine. * Please give credit where credit is due: * - * Copyright 1996-1998 Marcus Meissner - * Copyright 1999 Alex Korobka * Copyright 2003 Thomas Mertes * Crc32 code Copyright 1986 Gary S. Brown (Public domain) */ /* INCLUDES *****************************************************************/ -#include #include #include -/* GLOBALS ******************************************************************/ - -extern ULONG NtGlobalFlag; - /* FUNCTIONS ****************************************************************/ /* CRC polynomial 0xedb88320 */ -static const DWORD CRC_table[256] = +static const ULONG CrcTable[256] = { 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, @@ -83,30 +76,34 @@ static const DWORD CRC_table[256] = * Calculate the CRC32 checksum of a block of bytes * * PARAMS - * dwInitial [I] Initial CRC value - * pData [I] Data block - * iLen [I] Length of the byte block + * Initial [I] Initial CRC value + * Data [I] Data block + * Length [I] Length of the byte block * * RETURNS - * The cumulative CRC32 of dwInitial and iLen bytes of the pData block. + * The cumulative CRC32 of Initial and Length bytes of the Data block. * * @implemented */ -DWORD STDCALL RtlComputeCrc32(DWORD dwInitial, PBYTE pData, INT iLen) +ULONG STDCALL +RtlComputeCrc32 (IN ULONG Initial, + IN PUCHAR Data, + IN ULONG Length) { - DWORD crc = ~dwInitial; + ULONG CrcValue; #ifdef DBG - DbgPrint("(%ld,%p,%d)\n", dwInitial, pData, iLen); + DbgPrint("(%lu,%p,%lu)\n", Initial, Data, Length); #endif - while (iLen > 0) + CrcValue = ~Initial; + while (Length > 0) { - crc = CRC_table[(crc ^ *pData) & 0xff] ^ (crc >> 8); - pData++; - iLen--; + CrcValue = CrcTable[(CrcValue ^ *Data) & 0xff] ^ (CrcValue >> 8); + Data++; + Length--; } - return ~crc; + return ~CrcValue; } /* EOF */ diff --git a/reactos/lib/ntdll/rtl/critical.c b/reactos/lib/ntdll/rtl/critical.c index 70b17954e04..9e4c6eef3a2 100644 --- a/reactos/lib/ntdll/rtl/critical.c +++ b/reactos/lib/ntdll/rtl/critical.c @@ -1,4 +1,4 @@ -/* $Id: critical.c,v 1.18 2004/02/01 14:05:30 gvg Exp $ +/* $Id: critical.c,v 1.19 2004/02/01 20:48:06 ekohl Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS system libraries @@ -61,27 +61,18 @@ RtlEnterCriticalSection(PCRITICAL_SECTION CriticalSection) CriticalSection->RecursionCount = 1; } + /* * @implemented */ NTSTATUS STDCALL RtlInitializeCriticalSection(PCRITICAL_SECTION CriticalSection) { - NTSTATUS Status; - - CriticalSection->LockCount = -1; - CriticalSection->RecursionCount = 0; - CriticalSection->OwningThread = (HANDLE)0; - CriticalSection->SpinCount = 0; - - Status = NtCreateSemaphore(&CriticalSection->LockSemaphore, - SEMAPHORE_ALL_ACCESS, - NULL, - 0, - 1); - return Status; + return RtlInitializeCriticalSectionAndSpinCount (CriticalSection, + 0); } + /* * @implemented */ @@ -121,7 +112,7 @@ RtlLeaveCriticalSection(PCRITICAL_SECTION CriticalSection) BOOLEAN STDCALL RtlTryEnterCriticalSection(PCRITICAL_SECTION CriticalSection) { - if (InterlockedCompareExchange((PVOID*)&CriticalSection->LockCount, + if (InterlockedCompareExchange((PVOID*)&CriticalSection->LockCount, (PVOID)0, (PVOID)-1 ) == (PVOID)-1) { CriticalSection->OwningThread = @@ -139,14 +130,24 @@ RtlTryEnterCriticalSection(PCRITICAL_SECTION CriticalSection) return FALSE; } + /* * @implemented */ NTSTATUS STDCALL -RtlInitializeCriticalSectionAndSpinCount(RTL_CRITICAL_SECTION *crit, DWORD spincount) +RtlInitializeCriticalSectionAndSpinCount (PCRITICAL_SECTION CriticalSection, + ULONG SpinCount) { - crit->SpinCount = spincount; - return RtlInitializeCriticalSection(crit); + CriticalSection->LockCount = -1; + CriticalSection->RecursionCount = 0; + CriticalSection->OwningThread = (HANDLE)0; + CriticalSection->SpinCount = SpinCount; + + return NtCreateSemaphore (&CriticalSection->LockSemaphore, + SEMAPHORE_ALL_ACCESS, + NULL, + 0, + 1); } /* EOF */ diff --git a/reactos/lib/ntdll/rtl/encode.c b/reactos/lib/ntdll/rtl/encode.c index eba2dd944c7..cc28a2e2b01 100644 --- a/reactos/lib/ntdll/rtl/encode.c +++ b/reactos/lib/ntdll/rtl/encode.c @@ -1,4 +1,4 @@ -/* $Id: encode.c,v 1.2 2003/07/30 18:35:03 royce Exp $ +/* $Id: encode.c,v 1.3 2004/02/01 20:48:06 ekohl Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -18,60 +18,63 @@ /* FUNCTIONS ***************************************************************/ -VOID -NTAPI -RtlRunDecodeUnicodeString( - IN UCHAR hash, - IN OUT PUNICODE_STRING uString - ) +VOID STDCALL +RtlRunDecodeUnicodeString (IN UCHAR Hash, + IN OUT PUNICODE_STRING String) { - UCHAR *ptr; - WORD i; - - ptr = (UCHAR *) uString->Buffer; - if (uString->Length > 1) { - for (i=uString->Length; i>1; i--) { - ptr[i-1] ^= ptr[i-2] ^ hash; - } - } - - if (uString->Length >= 1) { - ptr[0] ^= hash | (UCHAR) 0x43; - } + PUCHAR ptr; + USHORT i; + + ptr = (PUCHAR)String->Buffer; + if (String->Length > 1) + { + for (i = String->Length; i > 1; i--) + { + ptr[i - 1] ^= ptr[i - 2] ^ Hash; + } + } + + if (String->Length >= 1) + { + ptr[0] ^= Hash | (UCHAR)0x43; + } } -VOID -NTAPI -RtlRunEncodeUnicodeString( - IN OUT PUCHAR hash, - IN OUT PUNICODE_STRING uString - ) -{ - NTSTATUS ntS; - UCHAR *ptr; - TIME CurrentTime; - WORD i; - ptr = (UCHAR *) uString->Buffer; - if (*hash == 0) { - ntS = NtQuerySystemTime((PLARGE_INTEGER)&CurrentTime); - if (NT_SUCCESS(ntS)) { - for (i=1; iLength >= 1) { - ptr[0] ^= (*hash) | (UCHAR) 0x43; - if (uString->Length > 1) { - for (i=1; iLength; i++) { - ptr[i] ^= ptr[i-1] ^ (*hash); - } - } - } +VOID STDCALL +RtlRunEncodeUnicodeString (IN OUT PUCHAR Hash, + IN OUT PUNICODE_STRING String) +{ + LARGE_INTEGER CurrentTime; + PUCHAR ptr; + USHORT i; + NTSTATUS Status; + + ptr = (PUCHAR) String->Buffer; + if (*Hash == 0) + { + Status = NtQuerySystemTime (&CurrentTime); + if (NT_SUCCESS(Status)) + { + for (i = 1; i < sizeof(LARGE_INTEGER) && (*Hash == 0); i++) + *Hash |= *(PUCHAR)(((PUCHAR)&CurrentTime) + i); + } + + if (*Hash == 0) + *Hash = 1; + } + + if (String->Length >= 1) + { + ptr[0] ^= (*Hash) | (UCHAR)0x43; + if (String->Length > 1) + { + for (i = 1; i < String->Length; i++) + { + ptr[i] ^= ptr[i - 1] ^ (*Hash); + } + } + } } /* EOF */ diff --git a/reactos/lib/ntdll/rtl/nls.c b/reactos/lib/ntdll/rtl/nls.c index d7f2e0ebac0..bdc8663d87f 100644 --- a/reactos/lib/ntdll/rtl/nls.c +++ b/reactos/lib/ntdll/rtl/nls.c @@ -1,4 +1,4 @@ -/* $Id: nls.c,v 1.15 2003/09/12 17:51:48 vizzini Exp $ +/* $Id: nls.c,v 1.16 2004/02/01 20:48:06 ekohl Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -85,7 +85,7 @@ RtlCustomCPToUnicodeN(IN PCPTABLEINFO CustomCP, } -WCHAR +WCHAR STDCALL RtlDowncaseUnicodeChar (IN WCHAR Source) { USHORT Offset; diff --git a/reactos/lib/ntdll/rtl/random.c b/reactos/lib/ntdll/rtl/random.c index 98ec3a505de..ba9af81d0f3 100644 --- a/reactos/lib/ntdll/rtl/random.c +++ b/reactos/lib/ntdll/rtl/random.c @@ -16,7 +16,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -/* $Id: random.c,v 1.1 2003/06/07 11:32:03 ekohl Exp $ +/* $Id: random.c,v 1.2 2004/02/01 20:48:06 ekohl Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS system libraries @@ -24,7 +24,6 @@ * FILE: lib/ntdll/rtl/random.c */ - #define NTOS_MODE_USER #include diff --git a/reactos/lib/ntdll/rtl/rangelist.c b/reactos/lib/ntdll/rtl/rangelist.c new file mode 100644 index 00000000000..01d95f87787 --- /dev/null +++ b/reactos/lib/ntdll/rtl/rangelist.c @@ -0,0 +1,186 @@ +/* + * ReactOS kernel + * Copyright (C) 2004 ReactOS Team + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +/* $Id: rangelist.c,v 1.1 2004/02/01 20:48:06 ekohl Exp $ + * + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS system libraries + * PURPOSE: Range list implementation + * FILE: lib/ntdll/rtl/rangelist.c + */ + +/* INCLUDES ****************************************************************/ + +#include + + +/* FUNCTIONS ***************************************************************/ + +/* + * @unimplemented + */ +NTSTATUS STDCALL +RtlAddRange (IN OUT PRTL_RANGE_LIST RangeList, + IN ULONGLONG Start, + IN ULONGLONG End, + IN UCHAR Attributes, + IN ULONG Flags, + IN PVOID UserData OPTIONAL, + IN PVOID Owner OPTIONAL) +{ + return STATUS_NOT_IMPLEMENTED; +} + + +/* + * @unimplemented + */ +NTSTATUS STDCALL +RtlCopyRangeList (OUT PRTL_RANGE_LIST CopyRangeList, + IN PRTL_RANGE_LIST RangeList) +{ + return STATUS_NOT_IMPLEMENTED; +} + + +/* + * @unimplemented + */ +NTSTATUS STDCALL +RtlDeleteOwnersRanges (IN OUT PRTL_RANGE_LIST RangeList, + IN PVOID Owner) +{ + return STATUS_NOT_IMPLEMENTED; +} + + +/* + * @unimplemented + */ +NTSTATUS STDCALL +RtlDeleteRange (IN OUT PRTL_RANGE_LIST RangeList, + IN ULONGLONG Start, + IN ULONGLONG End, + IN PVOID Owner) +{ + return STATUS_NOT_IMPLEMENTED; +} + + +/* + * @unimplemented + */ +NTSTATUS STDCALL +RtlFindRange (IN PRTL_RANGE_LIST RangeList, + IN ULONGLONG Minimum, + IN ULONGLONG Maximum, + IN ULONG Length, + IN ULONG Alignment, + IN ULONG Flags, + IN UCHAR AttributeAvailableMask, + IN PVOID Context OPTIONAL, + IN PRTL_CONFLICT_RANGE_CALLBACK Callback OPTIONAL, + OUT PULONGLONG Start) +{ + return STATUS_NOT_IMPLEMENTED; +} + + +/* + * @unimplemented + */ +VOID STDCALL +RtlFreeRangeList (IN PRTL_RANGE_LIST RangeList) +{ +} + + +/* + * @unimplemented + */ +NTSTATUS STDCALL +RtlGetFirstRange (IN PRTL_RANGE_LIST RangeList, + OUT PRTL_RANGE_LIST_ITERATOR Iterator, + OUT PRTL_RANGE *Range) +{ + return STATUS_NOT_IMPLEMENTED; +} + + +/* + * @unimplemented + */ +NTSTATUS STDCALL +RtlGetNextRange (IN OUT PRTL_RANGE_LIST_ITERATOR Iterator, + OUT PRTL_RANGE *Range, + IN BOOLEAN MoveForwards) +{ + return STATUS_NOT_IMPLEMENTED; +} + + +/* + * @unimplemented + */ +VOID STDCALL +RtlInitializeRangeList (IN OUT PRTL_RANGE_LIST RangeList) +{ +} + + +/* + * @unimplemented + */ +NTSTATUS STDCALL +RtlInvertRangeList (OUT PRTL_RANGE_LIST InvertedRangeList, + IN PRTL_RANGE_LIST RangeList) +{ + return STATUS_NOT_IMPLEMENTED; +} + + +/* + * @unimplemented + */ +NTSTATUS STDCALL +RtlIsRangeAvailable (IN PRTL_RANGE_LIST RangeList, + IN ULONGLONG Start, + IN ULONGLONG End, + IN ULONG Flags, + IN UCHAR AttributeAvailableMask, + IN PVOID Context OPTIONAL, + IN PRTL_CONFLICT_RANGE_CALLBACK Callback OPTIONAL, + OUT PBOOLEAN Available) +{ + return STATUS_NOT_IMPLEMENTED; +} + + +/* + * @unimplemented + */ +NTSTATUS STDCALL +RtlMergeRangeLists (OUT PRTL_RANGE_LIST MergedRangeList, + IN PRTL_RANGE_LIST RangeList1, + IN PRTL_RANGE_LIST RangeList2, + IN ULONG Flags) +{ + return STATUS_NOT_IMPLEMENTED; +} + +/* EOF */ diff --git a/reactos/lib/ntdll/stdio/sscanf.c b/reactos/lib/ntdll/stdio/sscanf.c new file mode 100644 index 00000000000..a28d82fa845 --- /dev/null +++ b/reactos/lib/ntdll/stdio/sscanf.c @@ -0,0 +1,10 @@ +/**/ + +#include + +int sscanf(const char* szReadFrom, const char* szFormat, ...) +{ + return 0; +} + +/*EOF */ diff --git a/reactos/lib/ntdll/stdio/swprintf.c b/reactos/lib/ntdll/stdio/swprintf.c index c58ac5fe50a..1552221771b 100644 --- a/reactos/lib/ntdll/stdio/swprintf.c +++ b/reactos/lib/ntdll/stdio/swprintf.c @@ -1,4 +1,4 @@ -/* $Id: swprintf.c,v 1.16 2004/01/10 14:22:14 hbirr Exp $ +/* $Id: swprintf.c,v 1.17 2004/02/01 20:48:06 ekohl Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -243,7 +243,9 @@ stringw(wchar_t* buf, wchar_t* end, const wchar_t* sw, int len, int field_width, return buf; } - +/* + * @implemented + */ int _vsnwprintf(wchar_t *buf, size_t cnt, const wchar_t *fmt, va_list args) { int len; diff --git a/reactos/lib/ntdll/stdlib/bsearch.c b/reactos/lib/ntdll/stdlib/bsearch.c new file mode 100644 index 00000000000..7efbdbd9897 --- /dev/null +++ b/reactos/lib/ntdll/stdlib/bsearch.c @@ -0,0 +1,28 @@ +/* Copyright (C) 1994 DJ Delorie, see COPYING.DJ for details */ +#include + +/* + * @implemented + */ +void * +bsearch(const void *key, const void *base0, size_t nelem, + size_t size, int (*cmp)(const void *ck, const void *ce)) +{ + char *base = (char *)base0; + int lim, cmpval; + void *p; + + for (lim = nelem; lim != 0; lim >>= 1) + { + p = base + (lim >> 1) * size; + cmpval = (*cmp)(key, p); + if (cmpval == 0) + return p; + if (cmpval > 0) + { /* key > p: move right */ + base = (char *)p + size; + lim--; + } /* else move left */ + } + return 0; +} diff --git a/reactos/lib/ntdll/stdlib/itoa.c b/reactos/lib/ntdll/stdlib/itoa.c index 0e5a5c3105e..5333bf7f259 100644 --- a/reactos/lib/ntdll/stdlib/itoa.c +++ b/reactos/lib/ntdll/stdlib/itoa.c @@ -61,13 +61,49 @@ _i64toa(__int64 value, char *string, int radix) } +/* + * @implemented + */ +char * +_ui64toa(unsigned __int64 value, char *string, int radix) +{ + char tmp[65]; + char *tp = tmp; + __int64 i; + unsigned __int64 v; + char *sp; + + if (radix > 36 || radix <= 1) + { + return 0; + } + + v = (unsigned __int64)value; + while (v || tp == tmp) + { + i = v % radix; + v = v / radix; + if (i < 10) + *tp++ = i+'0'; + else + *tp++ = i + 'a' - 10; + } + + sp = string; + while (tp > tmp) + *sp++ = *--tp; + *sp = 0; + return string; +} + + /* * @implemented */ char * _itoa(int value, char *string, int radix) { - return _ltoa(value, string, radix); + return _ltoa(value, string, radix); } diff --git a/reactos/lib/ntdll/stdlib/itow.c b/reactos/lib/ntdll/stdlib/itow.c index f52509c842f..6e598794d71 100644 --- a/reactos/lib/ntdll/stdlib/itow.c +++ b/reactos/lib/ntdll/stdlib/itow.c @@ -54,6 +54,42 @@ _i64tow(__int64 value, wchar_t *string, int radix) } +/* + * @implemented + */ +wchar_t * +_ui64tow(unsigned __int64 value, wchar_t *string, int radix) +{ + wchar_t tmp[65]; + wchar_t *tp = tmp; + __int64 i; + unsigned __int64 v; + wchar_t *sp; + + if (radix > 36 || radix <= 1) + { + return 0; + } + + v = (unsigned __int64)value; + while (v || tp == tmp) + { + i = v % radix; + v = v / radix; + if (i < 10) + *tp++ = i+L'0'; + else + *tp++ = i + L'a' - 10; + } + + sp = string; + while (tp > tmp) + *sp++ = *--tp; + *sp = 0; + return string; +} + + /* * @implemented */ diff --git a/reactos/lib/ntdll/stdlib/lfind.c b/reactos/lib/ntdll/stdlib/lfind.c new file mode 100644 index 00000000000..2000fecaffa --- /dev/null +++ b/reactos/lib/ntdll/stdlib/lfind.c @@ -0,0 +1,23 @@ +#include +#include + + +/* + * @implemented + */ +void *_lfind(const void *key, const void *base, size_t *nelp, + size_t width, int (*compar)(const void *, const void *)) +{ + char* char_base = (char*)base; + int i; + + for (i = 0; i < *nelp; i++) + { + if (compar(key, char_base) == 0) + return char_base; + + char_base += width; + } + + return NULL; +} diff --git a/reactos/lib/ntdll/string/ctype.c b/reactos/lib/ntdll/string/ctype.c index 374d785dc12..9651be1c473 100644 --- a/reactos/lib/ntdll/string/ctype.c +++ b/reactos/lib/ntdll/string/ctype.c @@ -1,4 +1,4 @@ -/* $Id: ctype.c,v 1.13 2003/07/11 13:50:23 royce Exp $ +/* $Id: ctype.c,v 1.14 2004/02/01 20:48:06 ekohl Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -415,21 +415,33 @@ int iswalpha(wint_t c) return (iswctype (c, _ALPHA)); } +/* + * @implemented + */ int iswdigit(wint_t c) { return (iswctype (c, _DIGIT)); } -int iswspace(wint_t c) -{ - return (iswctype (c, _SPACE)); -} - +/* + * @implemented + */ int iswlower(wint_t c) { return (iswctype (c, _LOWER)); } +/* + * @implemented + */ +int iswspace(wint_t c) +{ + return (iswctype (c, _SPACE)); +} + +/* + * @implemented + */ int iswxdigit(wint_t c) { return (iswctype (c, _HEX)); diff --git a/reactos/lib/ntdll/stubs/stubs.c b/reactos/lib/ntdll/stubs/stubs.c index d30765abf7c..2732d502766 100644 --- a/reactos/lib/ntdll/stubs/stubs.c +++ b/reactos/lib/ntdll/stubs/stubs.c @@ -1,6 +1,7 @@ #include #include #include +#include /* * @unimplemented @@ -132,10 +133,7 @@ NTSTATUS STDCALL RtlpWaitForCriticalSection(RTL_CRITICAL_SECTION *crit) { return(FALSE); } -int sscanf(const char* szReadFrom, const char* szFormat, ...) -{ - return(FALSE); -} + /* * @unimplemented @@ -198,14 +196,6 @@ RtlCaptureContext ( { } -/* - * @unimplemented - */ -WCHAR STDCALL RtlDowncaseUnicodeChar(WCHAR wch) -{ - return(FALSE); -} - /* * @unimplemented */ @@ -229,11 +219,13 @@ NTSTATUS STDCALL RtlFindCharInUnicodeString( return(FALSE); } + + /* * @unimplemented */ -ULONG STDCALL RtlFindClearRuns(PCRTL_BITMAP lpBits, PRTL_BITMAP_RUN lpSeries, - ULONG ulCount, BOOLEAN bLongest) +CCHAR STDCALL +RtlFindLeastSignificantBit (ULONGLONG ulLong) { return(FALSE); } @@ -241,39 +233,18 @@ ULONG STDCALL RtlFindClearRuns(PCRTL_BITMAP lpBits, PRTL_BITMAP_RUN lpSeries /* * @unimplemented */ -ULONG STDCALL RtlFindLastBackwardRunClear(PCRTL_BITMAP lpBits, ULONG ulStart, PULONG lpPos) +CCHAR STDCALL +RtlFindMostSignificantBit (ULONGLONG ulLong) { return(FALSE); } -/* - * @unimplemented - */ -CCHAR STDCALL RtlFindLeastSignificantBit(ULONGLONG ulLong) -{ - return(FALSE); -} /* * @unimplemented */ -CCHAR STDCALL RtlFindMostSignificantBit(ULONGLONG ulLong) -{ - return(FALSE); -} - -/* - * @unimplemented - */ -ULONG STDCALL RtlFindNextForwardRunClear(PCRTL_BITMAP lpBits, ULONG ulStart, PULONG lpPos) -{ - return(FALSE); -} - -/* - * @unimplemented - */ -NTSTATUS STDCALL RtlInitUnicodeStringEx(PUNICODE_STRING target,PCWSTR source) +NTSTATUS STDCALL +RtlInitUnicodeStringEx(PUNICODE_STRING target,PCWSTR source) { return(FALSE); } @@ -316,44 +287,6 @@ double __cdecl _CIpow(double x,double y) return(FALSE); } -/* - * @unimplemented - */ -void *_lfind(const void* match, const void* start,unsigned int* array_size, unsigned int elem_size,int (*cf)(const void*,const void*)) -{ - return(FALSE); -} - -/* - * @unimplemented - */ -LPSTR __cdecl _ui64toa( - ULONGLONG value, - LPSTR str, - INT radix) -{ - return(FALSE); -} - -/* - * @unimplemented - */ -LPWSTR __cdecl _ui64tow( - ULONGLONG value, - LPWSTR str, - INT radix) -{ - return(FALSE); -} - -/* - * @unimplemented - */ -void* bsearch(const void* pKey, const void* pBase, size_t cntObjects, size_t sizeObject, _pfunccmp_t pfuncCmp) -{ - return(FALSE); -} - /* * @unimplemented */ @@ -533,7 +466,7 @@ NtLockRegistryKey( NTSTATUS STDCALL NtNotifyChangeMultipleKeys( - IN HANDLE MasterKeyHandle, + IN HANDLE MasterKeyHandle, IN ULONG Count, IN OBJECT_ATTRIBUTES SlaveObjects[], IN HANDLE Event OPTIONAL, @@ -654,96 +587,6 @@ NtUnloadKeyEx( return(FALSE); } -/* - * @unimplemented - */ -NTSTATUS -STDCALL -RtlAddRange( - IN OUT PRTL_RANGE_LIST RangeList, - IN ULONGLONG Start, - IN ULONGLONG End, - IN UCHAR Attributes, - IN ULONG Flags, - IN PVOID UserData, OPTIONAL - IN PVOID Owner OPTIONAL - ) -{ - return(FALSE); -} - -/* - * @unimplemented - */ -NTSTATUS -STDCALL -RtlCopyRangeList( - OUT PRTL_RANGE_LIST CopyRangeList, - IN PRTL_RANGE_LIST RangeList - ) -{ - return(FALSE); -} - -/* - * @unimplemented - */ -NTSTATUS -STDCALL -RtlDeleteOwnersRanges( - IN OUT PRTL_RANGE_LIST RangeList, - IN PVOID Owner - ) -{ - return(FALSE); -} - -/* - * @unimplemented - */ -NTSTATUS -STDCALL -RtlDeleteRange( - IN OUT PRTL_RANGE_LIST RangeList, - IN ULONGLONG Start, - IN ULONGLONG End, - IN PVOID Owner - ) -{ - return(FALSE); -} - -/* - * @unimplemented - */ -NTSTATUS -STDCALL -RtlFindRange( - IN PRTL_RANGE_LIST RangeList, - IN ULONGLONG Minimum, - IN ULONGLONG Maximum, - IN ULONG Length, - IN ULONG Alignment, - IN ULONG Flags, - IN UCHAR AttributeAvailableMask, - IN PVOID Context OPTIONAL, - IN PRTL_CONFLICT_RANGE_CALLBACK Callback OPTIONAL, - OUT PULONGLONG Start - ) -{ - return(FALSE); -} - -/* - * @unimplemented - */ -VOID -STDCALL -RtlFreeRangeList( - IN PRTL_RANGE_LIST RangeList - ) -{ -} /* * @unimplemented @@ -758,33 +601,6 @@ RtlGUIDFromString( return(FALSE); } -/* - * @unimplemented - */ -NTSTATUS -STDCALL -RtlGetFirstRange( - IN PRTL_RANGE_LIST RangeList, - OUT PRTL_RANGE_LIST_ITERATOR Iterator, - OUT PRTL_RANGE *Range - ) -{ - return(FALSE); -} - -/* - * @unimplemented - */ -NTSTATUS -STDCALL -RtlGetNextRange( - IN OUT PRTL_RANGE_LIST_ITERATOR Iterator, - OUT PRTL_RANGE *Range, - IN BOOL MoveForwards - ) -{ - return(FALSE); -} /* * @unimplemented @@ -813,63 +629,6 @@ RtlHashUnicodeString( return(FALSE); } -/* - * @unimplemented - */ -VOID -STDCALL -RtlInitializeRangeList( - IN OUT PRTL_RANGE_LIST RangeList - ) -{ -} - -/* - * @unimplemented - */ -NTSTATUS -STDCALL -RtlInvertRangeList( - OUT PRTL_RANGE_LIST InvertedRangeList, - IN PRTL_RANGE_LIST RangeList - ) -{ - return(FALSE); -} - -/* - * @unimplemented - */ -NTSTATUS -STDCALL -RtlIsRangeAvailable( - IN PRTL_RANGE_LIST RangeList, - IN ULONGLONG Start, - IN ULONGLONG End, - IN ULONG Flags, - IN UCHAR AttributeAvailableMask, - IN PVOID Context OPTIONAL, - IN PRTL_CONFLICT_RANGE_CALLBACK Callback OPTIONAL, - OUT PBOOL Available - ) -{ - return(FALSE); -} - -/* - * @unimplemented - */ -NTSTATUS -STDCALL -RtlMergeRangeLists( - OUT PRTL_RANGE_LIST MergedRangeList, - IN PRTL_RANGE_LIST RangeList1, - IN PRTL_RANGE_LIST RangeList2, - IN ULONG Flags - ) -{ - return(FALSE); -} /* * @unimplemented