From 66711d63449b037f81d07f0a331e8b2d7bdeeec3 Mon Sep 17 00:00:00 2001 From: Alex Ionescu Date: Tue, 6 Sep 2005 05:30:39 +0000 Subject: [PATCH] - Some more MSDDK/IFS compatibility fixes. svn path=/trunk/; revision=17687 --- reactos/include/ndk/rtltypes.h | 11 +++++++++-- reactos/include/ndk/umtypes.h | 5 +++++ reactos/include/ndk/zwfuncs.h | 13 ++++++++++--- reactos/lib/kernel32/misc/utils.c | 9 +++++++++ reactos/lib/rtl/largeint.c | 1 + reactos/w32api/include/ddk/ntifs.h | 21 +++++++++++++++++---- reactos/w32api/include/ddk/winddk.h | 10 ++++++++++ reactos/w32api/include/ntdef.h | 5 +++++ 8 files changed, 66 insertions(+), 9 deletions(-) diff --git a/reactos/include/ndk/rtltypes.h b/reactos/include/ndk/rtltypes.h index c327fde2a87..d40195be549 100644 --- a/reactos/include/ndk/rtltypes.h +++ b/reactos/include/ndk/rtltypes.h @@ -12,8 +12,6 @@ /* DEPENDENCIES **************************************************************/ #include "excpt.h" -/* EXPORTED DATA *************************************************************/ - /* CONSTANTS *****************************************************************/ #define MAXIMUM_LEADBYTES 12 @@ -104,6 +102,11 @@ #define RTL_DUPLICATE_UNICODE_STRING_NULL_TERMINATE 1 #define RTL_DUPLICATE_UNICODE_STRING_ALLOCATE_NULL_STRING 2 +/* For Size conversion macros */ +#define NLS_MB_CODE_PAGE_TAG NlsMbCodePageTag +#define NLS_MB_OEM_CODE_PAGE_TAG NlsMbOemCodePageTag +#define NLS_OEM_LEAD_BYTE_INFO NlsOemLeadByteInfo + /* List Macros */ static __inline VOID @@ -236,6 +239,10 @@ RemoveTailList( /* RTL Atom Flags */ #define RTL_ATOM_IS_PINNED 0x1 +/* EXPORTED DATA *************************************************************/ +extern BOOLEAN NTSYSAPI NLS_MB_CODE_PAGE_TAG; +extern BOOLEAN NTSYSAPI NLS_MB_OEM_CODE_PAGE_TAG; + /* ENUMERATIONS **************************************************************/ #ifdef NTOS_MODE_USER diff --git a/reactos/include/ndk/umtypes.h b/reactos/include/ndk/umtypes.h index f1949131f9d..59f8de1b311 100644 --- a/reactos/include/ndk/umtypes.h +++ b/reactos/include/ndk/umtypes.h @@ -79,6 +79,11 @@ #define NTSYSCALLAPI DECLSPEC_ADDRSAFE #endif #endif +#if !defined(_M_CEE_PURE) +#define NTAPI_INLINE NTAPI +#else +#define NTAPI_INLINE +#endif /* Native API Return Value Macros */ #define NT_SUCCESS(x) ((x)>=0) diff --git a/reactos/include/ndk/zwfuncs.h b/reactos/include/ndk/zwfuncs.h index 2ceef72d1fb..ba663948019 100644 --- a/reactos/include/ndk/zwfuncs.h +++ b/reactos/include/ndk/zwfuncs.h @@ -806,6 +806,7 @@ NtCreateTimer( IN TIMER_TYPE TimerType ); +#ifdef NTOS_MODE_USER NTSTATUS NTAPI ZwCreateTimer( @@ -814,6 +815,7 @@ ZwCreateTimer( IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN TIMER_TYPE TimerType ); +#endif NTSTATUS NTAPI @@ -1147,6 +1149,7 @@ NtFlushBuffersFile( OUT PIO_STATUS_BLOCK IoStatusBlock ); +#ifdef NTOS_MODE_USER NTSYSAPI NTSTATUS NTAPI @@ -1154,6 +1157,7 @@ ZwFlushBuffersFile( IN HANDLE FileHandle, OUT PIO_STATUS_BLOCK IoStatusBlock ); +#endif NTSTATUS NTAPI @@ -1922,7 +1926,7 @@ NtOpenTimer( IN POBJECT_ATTRIBUTES ObjectAttributes ); -NTSYSAPI +#ifdef NTOS_MODE_USER NTSTATUS NTAPI ZwOpenTimer( @@ -1930,6 +1934,7 @@ ZwOpenTimer( IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes ); +#endif NTSTATUS NTAPI @@ -2195,7 +2200,7 @@ NtQueryEaFile( IN BOOLEAN RestartScan ); -NTSYSAPI +#ifdef NTOS_MODE_USER NTSTATUS NTAPI ZwQueryEaFile( @@ -2209,6 +2214,7 @@ ZwQueryEaFile( IN PULONG EaIndex OPTIONAL, IN BOOLEAN RestartScan ); +#endif NTSTATUS NTAPI @@ -3275,7 +3281,7 @@ NtSetEaFile( ULONG EaBufferSize ); -NTSYSAPI +#ifdef NTOS_MODE_USER NTSTATUS NTAPI ZwSetEaFile( @@ -3284,6 +3290,7 @@ ZwSetEaFile( PVOID EaBuffer, ULONG EaBufferSize ); +#endif NTSTATUS NTAPI diff --git a/reactos/lib/kernel32/misc/utils.c b/reactos/lib/kernel32/misc/utils.c index 5a7afb577d4..01c8bfde94e 100644 --- a/reactos/lib/kernel32/misc/utils.c +++ b/reactos/lib/kernel32/misc/utils.c @@ -15,6 +15,15 @@ /* GLOBALS ******************************************************************/ +/* GCC s^H can't handle static initializers to APIs, so we have to hack this */ +NTSTATUS +NTAPI +RtlAnsiStringToUnicodeString( + PUNICODE_STRING DestinationString, + PCANSI_STRING SourceString, + BOOLEAN AllocateDestinationString +); + PRTL_CONVERT_STRING Basep8BitStringToUnicodeString = RtlAnsiStringToUnicodeString; /* FUNCTIONS ****************************************************************/ diff --git a/reactos/lib/rtl/largeint.c b/reactos/lib/rtl/largeint.c index f784296cd2f..f8c38e8f801 100644 --- a/reactos/lib/rtl/largeint.c +++ b/reactos/lib/rtl/largeint.c @@ -11,6 +11,7 @@ /* INCLUDES *****************************************************************/ +#define NO_RTL_INLINES #include #define NDEBUG diff --git a/reactos/w32api/include/ddk/ntifs.h b/reactos/w32api/include/ddk/ntifs.h index 608502dd366..71b1ba6eb83 100644 --- a/reactos/w32api/include/ddk/ntifs.h +++ b/reactos/w32api/include/ddk/ntifs.h @@ -2540,12 +2540,8 @@ FsRtlIsNtstatusExpected ( IN NTSTATUS Ntstatus ); -#define NLS_MB_CODE_PAGE_TAG NlsMbCodePageTag -#define NLS_MB_OEM_CODE_PAGE_TAG NlsMbOemCodePageTag #define NLS_OEM_LEAD_BYTE_INFO NlsOemLeadByteInfo -extern BOOLEAN NlsMbCodePageTag; -extern BOOLEAN NlsMbOemCodePageTag; extern PUSHORT NlsOemLeadByteInfo; #define FsRtlIsLeadDbcsCharacter(DBCS_CHAR) ( \ @@ -3696,6 +3692,15 @@ RtlDescribeChunk ( OUT PULONG ChunkSize ); +NTSYSAPI +NTSTATUS +NTAPI +RtlDowncaseUnicodeString( + IN OUT PUNICODE_STRING UniDest, + IN PCUNICODE_STRING UniSource, + IN BOOLEAN AllocateDestinationString +); + NTSYSAPI BOOLEAN NTAPI @@ -4346,6 +4351,14 @@ ZwFlushInstructionCache ( IN ULONG FlushSize ); +NTSYSAPI +NTSTATUS +NTAPI +ZwFlushBuffersFile( + IN HANDLE FileHandle, + OUT PIO_STATUS_BLOCK IoStatusBlock +); + #if (VER_PRODUCTBUILD >= 2195) NTSYSAPI diff --git a/reactos/w32api/include/ddk/winddk.h b/reactos/w32api/include/ddk/winddk.h index 3c67f4c1980..95711aa9ec8 100644 --- a/reactos/w32api/include/ddk/winddk.h +++ b/reactos/w32api/include/ddk/winddk.h @@ -4945,6 +4945,16 @@ RtlAssert( #endif /* DBG */ +#ifdef _NTSYSTEM_ +#define NLS_MB_CODE_PAGE_TAG NlsMbCodePageTag +#define NLS_MB_OEM_CODE_PAGE_TAG NlsMbOemCodePageTag +#else +#define NLS_MB_CODE_PAGE_TAG (*NlsMbCodePageTag) +#define NLS_MB_OEM_CODE_PAGE_TAG (*NlsMbOemCodePageTag) +#endif /* _NT_SYSTEM */ + +extern BOOLEAN NTSYSAPI NLS_MB_CODE_PAGE_TAG; +extern BOOLEAN NTSYSAPI NLS_MB_OEM_CODE_PAGE_TAG; /* ** Driver support routines diff --git a/reactos/w32api/include/ntdef.h b/reactos/w32api/include/ntdef.h index 404b035a7e0..0b1112c0de3 100644 --- a/reactos/w32api/include/ntdef.h +++ b/reactos/w32api/include/ntdef.h @@ -8,6 +8,11 @@ #define RESTRICTED_POINTER #define NTAPI __stdcall +#if !defined(_M_CEE_PURE) +#define NTAPI_INLINE NTAPI +#else +#define NTAPI_INLINE +#endif #define OBJ_INHERIT 0x00000002 #define OBJ_PERMANENT 0x00000010