[XDK]
authorTimo Kreuzer <timo.kreuzer@reactos.org>
Wed, 24 Mar 2010 01:39:36 +0000 (01:39 +0000)
committerTimo Kreuzer <timo.kreuzer@reactos.org>
Wed, 24 Mar 2010 01:39:36 +0000 (01:39 +0000)
- Fix and update some amd64 definitions

svn path=/branches/header-work/; revision=46385

include/ddk/ntddk.h
include/ddk/wdm.h
include/xdk/amd64/ke.h
include/xdk/amd64/mm.h
include/xdk/interlocked.h
include/xdk/iofuncs.h
include/xdk/rtltypes.h

index 030dce9..387f538 100644 (file)
@@ -3214,7 +3214,6 @@ KeGetCurrentProcessorNumber(VOID)
 #define MM_USER_PROBE_ADDRESS             MmUserProbeAddress
 #define MM_LOWEST_USER_ADDRESS   (PVOID)0x10000
 #define MM_LOWEST_SYSTEM_ADDRESS (PVOID)0xFFFF080000000000ULL
-#define KI_USER_SHARED_DATA       0xFFFFF78000000000ULL
 
 
 #elif defined(_M_IA64)
@@ -3702,6 +3701,7 @@ IoAllocateAdapterChannel(
   IN PVOID Context);
 #endif
 
+#if !defined(DMA_MACROS_DEFINED)
 //DECLSPEC_DEPRECATED_DDK
 NTHALAPI
 PHYSICAL_ADDRESS
@@ -3713,6 +3713,7 @@ IoMapTransfer(
   IN PVOID CurrentVa,
   IN OUT PULONG Length,
   IN BOOLEAN WriteToDevice);
+#endif
 
 NTKERNELAPI
 VOID
