From 9efff39376647ec36d209f136fa1d5a3024edbb0 Mon Sep 17 00:00:00 2001 From: Alex Ionescu Date: Fri, 2 Mar 2007 16:26:45 +0000 Subject: [PATCH] - Fix multiple WDK compatibilities issues. - Fix MSVC warnings and incompatibilities. svn path=/trunk/; revision=25947 --- reactos/include/ddk/winddk.h | 14 ------ reactos/include/ndk/iotypes.h | 5 ++ reactos/include/ndk/mmfuncs.h | 13 ++++++ reactos/include/ndk/pstypes.h | 19 ++++++-- reactos/include/psdk/winnt.h | 8 ++-- reactos/ntoskrnl/fsrtl/fastio.c | 9 ---- .../ntoskrnl/include/internal/i386/intrin_i.h | 46 +++++++++++++++++-- reactos/ntoskrnl/include/ntoskrnl.h | 1 + reactos/ntoskrnl/ke/i386/cpu.c | 14 +++--- reactos/ntoskrnl/ke/i386/kiinit.c | 2 +- 10 files changed, 87 insertions(+), 44 deletions(-) diff --git a/reactos/include/ddk/winddk.h b/reactos/include/ddk/winddk.h index ec71e5be479..60ea62459a9 100644 --- a/reactos/include/ddk/winddk.h +++ b/reactos/include/ddk/winddk.h @@ -3429,7 +3429,6 @@ typedef struct _IO_COMPLETION_CONTEXT { #define FO_RANDOM_ACCESS 0x00100000 #define FO_FILE_OPEN_CANCELLED 0x00200000 #define FO_VOLUME_OPEN 0x00400000 -#define FO_FILE_OBJECT_HAS_EXTENSION 0x00800000 #define FO_REMOTE_ORIGIN 0x01000000 typedef struct _FILE_OBJECT @@ -9281,19 +9280,6 @@ NTAPI MmBuildMdlForNonPagedPool( IN OUT PMDL MemoryDescriptorList); -NTKERNELAPI -NTSTATUS -NTAPI -MmCreateSection( - OUT PVOID *SectionObject, - IN ACCESS_MASK DesiredAccess, - IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, - IN PLARGE_INTEGER MaximumSize, - IN ULONG SectionPageProtection, - IN ULONG AllocationAttributes, - IN HANDLE FileHandle OPTIONAL, - IN PFILE_OBJECT File OPTIONAL); - typedef enum _MMFLUSH_TYPE { MmFlushForDelete, MmFlushForWrite diff --git a/reactos/include/ndk/iotypes.h b/reactos/include/ndk/iotypes.h index 5217162f463..da2a05ff151 100644 --- a/reactos/include/ndk/iotypes.h +++ b/reactos/include/ndk/iotypes.h @@ -124,6 +124,11 @@ extern POBJECT_TYPE NTSYSAPI IoDriverObjectType; #define FILE_REMOVABLE_MEDIA 0x00000001 #define FILE_REMOTE_DEVICE 0x00000010 +// +// File Object Flags +// +#define FO_FILE_OBJECT_HAS_EXTENSION 0x00800000 + // // Device Object Extension Flags // diff --git a/reactos/include/ndk/mmfuncs.h b/reactos/include/ndk/mmfuncs.h index c0b13277873..5c2a98c40e0 100644 --- a/reactos/include/ndk/mmfuncs.h +++ b/reactos/include/ndk/mmfuncs.h @@ -29,6 +29,19 @@ Author: // // Section Functions // +NTSTATUS +NTAPI +MmCreateSection( + OUT PVOID *SectionObject, + IN ACCESS_MASK DesiredAccess, + IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, + IN PLARGE_INTEGER MaximumSize, + IN ULONG SectionPageProtection, + IN ULONG AllocationAttributes, + IN HANDLE FileHandle OPTIONAL, + IN PFILE_OBJECT File OPTIONAL +); + NTSTATUS NTAPI MmMapViewOfSection( diff --git a/reactos/include/ndk/pstypes.h b/reactos/include/ndk/pstypes.h index e500bf49955..70476bfcd57 100644 --- a/reactos/include/ndk/pstypes.h +++ b/reactos/include/ndk/pstypes.h @@ -114,11 +114,6 @@ Author: #define PSP_VARIABLE_QUANTUMS 4 #define PSP_LONG_QUANTUMS 16 -// -// Number of TLS expansion slots -// -#define TLS_EXPANSION_SLOTS 64 - #ifndef NTOS_MODE_USER // @@ -152,6 +147,20 @@ Author: #define PROCESS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | \ SYNCHRONIZE | \ 0xFFF) + +// +// Thread Base Priorities +// +#define THREAD_BASE_PRIORITY_LOWRT 15 +#define THREAD_BASE_PRIORITY_MAX 2 +#define THREAD_BASE_PRIORITY_MIN -2 +#define THREAD_BASE_PRIORITY_IDLE -15 + +// +// TLS Slots +// +#define TLS_MINIMUM_AVAILABLE 64 +#define TLS_EXPANSION_SLOTS 1024 #endif // diff --git a/reactos/include/psdk/winnt.h b/reactos/include/psdk/winnt.h index ca07265a98f..de01e2d4a47 100644 --- a/reactos/include/psdk/winnt.h +++ b/reactos/include/psdk/winnt.h @@ -468,10 +468,6 @@ typedef DWORD FLONG; #define THREAD_DIRECT_IMPERSONATION 0x200 #endif #define THREAD_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3FF) -#define THREAD_BASE_PRIORITY_LOWRT 15 -#define THREAD_BASE_PRIORITY_MAX 2 -#define THREAD_BASE_PRIORITY_MIN (-2) -#define THREAD_BASE_PRIORITY_IDLE (-15) #define EXCEPTION_NONCONTINUABLE 1 #define EXCEPTION_MAXIMUM_PARAMETERS 15 /* FIXME: Oh how I wish, I wish the w32api DDK wouldn't include winnt.h... */ @@ -481,6 +477,10 @@ typedef DWORD FLONG; #define TIMER_QUERY_STATE 0x0001 #define TIMER_MODIFY_STATE 0x0002 #define TIMER_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|TIMER_QUERY_STATE|TIMER_MODIFY_STATE) +#define THREAD_BASE_PRIORITY_LOWRT 15 +#define THREAD_BASE_PRIORITY_MAX 2 +#define THREAD_BASE_PRIORITY_MIN (-2) +#define THREAD_BASE_PRIORITY_IDLE (-15) #endif /* * To prevent gcc compiler warnings, bracket these defines when initialising diff --git a/reactos/ntoskrnl/fsrtl/fastio.c b/reactos/ntoskrnl/fsrtl/fastio.c index b4c3168bb1a..cc8bb6a9adb 100644 --- a/reactos/ntoskrnl/fsrtl/fastio.c +++ b/reactos/ntoskrnl/fsrtl/fastio.c @@ -8,18 +8,9 @@ /* INCLUDES ******************************************************************/ -#ifdef _WINDOWS_TESTING -#include -#include "ntndk.h" -#include "fsrtl_glue.h" -#else #include #define NDEBUG #include -#include -#include -#endif /* _WINDOWS_TESTING */ - /* PUBLIC FUNCTIONS **********************************************************/ diff --git a/reactos/ntoskrnl/include/internal/i386/intrin_i.h b/reactos/ntoskrnl/include/internal/i386/intrin_i.h index 15c78d82c7f..9ddb0f48f4a 100644 --- a/reactos/ntoskrnl/include/internal/i386/intrin_i.h +++ b/reactos/ntoskrnl/include/internal/i386/intrin_i.h @@ -114,6 +114,44 @@ static inline void Ki386Cpuid(ULONG Op, PULONG Eax, PULONG Ebx, PULONG Ecx, PULO #elif defined(_MSC_VER) +VOID +FORCEINLINE +Ke386Wrmsr(IN ULONG Register, + IN ULONG Var1, + IN ULONG Var2) +{ + __asm mov eax, Var1; + __asm mov edx, Var2; + __asm wrmsr; +} + +ULONGLONG +FORCEINLINE +Ke386Rdmsr(IN ULONG Register, + IN ULONG Var1, + IN ULONG Var2) +{ + __asm mov eax, Var1; + __asm mov edx, Var2; + __asm rdmsr; +} + +VOID +FORCEINLINE +Ki386Cpuid(IN ULONG Operation, + OUT PULONG Var1, + OUT PULONG Var2, + OUT PULONG Var3, + OUT PULONG Var4) +{ + __asm mov eax, Operation; + __asm cpuid; + __asm mov [Var1], eax; + __asm mov [Var2], ebx; + __asm mov [Var3], ecx; + __asm mov [Var4], edx; +} + VOID FORCEINLINE Ke386FnInit(VOID) @@ -130,28 +168,28 @@ Ke386HaltProcessor(VOID) VOID FORCEINLINE -Ke386GetInterruptDescriptorTable(OUT KDESCRIPTOR Descriptor) +Ke386GetInterruptDescriptorTable(OUT USHORT Descriptor) { __asm sidt Descriptor; } VOID FORCEINLINE -Ke386SetInterruptDescriptorTable(IN KDESCRIPTOR Descriptor) +Ke386SetInterruptDescriptorTable(IN USHORT Descriptor) { __asm lidt Descriptor; } VOID FORCEINLINE -Ke386GetGlobalDescriptorTable(OUT KDESCRIPTOR Descriptor) +Ke386GetGlobalDescriptorTable(OUT USHORT Descriptor) { __asm sgdt Descriptor; } VOID FORCEINLINE -Ke386SetGlobalDescriptorTable(IN KDESCRIPTOR Descriptor) +Ke386SetGlobalDescriptorTable(IN USHORT Descriptor) { __asm lgdt Descriptor; } diff --git a/reactos/ntoskrnl/include/ntoskrnl.h b/reactos/ntoskrnl/include/ntoskrnl.h index ba53306a22d..d38075640df 100644 --- a/reactos/ntoskrnl/include/ntoskrnl.h +++ b/reactos/ntoskrnl/include/ntoskrnl.h @@ -36,6 +36,7 @@ #include /* C Headers */ +#include #include #include #include diff --git a/reactos/ntoskrnl/ke/i386/cpu.c b/reactos/ntoskrnl/ke/i386/cpu.c index afcf67380c4..979b02b8631 100644 --- a/reactos/ntoskrnl/ke/i386/cpu.c +++ b/reactos/ntoskrnl/ke/i386/cpu.c @@ -108,7 +108,7 @@ WRMSR(IN ULONG Register, LONGLONG RDMSR(IN ULONG Register) { - LARGE_INTEGER LargeVal; + LARGE_INTEGER LargeVal = {{0}}; Ke386Rdmsr(Register, LargeVal.HighPart, LargeVal.LowPart); return LargeVal.QuadPart; } @@ -119,7 +119,7 @@ VOID NTAPI KiSetProcessorType(VOID) { - ULONG EFlags, NewEFlags; + ULONG EFlags = 0, NewEFlags; ULONG Reg[4]; ULONG Stepping, Type; @@ -671,7 +671,7 @@ NTAPI KeFlushCurrentTb(VOID) { /* Flush the TLB by resetting CR3 */ - __writecr3((ULONGLONG)__readcr3()); + __writecr3(__readcr3()); } VOID @@ -744,10 +744,10 @@ KiLoadFastSyscallMachineSpecificRegisters(IN ULONG_PTR Context) { /* Set CS and ESP */ Ke386Wrmsr(0x174, KGDT_R0_CODE, 0); - Ke386Wrmsr(0x175, KeGetCurrentPrcb()->DpcStack, 0); + Ke386Wrmsr(0x175, (ULONG)KeGetCurrentPrcb()->DpcStack, 0); /* Set LSTAR */ - Ke386Wrmsr(0x176, KiFastCallEntry, 0); + Ke386Wrmsr(0x176, (ULONG)KiFastCallEntry, 0); return 0; } @@ -811,7 +811,7 @@ VOID NTAPI KiI386PentiumLockErrataFixup(VOID) { - KDESCRIPTOR IdtDescriptor; + KDESCRIPTOR IdtDescriptor = {0}; PKIDTENTRY NewIdt, NewIdt2; /* Allocate memory for a new IDT */ @@ -846,7 +846,7 @@ NTAPI KeFreezeExecution(IN PKTRAP_FRAME TrapFrame, IN PKEXCEPTION_FRAME ExceptionFrame) { - ULONG Flags; + ULONG Flags = 0; /* Disable interrupts and get previous state */ Ke386SaveFlags(Flags); diff --git a/reactos/ntoskrnl/ke/i386/kiinit.c b/reactos/ntoskrnl/ke/i386/kiinit.c index f192c5e9dcc..f147ed79bd6 100644 --- a/reactos/ntoskrnl/ke/i386/kiinit.c +++ b/reactos/ntoskrnl/ke/i386/kiinit.c @@ -606,7 +606,7 @@ KiGetMachineBootPointers(IN PKGDTENTRY *Gdt, IN PKIPCR *Pcr, IN PKTSS *Tss) { - KDESCRIPTOR GdtDescriptor, IdtDescriptor; + KDESCRIPTOR GdtDescriptor = {0}, IdtDescriptor; KGDTENTRY TssSelector, PcrSelector; USHORT Tr, Fs;