Author: akhaldi Date: Wed Mar 3 17:03:14 2010 New Revision: 45789
URL: http://svn.reactos.org/svn/reactos?rev=45789&view=rev Log: - Move ntdef.h from ddk to psdk - Move EVENT_TYPE to ntdef.h - Introduce pragma once to wdm.h - Fix FAST_MUTEX - FastMutex->Gate => FastMutex->Event - Improve KeInitializeEvent - Improve InitializeSListHead
Added: branches/header-work/include/psdk/ntdef.h - copied, changed from r45734, branches/header-work/include/ddk/ntdef.h Removed: branches/header-work/include/ddk/ntdef.h Modified: branches/header-work/hal/halppc/generic/fmutex.c branches/header-work/include/ddk/wdm.h branches/header-work/include/ddk/winddk.h branches/header-work/include/psdk/winbase.h branches/header-work/ntoskrnl/include/internal/ex.h branches/header-work/ntoskrnl/ke/eventobj.c branches/header-work/ntoskrnl/ke/wait.c
Modified: branches/header-work/hal/halppc/generic/fmutex.c URL: http://svn.reactos.org/svn/reactos/branches/header-work/hal/halppc/generic/f... ============================================================================== --- branches/header-work/hal/halppc/generic/fmutex.c [iso-8859-1] (original) +++ branches/header-work/hal/halppc/generic/fmutex.c [iso-8859-1] Wed Mar 3 17:03:14 2010 @@ -39,7 +39,7 @@ { /* Someone is still holding it, use slow path */ FastMutex->Contention++; - KeWaitForSingleObject(&FastMutex->Gate, + KeWaitForSingleObject(&FastMutex->Event, WrExecutive, KernelMode, FALSE, @@ -65,7 +65,7 @@ if (InterlockedIncrement(&FastMutex->Count) <= 0) { /* Someone was waiting for it, signal the waiter */ - KeSetEventBoostPriority(&FastMutex->Gate, IO_NO_INCREMENT); + KeSetEventBoostPriority(&FastMutex->Event, IO_NO_INCREMENT); }
/* Lower IRQL back */
Removed: branches/header-work/include/ddk/ntdef.h URL: http://svn.reactos.org/svn/reactos/branches/header-work/include/ddk/ntdef.h?... ============================================================================== --- branches/header-work/include/ddk/ntdef.h [iso-8859-1] (original) +++ branches/header-work/include/ddk/ntdef.h (removed) @@ -1,844 +1,0 @@ -#ifndef _NTDEF_H -#define _NTDEF_H - -// -// Dependencies -// -#include <ctype.h> -#include <basetsd.h> -#include <excpt.h> -#include <sdkddkver.h> - -// FIXME: Should we include these here? -#include <stdarg.h> -#include <string.h> - -/* Helper macro to enable gcc's extension. */ -#ifndef __GNU_EXTENSION -#ifdef __GNUC__ -#define __GNU_EXTENSION __extension__ -#else -#define __GNU_EXTENSION -#endif -#endif - -typedef unsigned long POINTER_64; // FIXME! HACK!!! - - - -// -// Pseudo Modifiers for Input Parameters -// -#ifndef IN -#define IN -#endif - -#ifndef OUT -#define OUT -#endif - -#ifndef OPTIONAL -#define OPTIONAL -#endif - -#ifndef NOTHING -#define NOTHING -#endif - -#ifndef CRITICAL -#define CRITICAL -#endif - -#ifndef FAR -#define FAR -#endif - - -// -// Defines the "size" of an any-size array -// -#ifndef ANYSIZE_ARRAY -#define ANYSIZE_ARRAY 1 -#endif - -// -// Constant modifier -// -#ifndef CONST -#define CONST const -#endif - -// -// TRUE/FALSE -// -#define FALSE 0 -#define TRUE 1 - -// -// NULL/NULL64 -// -#ifndef NULL -#ifdef __cplusplus -#define NULL 0 -#define NULL64 0 -#else -#define NULL ((void *)0) -#define NULL64 ((void * POINTER_64)0) -#endif -#endif // NULL - - -// -// FIXME -// We should use the -fms-extensions compiler flag for gcc, -// and clean up the mess. -// -#ifndef __ANONYMOUS_DEFINED -#define __ANONYMOUS_DEFINED - -#ifndef NONAMELESSUNION -#ifdef __GNUC__ -#define _ANONYMOUS_UNION __GNU_EXTENSION -#define _ANONYMOUS_STRUCT __GNU_EXTENSION -#elif defined(__WATCOMC__) || defined(_MSC_VER) -#define _ANONYMOUS_UNION -#define _ANONYMOUS_STRUCT -#endif /* __GNUC__/__WATCOMC__ */ -#endif /* NONAMELESSUNION */ - -#ifndef _ANONYMOUS_UNION -#define _ANONYMOUS_UNION -#define _UNION_NAME(x) x -#define DUMMYUNIONNAME u -#define DUMMYUNIONNAME2 u2 -#define DUMMYUNIONNAME3 u3 -#define DUMMYUNIONNAME4 u4 -#define DUMMYUNIONNAME5 u5 -#define DUMMYUNIONNAME6 u6 -#define DUMMYUNIONNAME7 u7 -#define DUMMYUNIONNAME8 u8 -#else -#define _UNION_NAME(x) -#define DUMMYUNIONNAME -#define DUMMYUNIONNAME2 -#define DUMMYUNIONNAME3 -#define DUMMYUNIONNAME4 -#define DUMMYUNIONNAME5 -#define DUMMYUNIONNAME6 -#define DUMMYUNIONNAME7 -#define DUMMYUNIONNAME8 -#endif - -#ifndef _ANONYMOUS_STRUCT -#define _ANONYMOUS_STRUCT -#define _STRUCT_NAME(x) x -#define DUMMYSTRUCTNAME s -#define DUMMYSTRUCTNAME2 s2 -#define DUMMYSTRUCTNAME3 s3 -#define DUMMYSTRUCTNAME4 s4 -#define DUMMYSTRUCTNAME5 s5 -#else -#define _STRUCT_NAME(x) -#define DUMMYSTRUCTNAME -#define DUMMYSTRUCTNAME2 -#define DUMMYSTRUCTNAME3 -#define DUMMYSTRUCTNAME4 -#define DUMMYSTRUCTNAME5 -#endif - -#endif /* __ANONYMOUS_DEFINED */ - -// FIXME -#undef UNALIGNED -#define UNALIGNED -#define RESTRICTED_POINTER - -// -// Returns the base address of a structure from a structure member -// -#ifndef CONTAINING_RECORD -#define CONTAINING_RECORD(address, type, field) \ - ((type *)(((ULONG_PTR)address) - (ULONG_PTR)(&(((type *)0)->field)))) -#endif - -// -// Returns the byte offset of the specified structure's member -// -#ifndef __GNUC__ -#define FIELD_OFFSET(Type, Field) ((LONG)(LONG_PTR)&(((Type*) 0)->Field)) -#else -#define FIELD_OFFSET(Type, Field) __builtin_offsetof(Type, Field) -#endif - -// -// Returns the type's alignment -// -#if defined(_MSC_VER) && (_MSC_VER >= 1300) -#define TYPE_ALIGNMENT(t) __alignof(t) -#else -#define TYPE_ALIGNMENT(t) FIELD_OFFSET( struct { char x; t test; }, test ) -#endif - -// -// Calling Conventions -// -#if defined(_M_IX86) -#define FASTCALL __fastcall -#else -#define FASTCALL -#endif - -#define NTAPI __stdcall - -// -// Used by the DDK exclusively , don't put in drivers -// -#define DDKAPI __stdcall // Use NTAPI instead -#define DDKCDECLAPI __cdecl // Just use __cdecl - -// -// Import and Export Specifiers -// - -// Done the same way as in windef.h for now -#define DECLSPEC_IMPORT __declspec(dllimport) -#define DECLSPEC_NORETURN __declspec(noreturn) - - -#ifndef DECLSPEC_ADDRSAFE -#if (_MSC_VER >= 1200) && (defined(_M_ALPHA) || defined(_M_AXP64)) -#define DECLSPEC_ADDRSAFE __declspec(address_safe) -#else -#define DECLSPEC_ADDRSAFE -#endif -#endif - -#if !defined(_NTSYSTEM_) -#define NTSYSAPI DECLSPEC_IMPORT -#define NTSYSCALLAPI DECLSPEC_IMPORT -#else -#define NTSYSAPI -#if defined(_NTDLLBUILD_) -#define NTSYSCALLAPI -#else -#define NTSYSCALLAPI DECLSPEC_ADDRSAFE -#endif -#endif - -// -// Inlines -// -#ifndef FORCEINLINE -#if (_MSC_VER >= 1200) -#define FORCEINLINE __forceinline -#elif (_MSC_VER) -#define FORCEINLINE __inline -#else -#define FORCEINLINE static __inline__ __attribute__((always_inline)) -#endif -#endif - -#ifndef DECLSPEC_NOINLINE -#if (_MSC_VER >= 1300) -#define DECLSPEC_NOINLINE __declspec(noinline) -#elif defined(__GNUC__) -#define DECLSPEC_NOINLINE __attribute__((noinline)) -#else -#define DECLSPEC_NOINLINE -#endif -#endif - -#if !defined(_M_CEE_PURE) -#define NTAPI_INLINE NTAPI -#else -#define NTAPI_INLINE -#endif - -// -// Use to specify structure alignment -// -#ifndef DECLSPEC_ALIGN -#if defined(_MSC_VER) && (_MSC_VER >= 1300) && !defined(MIDL_PASS) -#define DECLSPEC_ALIGN(x) __declspec(align(x)) -#elif defined(__GNUC__) -#define DECLSPEC_ALIGN(x) __attribute__((aligned(x))) -#else -#define DECLSPEC_ALIGN(x) -#endif -#endif - - - -// -// Use to silence unused variable warnings when it is intentional -// -#define UNREFERENCED_PARAMETER(P) {(P)=(P);} -#define UNREFERENCED_LOCAL_VARIABLE(L) {(L)=(L);} -#define DBG_UNREFERENCED_PARAMETER(P) -#define DBG_UNREFERENCED_LOCAL_VARIABLE(L) - - - -// -// min/max helper macros -// -#ifndef NOMINMAX - -#ifndef min -#define min(a,b) (((a) < (b)) ? (a) : (b)) -#endif - -#ifndef max -#define max(a,b) (((a) > (b)) ? (a) : (b)) -#endif - -#endif // NOMINMAX - - - -// -// Tell windef.h that we have defined some basic types -// -#define BASETYPES - -// -// Void Pointers -// -typedef void *PVOID; -//typedef void * POINTER_64 PVOID64; -typedef PVOID PVOID64; // FIXME! - -// -// Handle Type -// -#ifdef STRICT -typedef void *HANDLE; -#define DECLARE_HANDLE(n) typedef struct n##__{int i;}*n -#else -typedef PVOID HANDLE; -#define DECLARE_HANDLE(n) typedef HANDLE n -#endif -typedef HANDLE *PHANDLE; - -// -// Upper-Case Versions of Some Standard C Types -// -#ifndef VOID -#define VOID void -typedef char CHAR; -typedef short SHORT; -typedef long LONG; -#if !defined(MIDL_PASS) -typedef int INT; -#endif -#endif -typedef double DOUBLE; - -// -// Used to store a non-float 8 byte aligned structure -// -typedef struct _QUAD -{ - _ANONYMOUS_UNION union - { - __GNU_EXTENSION __int64 UseThisFieldToCopy; - double DoNotUseThisField; - }; -} QUAD, *PQUAD, UQUAD, *PUQUAD; - - -// -// Unsigned Types -// -typedef unsigned char UCHAR, *PUCHAR; -typedef unsigned short USHORT, *PUSHORT; -typedef unsigned long ULONG, *PULONG; -typedef CONST UCHAR *PCUCHAR; -typedef CONST USHORT *PCUSHORT; -typedef CONST ULONG *PCULONG; - -typedef UCHAR FCHAR; -typedef USHORT FSHORT; -typedef ULONG FLONG; -typedef UCHAR BOOLEAN; -typedef BOOLEAN *PBOOLEAN; - -// -// Signed Types -// -typedef SHORT *PSHORT; -typedef LONG *PLONG; - -typedef LONG NTSTATUS; -typedef NTSTATUS *PNTSTATUS; - -typedef signed char SCHAR; -typedef SCHAR *PSCHAR; - -#ifndef _HRESULT_DEFINED -#define _HRESULT_DEFINED -typedef LONG HRESULT; -#endif - -// -// 64-bit types -// -__GNU_EXTENSION typedef __int64 LONGLONG, *PLONGLONG; -__GNU_EXTENSION typedef unsigned __int64 ULONGLONG, *PULONGLONG; -typedef ULONGLONG DWORDLONG, *PDWORDLONG; - -// -// Update Sequence Number -// -typedef LONGLONG USN; - - -// -// ANSI (Multi-byte Character) types -// -typedef CHAR *PCHAR, *LPCH, *PCH; -typedef CONST CHAR *LPCCH, *PCCH; -typedef CHAR *NPSTR, *LPSTR, *PSTR; -typedef PSTR *PZPSTR; -typedef CONST PSTR *PCZPSTR; -typedef CONST CHAR *LPCSTR, *PCSTR; -typedef PCSTR *PZPCSTR; - -// -// Pointer to an Asciiz string -// -typedef CHAR *PSZ; -typedef CONST char *PCSZ; - -// -// UNICODE (Wide Character) types -// -typedef wchar_t WCHAR; -typedef WCHAR *PWCHAR, *LPWCH, *PWCH; -typedef CONST WCHAR *LPCWCH, *PCWCH; -typedef WCHAR *NWPSTR, *LPWSTR, *PWSTR; -typedef PWSTR *PZPWSTR; -typedef CONST PWSTR *PCZPWSTR; -typedef WCHAR UNALIGNED *LPUWSTR, *PUWSTR; -typedef CONST WCHAR *LPCWSTR, *PCWSTR; -typedef PCWSTR *PZPCWSTR; -typedef CONST WCHAR UNALIGNED *LPCUWSTR, *PCUWSTR; - -// -// Cardinal Data Types -// -typedef char CCHAR, *PCCHAR; -typedef short CSHORT, *PCSHORT; -typedef ULONG CLONG, *PCLONG; - -// -// NLS basics (Locale and Language Ids) -// -typedef ULONG LCID; -typedef PULONG PLCID; -typedef USHORT LANGID; - - - -// -// Large Integer Unions -// -#if defined(MIDL_PASS) -typedef struct _LARGE_INTEGER { -#else -typedef union _LARGE_INTEGER { - _ANONYMOUS_STRUCT struct - { - ULONG LowPart; - LONG HighPart; - } DUMMYSTRUCTNAME; - struct - { - ULONG LowPart; - LONG HighPart; - } u; -#endif //MIDL_PASS - LONGLONG QuadPart; -} LARGE_INTEGER, *PLARGE_INTEGER; - -#if defined(MIDL_PASS) -typedef struct _ULARGE_INTEGER { -#else -typedef union _ULARGE_INTEGER { - _ANONYMOUS_STRUCT struct - { - ULONG LowPart; - ULONG HighPart; - } DUMMYSTRUCTNAME; - struct - { - ULONG LowPart; - ULONG HighPart; - } u; -#endif //MIDL_PASS - ULONGLONG QuadPart; -} ULARGE_INTEGER, *PULARGE_INTEGER; - -// -// Physical Addresses are always treated as 64-bit wide -// -typedef LARGE_INTEGER PHYSICAL_ADDRESS, *PPHYSICAL_ADDRESS; - - - -// -// Locally Unique Identifier -// -typedef struct _LUID { - ULONG LowPart; - LONG HighPart; -} LUID, *PLUID; - - - -// -// Native API Return Value Macros -// -#define NT_SUCCESS(Status) (((NTSTATUS)(Status)) >= 0) -#define NT_INFORMATION(Status) ((((ULONG)(Status)) >> 30) == 1) -#define NT_WARNING(Status) ((((ULONG)(Status)) >> 30) == 2) -#define NT_ERROR(Status) ((((ULONG)(Status)) >> 30) == 3) - - - -// -// String Types -// -typedef struct _UNICODE_STRING { - USHORT Length; - USHORT MaximumLength; - PWSTR Buffer; -} UNICODE_STRING, *PUNICODE_STRING; -typedef const UNICODE_STRING* PCUNICODE_STRING; -#define UNICODE_NULL ((WCHAR)0) - -typedef struct _CSTRING { - USHORT Length; - USHORT MaximumLength; - CONST CHAR *Buffer; -} CSTRING, *PCSTRING; -#define ANSI_NULL ((CHAR)0) - -typedef struct _STRING { - USHORT Length; - USHORT MaximumLength; - PCHAR Buffer; -} STRING, *PSTRING; - -typedef STRING ANSI_STRING; -typedef PSTRING PANSI_STRING; -typedef STRING OEM_STRING; -typedef PSTRING POEM_STRING; -typedef CONST STRING* PCOEM_STRING; -typedef STRING CANSI_STRING; -typedef PSTRING PCANSI_STRING; - -typedef struct _STRING32 { - USHORT Length; - USHORT MaximumLength; - ULONG Buffer; -} STRING32, *PSTRING32, - UNICODE_STRING32, *PUNICODE_STRING32, - ANSI_STRING32, *PANSI_STRING32; - -typedef struct _STRING64 { - USHORT Length; - USHORT MaximumLength; - ULONGLONG Buffer; -} STRING64, *PSTRING64, - UNICODE_STRING64, *PUNICODE_STRING64, - ANSI_STRING64, *PANSI_STRING64; - -// -// LangID and NLS -// -#define MAKELANGID(p, s) ((((USHORT)(s)) << 10) | (USHORT)(p)) -#define PRIMARYLANGID(lgid) ((USHORT)(lgid) & 0x3ff) -#define SUBLANGID(lgid) ((USHORT)(lgid) >> 10) - -#define NLS_VALID_LOCALE_MASK 0x000fffff - -#define MAKELCID(lgid, srtid) ((ULONG)((((ULONG)((USHORT)(srtid))) << 16) | \ - ((ULONG)((USHORT)(lgid))))) -#define MAKESORTLCID(lgid, srtid, ver) \ - ((ULONG)((MAKELCID(lgid, srtid)) | \ - (((ULONG)((USHORT)(ver))) << 20))) -#define LANGIDFROMLCID(lcid) ((USHORT)(lcid)) -#define SORTIDFROMLCID(lcid) ((USHORT)((((ULONG)(lcid)) >> 16) & 0xf)) -#define SORTVERSIONFROMLCID(lcid) ((USHORT)((((ULONG)(lcid)) >> 20) & 0xf)) - - - -// -// Object Attributes -// -typedef struct _OBJECT_ATTRIBUTES { - ULONG Length; - HANDLE RootDirectory; - PUNICODE_STRING ObjectName; - ULONG Attributes; - PVOID SecurityDescriptor; - PVOID SecurityQualityOfService; -} OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES; -typedef CONST OBJECT_ATTRIBUTES *PCOBJECT_ATTRIBUTES; - -// -// Values for the Attributes member -// -#define OBJ_INHERIT 0x00000002 -#define OBJ_PERMANENT 0x00000010 -#define OBJ_EXCLUSIVE 0x00000020 -#define OBJ_CASE_INSENSITIVE 0x00000040 -#define OBJ_OPENIF 0x00000080 -#define OBJ_OPENLINK 0x00000100 -#define OBJ_KERNEL_HANDLE 0x00000200 -#define OBJ_FORCE_ACCESS_CHECK 0x00000400 -#define OBJ_VALID_ATTRIBUTES 0x000007F2 - -// -// Helper Macro -// -#define InitializeObjectAttributes(p,n,a,r,s) { \ - (p)->Length = sizeof(OBJECT_ATTRIBUTES); \ - (p)->RootDirectory = (r); \ - (p)->Attributes = (a); \ - (p)->ObjectName = (n); \ - (p)->SecurityDescriptor = (s); \ - (p)->SecurityQualityOfService = NULL; \ -} - - - -// -// Product Types -// -typedef enum _NT_PRODUCT_TYPE { - NtProductWinNt = 1, - NtProductLanManNt, - NtProductServer -} NT_PRODUCT_TYPE, *PNT_PRODUCT_TYPE; - - - -// -// Doubly Linked Lists -// -typedef struct _LIST_ENTRY { - struct _LIST_ENTRY *Flink; - struct _LIST_ENTRY *Blink; -} LIST_ENTRY, *PLIST_ENTRY, *RESTRICTED_POINTER PRLIST_ENTRY; - -typedef struct LIST_ENTRY32 -{ - ULONG Flink; - ULONG Blink; -} LIST_ENTRY32, *PLIST_ENTRY32; - -typedef struct LIST_ENTRY64 -{ - ULONGLONG Flink; - ULONGLONG Blink; -} LIST_ENTRY64, *PLIST_ENTRY64; - -// -// Singly Linked Lists -// -typedef struct _SINGLE_LIST_ENTRY { - struct _SINGLE_LIST_ENTRY *Next; -} SINGLE_LIST_ENTRY, *PSINGLE_LIST_ENTRY; - - - -// -// Helper Macros -// -#define RTL_CONSTANT_STRING(s) { sizeof(s)-sizeof((s)[0]), sizeof(s), s } - -#define RTL_FIELD_SIZE(type, field) (sizeof(((type *)0)->field)) - -#define RTL_NUMBER_OF_V1(A) (sizeof(A)/sizeof((A)[0])) -#define RTL_NUMBER_OF_V2(A) RTL_NUMBER_OF_V1(A) -#ifdef ENABLE_RTL_NUMBER_OF_V2 -#define RTL_NUMBER_OF(A) RTL_NUMBER_OF_V2(A) -#else -#define RTL_NUMBER_OF(A) RTL_NUMBER_OF_V1(A) -#endif -#define ARRAYSIZE(A) RTL_NUMBER_OF_V2(A) - - - -// -// Type Limits -// -#define MINCHAR 0x80 -#define MAXCHAR 0x7f -#define MINSHORT 0x8000 -#define MAXSHORT 0x7fff -#define MINLONG 0x80000000 -#define MAXLONG 0x7fffffff -#define MAXUCHAR 0xff -#define MAXUSHORT 0xffff -#define MAXULONG 0xffffffff -#define MAXLONGLONG (0x7fffffffffffffffLL) - - - -// -// Multiplication and Shift Operations -// -#define Int32x32To64(a,b) ((LONGLONG)(a)*(LONGLONG)(b)) -#define UInt32x32To64(a,b) ((DWORDLONG)(a)*(DWORDLONG)(b)) -#define Int64ShllMod32(a,b) ((DWORDLONG)(a)<<(b)) -#define Int64ShraMod32(a,b) ((LONGLONG)(a)>>(b)) -#define Int64ShrlMod32(a,b) ((DWORDLONG)(a)>>(b)) - - - -// -// C_ASSERT Definition -// -#define C_ASSERT(expr) extern char (*c_assert(void)) [(expr) ? 1 : -1] - - - -// -// Primary language IDs. -// -#define LANG_NEUTRAL 0x00 -#define LANG_INVARIANT 0x7f - -#define LANG_AFRIKAANS 0x36 -#define LANG_ALBANIAN 0x1c -#define LANG_ALSATIAN 0x84 -#define LANG_AMHARIC 0x5e -#define LANG_ARABIC 0x01 -#define LANG_ARMENIAN 0x2b -#define LANG_ASSAMESE 0x4d -#define LANG_AZERI 0x2c -#define LANG_BASHKIR 0x6d -#define LANG_BASQUE 0x2d -#define LANG_BELARUSIAN 0x23 -#define LANG_BENGALI 0x45 -#define LANG_BRETON 0x7e -#define LANG_BOSNIAN 0x1a -#define LANG_BOSNIAN_NEUTRAL 0x781a -#define LANG_BULGARIAN 0x02 -#define LANG_CATALAN 0x03 -#define LANG_CHINESE 0x04 -#define LANG_CHINESE_SIMPLIFIED 0x04 -#define LANG_CHINESE_TRADITIONAL 0x7c04 -#define LANG_CORSICAN 0x83 -#define LANG_CROATIAN 0x1a -#define LANG_CZECH 0x05 -#define LANG_DANISH 0x06 -#define LANG_DARI 0x8c -#define LANG_DIVEHI 0x65 -#define LANG_DUTCH 0x13 -#define LANG_ENGLISH 0x09 -#define LANG_ESTONIAN 0x25 -#define LANG_FAEROESE 0x38 -#define LANG_FARSI 0x29 -#define LANG_FILIPINO 0x64 -#define LANG_FINNISH 0x0b -#define LANG_FRENCH 0x0c -#define LANG_FRISIAN 0x62 -#define LANG_GALICIAN 0x56 -#define LANG_GEORGIAN 0x37 -#define LANG_GERMAN 0x07 -#define LANG_GREEK 0x08 -#define LANG_GREENLANDIC 0x6f -#define LANG_GUJARATI 0x47 -#define LANG_HAUSA 0x68 -#define LANG_HEBREW 0x0d -#define LANG_HINDI 0x39 -#define LANG_HUNGARIAN 0x0e -#define LANG_ICELANDIC 0x0f -#define LANG_IGBO 0x70 -#define LANG_INDONESIAN 0x21 -#define LANG_INUKTITUT 0x5d -#define LANG_IRISH 0x3c -#define LANG_ITALIAN 0x10 -#define LANG_JAPANESE 0x11 -#define LANG_KANNADA 0x4b -#define LANG_KASHMIRI 0x60 -#define LANG_KAZAK 0x3f -#define LANG_KHMER 0x53 -#define LANG_KICHE 0x86 -#define LANG_KINYARWANDA 0x87 -#define LANG_KONKANI 0x57 -#define LANG_KOREAN 0x12 -#define LANG_KYRGYZ 0x40 -#define LANG_LAO 0x54 -#define LANG_LATVIAN 0x26 -#define LANG_LITHUANIAN 0x27 -#define LANG_LOWER_SORBIAN 0x2e -#define LANG_LUXEMBOURGISH 0x6e -#define LANG_MACEDONIAN 0x2f -#define LANG_MALAY 0x3e -#define LANG_MALAYALAM 0x4c -#define LANG_MALTESE 0x3a -#define LANG_MANIPURI 0x58 -#define LANG_MAORI 0x81 -#define LANG_MAPUDUNGUN 0x7a -#define LANG_MARATHI 0x4e -#define LANG_MOHAWK 0x7c -#define LANG_MONGOLIAN 0x50 -#define LANG_NEPALI 0x61 -#define LANG_NORWEGIAN 0x14 -#define LANG_OCCITAN 0x82 -#define LANG_ORIYA 0x48 -#define LANG_PASHTO 0x63 -#define LANG_PERSIAN 0x29 -#define LANG_POLISH 0x15 -#define LANG_PORTUGUESE 0x16 -#define LANG_PUNJABI 0x46 -#define LANG_QUECHUA 0x6b -#define LANG_ROMANIAN 0x18 -#define LANG_ROMANSH 0x17 -#define LANG_RUSSIAN 0x19 -#define LANG_SAMI 0x3b -#define LANG_SANSKRIT 0x4f -#define LANG_SERBIAN 0x1a -#define LANG_SERBIAN_NEUTRAL 0x7c1a -#define LANG_SINDHI 0x59 -#define LANG_SINHALESE 0x5b -#define LANG_SLOVAK 0x1b -#define LANG_SLOVENIAN 0x24 -#define LANG_SOTHO 0x6c -#define LANG_SPANISH 0x0a -#define LANG_SWAHILI 0x41 -#define LANG_SWEDISH 0x1d -#define LANG_SYRIAC 0x5a -#define LANG_TAJIK 0x28 -#define LANG_TAMAZIGHT 0x5f -#define LANG_TAMIL 0x49 -#define LANG_TATAR 0x44 -#define LANG_TELUGU 0x4a -#define LANG_THAI 0x1e -#define LANG_TIBETAN 0x51 -#define LANG_TIGRIGNA 0x73 -#define LANG_TSWANA 0x32 -#define LANG_TURKISH 0x1f -#define LANG_TURKMEN 0x42 -#define LANG_UIGHUR 0x80 -#define LANG_UKRAINIAN 0x22 -#define LANG_UPPER_SORBIAN 0x2e -#define LANG_URDU 0x20 -#define LANG_UZBEK 0x43 -#define LANG_VIETNAMESE 0x2a -#define LANG_WELSH 0x52 -#define LANG_WOLOF 0x88 -#define LANG_XHOSA 0x34 -#define LANG_YAKUT 0x85 -#define LANG_YI 0x78 -#define LANG_YORUBA 0x6a -#define LANG_ZULU 0x35 - - - -#endif /* _NTDEF_H */
Modified: branches/header-work/include/ddk/wdm.h URL: http://svn.reactos.org/svn/reactos/branches/header-work/include/ddk/wdm.h?re... ============================================================================== --- branches/header-work/include/ddk/wdm.h [iso-8859-1] (original) +++ branches/header-work/include/ddk/wdm.h [iso-8859-1] Wed Mar 3 17:03:14 2010 @@ -1,5 +1,4 @@ -#ifndef _WDMDDK_ -#define _WDMDDK_ +#pragma once
/* Helper macro to enable gcc's extension. */ #ifndef __GNU_EXTENSION @@ -1476,11 +1475,14 @@ ); #endif
-#if (NTDDI_VERSION >= NTDDI_WS03SP1) +/* FIXME : #if (NTDDI_VERSION >= NTDDI_WS03SP1) */ NTKERNELAPI BOOLEAN KeAreAllApcsDisabled( VOID); +/* #endif (NTDDI_VERSION >= NTDDI_WS03SP1) */ + +#if (NTDDI_VERSION >= NTDDI_WS03SP1)
/* Guarded Mutex routines */
@@ -1549,18 +1551,6 @@ OUT PRKEVENT Event, IN EVENT_TYPE Type, IN BOOLEAN State); - -FORCEINLINE -VOID -ExInitializeFastMutex( - OUT PFAST_MUTEX FastMutex) -{ - FastMutex->Count = FM_LOCK_BIT; - FastMutex->Owner = NULL; - FastMutex->Contention = 0; - KeInitializeEvent(&FastMutex->Event, SynchronizationEvent, FALSE); - return; -}
#if DBG
@@ -3853,13 +3843,12 @@ CHAR EaName[1]; } FILE_FULL_EA_INFORMATION, *PFILE_FULL_EA_INFORMATION;
-typedef struct _FAST_MUTEX -{ - LONG Count; - PKTHREAD Owner; - ULONG Contention; - KEVENT Gate; - ULONG OldIrql; +typedef struct _FAST_MUTEX { + volatile LONG Count; + PKTHREAD Owner; + ULONG Contention; + KEVENT Event; + ULONG OldIrql; } FAST_MUTEX, *PFAST_MUTEX;
typedef ULONG_PTR ERESOURCE_THREAD, *PERESOURCE_THREAD; @@ -7320,6 +7309,18 @@ (Item)->List.Flink = NULL; \ }
+FORCEINLINE +VOID +ExInitializeFastMutex( + OUT PFAST_MUTEX FastMutex) +{ + FastMutex->Count = FM_LOCK_BIT; + FastMutex->Owner = NULL; + FastMutex->Contention = 0; + KeInitializeEvent(&FastMutex->Event, SynchronizationEvent, FALSE); + return; +} + #if (NTDDI_VERSION >= NTDDI_WIN2K)
NTKERNELAPI @@ -7924,5 +7925,3 @@ #ifdef __cplusplus } #endif - -#endif // _WDMDDK_
Modified: branches/header-work/include/ddk/winddk.h URL: http://svn.reactos.org/svn/reactos/branches/header-work/include/ddk/winddk.h... ============================================================================== --- branches/header-work/include/ddk/winddk.h [iso-8859-1] (original) +++ branches/header-work/include/ddk/winddk.h [iso-8859-1] Wed Mar 3 17:03:14 2010 @@ -1224,11 +1224,6 @@ struct _RTL_RANGE *Range );
-typedef enum _EVENT_TYPE { - NotificationEvent, - SynchronizationEvent -} EVENT_TYPE; - typedef struct _CONFIGURATION_INFORMATION { ULONG DiskCount; ULONG FloppyCount;
Copied: branches/header-work/include/psdk/ntdef.h (from r45734, branches/header-work/include/ddk/ntdef.h) URL: http://svn.reactos.org/svn/reactos/branches/header-work/include/psdk/ntdef.h... ============================================================================== --- branches/header-work/include/ddk/ntdef.h [iso-8859-1] (original) +++ branches/header-work/include/psdk/ntdef.h [iso-8859-1] Wed Mar 3 17:03:14 2010 @@ -87,6 +87,10 @@ #endif #endif // NULL
+typedef enum _EVENT_TYPE { + NotificationEvent, + SynchronizationEvent +} EVENT_TYPE;
// // FIXME
Modified: branches/header-work/include/psdk/winbase.h URL: http://svn.reactos.org/svn/reactos/branches/header-work/include/psdk/winbase... ============================================================================== --- branches/header-work/include/psdk/winbase.h [iso-8859-1] (original) +++ branches/header-work/include/psdk/winbase.h [iso-8859-1] Wed Mar 3 17:03:14 2010 @@ -1807,9 +1807,7 @@ DWORD WINAPI SetCriticalSectionSpinCount(LPCRITICAL_SECTION,DWORD); BOOL WINAPI InitializeSecurityDescriptor(PSECURITY_DESCRIPTOR,DWORD); BOOL WINAPI InitializeSid (PSID,PSID_IDENTIFIER_AUTHORITY,BYTE); -#if !defined(__WINDDK_H) && _WIN32_WINNT >= 0x0501 -VOID WINAPI InitializeSListHead(PSLIST_HEADER); -#endif + #if (_WIN32_WINNT >= 0x0600) VOID WINAPI InitializeSRWLock(PSRWLOCK); #endif @@ -1881,7 +1879,15 @@
#endif // !(defined (_M_AMD64) || defined (_M_IA64))
-VOID WINAPI InitializeSListHead(PSLIST_HEADER); +#if defined(_SLIST_HEADER_) && !defined(_NTOSP_) + +WINBASEAPI +VOID +WINAPI +InitializeSListHead ( + IN OUT PSLIST_HEADER ListHead); +#endif + USHORT WINAPI QueryDepthSList(PSLIST_HEADER);
#ifdef _MSC_VER
Modified: branches/header-work/ntoskrnl/include/internal/ex.h URL: http://svn.reactos.org/svn/reactos/branches/header-work/ntoskrnl/include/int... ============================================================================== --- branches/header-work/ntoskrnl/include/internal/ex.h [iso-8859-1] (original) +++ branches/header-work/ntoskrnl/include/internal/ex.h [iso-8859-1] Wed Mar 3 17:03:14 2010 @@ -1251,7 +1251,7 @@ if (InterlockedIncrement(&FastMutex->Count) <= 0) { /* Someone was waiting for it, signal the waiter */ - KeSetEventBoostPriority(&FastMutex->Gate, NULL); + KeSetEventBoostPriority(&FastMutex->Event, NULL); } }
@@ -1292,7 +1292,7 @@ if (InterlockedIncrement(&FastMutex->Count) <= 0) { /* Someone was waiting for it, signal the waiter */ - KeSetEventBoostPriority(&FastMutex->Gate, NULL); + KeSetEventBoostPriority(&FastMutex->Event, NULL); }
/* Lower IRQL back */
Modified: branches/header-work/ntoskrnl/ke/eventobj.c URL: http://svn.reactos.org/svn/reactos/branches/header-work/ntoskrnl/ke/eventobj... ============================================================================== --- branches/header-work/ntoskrnl/ke/eventobj.c [iso-8859-1] (original) +++ branches/header-work/ntoskrnl/ke/eventobj.c [iso-8859-1] Wed Mar 3 17:03:14 2010 @@ -32,7 +32,7 @@ */ VOID NTAPI -KeInitializeEvent(IN PKEVENT Event, +KeInitializeEvent(OUT PKEVENT Event, IN EVENT_TYPE Type, IN BOOLEAN State) {
Modified: branches/header-work/ntoskrnl/ke/wait.c URL: http://svn.reactos.org/svn/reactos/branches/header-work/ntoskrnl/ke/wait.c?r... ============================================================================== --- branches/header-work/ntoskrnl/ke/wait.c [iso-8859-1] (original) +++ branches/header-work/ntoskrnl/ke/wait.c [iso-8859-1] Wed Mar 3 17:03:14 2010 @@ -110,7 +110,7 @@ FastMutex->Contention++;
/* Wait for the event */ - KeWaitForSingleObject(&FastMutex->Gate, + KeWaitForSingleObject(&FastMutex->Event, WrMutex, KernelMode, FALSE,