index fac1d74..c80004a 100644 (file)
@@ -249,6 +249,10 @@ InterlockedBitTestAndReset(
 #define InterlockedBitTestAndReset _interlockedbittestandreset
 
 #ifdef _M_AMD64
+#define BitTest64 _bittest64
+#define BitTestAndComplement64 _bittestandcomplement64
+#define BitTestAndSet64 _bittestandset64
+#define BitTestAndReset64 _bittestandreset64
 #define InterlockedBitTestAndSet64 _interlockedbittestandset64
 #define InterlockedBitTestAndReset64 _interlockedbittestandreset64
 #endif
@@ -453,7 +457,7 @@ typedef struct _TIME_FIELDS {
 #if defined(_WIN64)
 
 typedef struct DECLSPEC_ALIGN(16) _SLIST_ENTRY {
-  PSLIST_ENTRY Next;
+  struct _SLIST_ENTRY *Next;
 } SLIST_ENTRY, *PSLIST_ENTRY;
 
 typedef struct _SLIST_ENTRY32 {
@@ -7835,11 +7839,22 @@ _KeQueryTickCount(
 #define PROFILE_LEVEL           15
 #define HIGH_LEVEL              15
 
+#define KI_USER_SHARED_DATA     0xFFFFF78000000000ULL
+#define SharedUserData          ((PKUSER_SHARED_DATA const)KI_USER_SHARED_DATA)
+#define SharedInterruptTime     (KI_USER_SHARED_DATA + 0x8)
+#define SharedSystemTime        (KI_USER_SHARED_DATA + 0x14)
+#define SharedTickCount         (KI_USER_SHARED_DATA + 0x320)
+
 #define PAGE_SIZE               0x1000
 #define PAGE_SHIFT              12L
 
-#define KI_USER_SHARED_DATA     0xFFFFF78000000000UI64
-#define SharedUserData          ((PKUSER_SHARED_DATA const)KI_USER_SHARED_DATA)
+#define EFLAG_SIGN              0x8000
+#define EFLAG_ZERO              0x4000
+#define EFLAG_SELECT            (EFLAG_SIGN | EFLAG_ZERO)
+
+#define RESULT_NEGATIVE         ((EFLAG_SIGN & ~EFLAG_ZERO) & EFLAG_SELECT)
+#define RESULT_ZERO             ((~EFLAG_SIGN & EFLAG_ZERO) & EFLAG_SELECT)
+#define RESULT_POSITIVE         ((~EFLAG_SIGN & ~EFLAG_ZERO) & EFLAG_SELECT)
 
 
 typedef struct _KFLOATING_SAVE {
@@ -7872,7 +7887,7 @@ FORCEINLINE
 VOID
 KeLowerIrql(IN KIRQL NewIrql)
 {
-  ASSERT(KeGetCurrentIrql() >= NewIrql);
+  //ASSERT(KeGetCurrentIrql() >= NewIrql);
   __writecr8(NewIrql);
 }
 
@@ -7883,7 +7898,7 @@ KfRaiseIrql(IN KIRQL NewIrql)
   KIRQL OldIrql;
 
   OldIrql = __readcr8();
-  ASSERT(OldIrql <= NewIrql);
+  //ASSERT(OldIrql <= NewIrql);
   __writecr8(NewIrql);
   return OldIrql;
 }
index f4cfd97..57f16fe 100644 (file)
@@ -14,11 +14,22 @@ $if (_WDMDDK_)
 #define PROFILE_LEVEL           15
 #define HIGH_LEVEL              15
 
+#define KI_USER_SHARED_DATA     0xFFFFF78000000000ULL
+#define SharedUserData          ((PKUSER_SHARED_DATA const)KI_USER_SHARED_DATA)
+#define SharedInterruptTime     (KI_USER_SHARED_DATA + 0x8)
+#define SharedSystemTime        (KI_USER_SHARED_DATA + 0x14)
+#define SharedTickCount         (KI_USER_SHARED_DATA + 0x320)
+
 #define PAGE_SIZE               0x1000
 #define PAGE_SHIFT              12L
 
-#define KI_USER_SHARED_DATA     0xFFFFF78000000000UI64
-#define SharedUserData          ((PKUSER_SHARED_DATA const)KI_USER_SHARED_DATA)
+#define EFLAG_SIGN              0x8000
+#define EFLAG_ZERO              0x4000
+#define EFLAG_SELECT            (EFLAG_SIGN | EFLAG_ZERO)
+
+#define RESULT_NEGATIVE         ((EFLAG_SIGN & ~EFLAG_ZERO) & EFLAG_SELECT)
+#define RESULT_ZERO             ((~EFLAG_SIGN & EFLAG_ZERO) & EFLAG_SELECT)
+#define RESULT_POSITIVE         ((~EFLAG_SIGN & ~EFLAG_ZERO) & EFLAG_SELECT)
 
 
 typedef struct _KFLOATING_SAVE {
@@ -51,7 +62,7 @@ FORCEINLINE
 VOID
 KeLowerIrql(IN KIRQL NewIrql)
 {
-  ASSERT(KeGetCurrentIrql() >= NewIrql);
+  //ASSERT(KeGetCurrentIrql() >= NewIrql);
   __writecr8(NewIrql);
 }
 
@@ -62,7 +73,7 @@ KfRaiseIrql(IN KIRQL NewIrql)
   KIRQL OldIrql;
 
   OldIrql = __readcr8();
-  ASSERT(OldIrql <= NewIrql);
+  //ASSERT(OldIrql <= NewIrql);
   __writecr8(NewIrql);
   return OldIrql;
 }
index 1170c35..3545941 100644 (file)
@@ -28,7 +28,6 @@ $if (_NTDDK_)
 #define MM_USER_PROBE_ADDRESS             MmUserProbeAddress
 #define MM_LOWEST_USER_ADDRESS   (PVOID)0x10000
 #define MM_LOWEST_SYSTEM_ADDRESS (PVOID)0xFFFF080000000000ULL
-#define KI_USER_SHARED_DATA       0xFFFFF78000000000ULL
 
 $endif /* _NTDDK_ */
 
index 92251c3..722096b 100644 (file)
@@ -57,6 +57,10 @@ InterlockedBitTestAndReset(
 #define InterlockedBitTestAndReset _interlockedbittestandreset
 
 #ifdef _M_AMD64
+#define BitTest64 _bittest64
+#define BitTestAndComplement64 _bittestandcomplement64
+#define BitTestAndSet64 _bittestandset64
+#define BitTestAndReset64 _bittestandreset64
 #define InterlockedBitTestAndSet64 _interlockedbittestandset64
 #define InterlockedBitTestAndReset64 _interlockedbittestandreset64
 #endif
index 9715dcc..a1a2fcf 100644 (file)
@@ -587,6 +587,7 @@ IoAllocateAdapterChannel(
   IN PVOID Context);
 #endif
 
+#if !defined(DMA_MACROS_DEFINED)
 //DECLSPEC_DEPRECATED_DDK
 NTHALAPI
 PHYSICAL_ADDRESS
@@ -598,6 +599,7 @@ IoMapTransfer(
   IN PVOID CurrentVa,
   IN OUT PULONG Length,
   IN BOOLEAN WriteToDevice);
+#endif
 
 NTKERNELAPI
 VOID
index 896c903..ab74f70 100644 (file)
@@ -73,7 +73,7 @@ typedef struct _TIME_FIELDS {
 #if defined(_WIN64)
 
 typedef struct DECLSPEC_ALIGN(16) _SLIST_ENTRY {
-  PSLIST_ENTRY Next;
+  struct _SLIST_ENTRY *Next;
 } SLIST_ENTRY, *PSLIST_ENTRY;
 
 typedef struct _SLIST_ENTRY32 {