merge 35742,35773,35780,35824,35969,36725,36952 from amd64 branch

svn path=/trunk/; revision=37115
This commit is contained in:
Timo Kreuzer
2008-10-31 21:28:09 +00:00
parent 0411efc7fc
commit 599b63ad89
6 changed files with 241 additions and 62 deletions
+47
View File
@@ -3631,6 +3631,8 @@ IoVerifyVolume (
IN BOOLEAN AllowRawMount
);
#if !defined (_M_AMD64)
NTHALAPI
KIRQL
FASTCALL
@@ -3646,6 +3648,51 @@ KeReleaseQueuedSpinLock (
IN KIRQL OldIrql
);
NTHALAPI
KIRQL
FASTCALL
KeAcquireSpinLockRaiseToSynch(
IN OUT PKSPIN_LOCK SpinLock
);
NTHALAPI
LOGICAL
FASTCALL
KeTryToAcquireQueuedSpinLock(
KSPIN_LOCK_QUEUE_NUMBER Number,
PKIRQL OldIrql);
#else
NTKERNELAPI
KIRQL
FASTCALL
KeAcquireQueuedSpinLock (
IN KSPIN_LOCK_QUEUE_NUMBER Number
);
NTKERNELAPI
VOID
FASTCALL
KeReleaseQueuedSpinLock (
IN KSPIN_LOCK_QUEUE_NUMBER Number,
IN KIRQL OldIrql
);
NTKERNELAPI
KIRQL
KeAcquireSpinLockRaiseToSynch(
IN OUT PKSPIN_LOCK SpinLock
);
NTKERNELAPI
LOGICAL
KeTryToAcquireQueuedSpinLock(
KSPIN_LOCK_QUEUE_NUMBER Number,
PKIRQL OldIrql);
#endif
NTKERNELAPI
VOID
NTAPI
+152 -50
View File
@@ -1759,8 +1759,25 @@ typedef struct _CM_PARTIAL_RESOURCE_DESCRIPTOR {
struct {
ULONG Level;
ULONG Vector;
ULONG Affinity;
KAFFINITY Affinity;
} Interrupt;
#if (NTDDI_VERSION >= NTDDI_LONGHORN)
struct {
union {
struct {
USHORT Reserved;
USHORT MessageCount;
ULONG Vector;
KAFFINITY Affinity;
} Raw;
struct {
ULONG Level;
ULONG Vector;
KAFFINITY Affinity;
} Translated;
};
} MessageInterrupt;
#endif
struct {
PHYSICAL_ADDRESS Start;
ULONG Length;
@@ -1783,6 +1800,20 @@ typedef struct _CM_PARTIAL_RESOURCE_DESCRIPTOR {
ULONG Reserved1;
ULONG Reserved2;
} DeviceSpecificData;
#if (NTDDI_VERSION >= NTDDI_LONGHORN)
struct {
PHYSICAL_ADDRESS Start;
ULONG Length40;
} Memory40;
struct {
PHYSICAL_ADDRESS Start;
ULONG Length48;
} Memory48;
struct {
PHYSICAL_ADDRESS Start;
ULONG Length64;
} Memory64;
#endif
} u;
} CM_PARTIAL_RESOURCE_DESCRIPTOR, *PCM_PARTIAL_RESOURCE_DESCRIPTOR;
@@ -5444,6 +5475,8 @@ typedef struct _KPCR {
ULONG HalReserved[16]; // For use by Hal
} KPCR, *PKPCR; /* 54 */
#define KeGetPcr() PCR
typedef struct _KFLOATING_SAVE {
ULONG ControlWord;
ULONG StatusWord;
@@ -5661,6 +5694,8 @@ typedef struct _KPCR {
UCHAR Number; /* 51 */
} KPCR, *PKPCR; /* 54 */
#define KeGetPcr() PCR
static __inline
ULONG
DDKAPI
@@ -5695,6 +5730,8 @@ typedef struct _KPCR {
ULONG IDR; /* 30 */
} KPCR, *PKPCR;
#define KeGetPcr() PCR
typedef struct _KFLOATING_SAVE {
} KFLOATING_SAVE, *PKFLOATING_SAVE;
@@ -5792,6 +5829,7 @@ typedef struct _PCIBUSDATA
} PCIBUSDATA, *PPCIBUSDATA;
/** INTERLOCKED FUNCTIONS *****************************************************/
#if !defined(__INTERLOCKED_DECLARED)
#define __INTERLOCKED_DECLARED
@@ -5908,12 +5946,43 @@ InterlockedExchangeAdd(
#define InterlockedPushEntrySList(Head, Entry) ExpInterlockedPushEntrySList(Head, Entry)
#define InterlockedFlushSList(Head) ExpInterlockedFlushSList(Head)
#define QueryDepthSList(Head) ExQueryDepthSList(Head)
#endif // !defined(_WINBASE_
#endif // !defined(_WINBASE_)
#endif // _M_AMD64
#endif /* !__INTERLOCKED_DECLARED */
/** SPINLOCK FUNCTIONS ********************************************************/
NTKERNELAPI
BOOLEAN
FASTCALL
KeTryToAcquireSpinLockAtDpcLevel(
IN OUT PKSPIN_LOCK SpinLock
);
#if defined (_X86_)
NTKERNELAPI
VOID
NTAPI
KeInitializeSpinLock(
IN PKSPIN_LOCK SpinLock);
NTHALAPI
KIRQL
FASTCALL
KfAcquireSpinLock(
IN PKSPIN_LOCK SpinLock);
NTHALAPI
VOID
FASTCALL
KfReleaseSpinLock(
IN PKSPIN_LOCK SpinLock,
IN KIRQL NewIrql);
NTKERNELAPI
VOID
FASTCALL
@@ -5926,46 +5995,48 @@ FASTCALL
KefReleaseSpinLockFromDpcLevel(
IN PKSPIN_LOCK SpinLock);
#if defined(_M_AMD64)
NTKERNELAPI
KIRQL
FASTCALL
KfAcquireSpinLock(
IN PKSPIN_LOCK SpinLock);
NTKERNELAPI
VOID
FASTCALL
KfReleaseSpinLock(
IN PKSPIN_LOCK SpinLock,
IN KIRQL NewIrql);
#else
NTHALAPI
KIRQL
FASTCALL
KfAcquireSpinLock(
IN PKSPIN_LOCK SpinLock);
NTHALAPI
VOID
FASTCALL
KfReleaseSpinLock(
IN PKSPIN_LOCK SpinLock,
IN KIRQL NewIrql);
#endif
NTKERNELAPI
BOOLEAN
FASTCALL
KeTryToAcquireSpinLockAtDpcLevel(
IN OUT PKSPIN_LOCK SpinLock
);
#define KeAcquireSpinLockAtDpcLevel(SpinLock) KefAcquireSpinLockAtDpcLevel(SpinLock)
#define KeReleaseSpinLockFromDpcLevel(SpinLock) KefReleaseSpinLockFromDpcLevel(SpinLock)
#define KeAcquireSpinLock(a,b) *(b) = KfAcquireSpinLock(a)
#define KeReleaseSpinLock(a,b) KfReleaseSpinLock(a,b)
#else // !defined (_X86_)
FORCEINLINE
VOID
NTAPI
KeInitializeSpinLock(
PKSPIN_LOCK SpinLock)
{
*SpinLock = 0;
}
NTKERNELAPI
VOID
KeReleaseSpinLock(
IN PKSPIN_LOCK SpinLock,
IN KIRQL NewIrql);
NTKERNELAPI
VOID
KeAcquireSpinLockAtDpcLevel(
IN PKSPIN_LOCK SpinLock);
NTKERNELAPI
VOID
KeReleaseSpinLockFromDpcLevel(
IN PKSPIN_LOCK SpinLock);
NTKERNELAPI
KIRQL
KeAcquireSpinLockRaiseToDpc(
IN PKSPIN_LOCK SpinLock);
#define KeAcquireSpinLock(SpinLock, OldIrql) \
*(OldIrql) = KeAcquireSpinLockRaiseToDpc(SpinLock)
#endif // !defined (_X86_)
#define RtlCopyMemoryNonTemporal RtlCopyMemory
#define KeGetDcacheFillSize() 1L
@@ -6364,17 +6435,23 @@ RtlConvertLongToLargeInteger(LONG SignedInteger)
return Result;
}
static __inline
LARGE_INTEGER
NTAPI_INLINE
RtlConvertUlongToLargeInteger(
ULONG UnsignedInteger)
{
LARGE_INTEGER ret;
ret.QuadPart = UnsignedInteger;
return ret;
}
NTSYSAPI
LUID
NTAPI
RtlConvertLongToLuid(
IN LONG Long);
NTSYSAPI
LARGE_INTEGER
NTAPI
RtlConvertUlongToLargeInteger(
IN ULONG UnsignedInteger);
NTSYSAPI
LUID
@@ -6382,6 +6459,37 @@ NTAPI
RtlConvertUlongToLuid(
ULONG Ulong);
#ifdef _M_AMD64
static __inline
LARGE_INTEGER
NTAPI_INLINE
RtlExtendedIntegerMultiply(
LARGE_INTEGER Multiplicand,
LONG Multiplier)
{
LARGE_INTEGER ret;
ret.QuadPart = Multiplicand.QuadPart * Multiplier;
return ret;
}
static __inline
LARGE_INTEGER
NTAPI_INLINE
RtlExtendedLargeIntegerDivide(
LARGE_INTEGER Dividend,
ULONG Divisor,
PULONG Remainder)
{
LARGE_INTEGER ret;
ret.QuadPart = (ULONG64)Dividend.QuadPart / Divisor;
if (Remainder)
*Remainder = (ULONG)(Dividend.QuadPart % Divisor);
return ret;
}
#endif
/*
* VOID
* RtlCopyMemory(
@@ -9587,12 +9695,6 @@ KeInitializeSemaphore(
IN LONG Count,
IN LONG Limit);
NTKERNELAPI
VOID
NTAPI
KeInitializeSpinLock(
IN PKSPIN_LOCK SpinLock);
NTKERNELAPI
VOID
NTAPI
@@ -10331,11 +10433,11 @@ MmMarkPhysicalMemoryAsGood(
* IN MM_PAGE_PRIORITY Priority)
*/
#define MmGetSystemAddressForMdlSafe(_Mdl, _Priority) \
((_Mdl)->MdlFlags & (MDL_MAPPED_TO_SYSTEM_VA \
(((_Mdl)->MdlFlags & (MDL_MAPPED_TO_SYSTEM_VA \
| MDL_SOURCE_IS_NONPAGED_POOL)) ? \
(_Mdl)->MappedSystemVa : \
(PVOID) MmMapLockedPagesSpecifyCache((_Mdl), \
KernelMode, MmCached, NULL, FALSE, _Priority)
KernelMode, MmCached, NULL, FALSE, (_Priority)))
NTKERNELAPI
PVOID
+2
View File
@@ -411,6 +411,7 @@ RtlEnlargedUnsignedMultiply(
IN ULONG Multiplicand,
IN ULONG Multiplier);
#ifndef _M_AMD64
NTSYSAPI
LARGE_INTEGER
NTAPI
@@ -425,6 +426,7 @@ RtlExtendedLargeIntegerDivide(
IN LARGE_INTEGER Dividend,
IN ULONG Divisor,
IN OUT PULONG Remainder);
#endif
NTSYSAPI
LARGE_INTEGER
+40 -2
View File
@@ -433,8 +433,29 @@ typedef struct _CM_PARTIAL_RESOURCE_DESCRIPTOR
{
ULONG Level;
ULONG Vector;
ULONG Affinity;
KAFFINITY Affinity;
} Interrupt;
#if (NTDDI_VERSION >= NTDDI_LONGHORN)
struct
{
union
{
struct
{
USHORT Reserved;
USHORT MessageCount;
ULONG Vector;
KAFFINITY Affinity;
} Raw;
struct
{
ULONG Level;
ULONG Vector;
KAFFINITY Affinity;
} Translated;
};
} MessageInterrupt;
#endif
struct
{
PHYSICAL_ADDRESS Start;
@@ -448,7 +469,7 @@ typedef struct _CM_PARTIAL_RESOURCE_DESCRIPTOR
} Dma;
struct
{
ULONG Data[3];
ULONG Data[3];
} DevicePrivate;
struct
{
@@ -462,6 +483,23 @@ typedef struct _CM_PARTIAL_RESOURCE_DESCRIPTOR
ULONG Reserved1;
ULONG Reserved2;
} DeviceSpecificData;
#if (NTDDI_VERSION >= NTDDI_LONGHORN)
struct
{
PHYSICAL_ADDRESS Start;
ULONG Length40;
} Memory40;
struct
{
PHYSICAL_ADDRESS Start;
ULONG Length48;
} Memory48;
struct
{
PHYSICAL_ADDRESS Start;
ULONG Length64;
} Memory64;
#endif
} u;
} CM_PARTIAL_RESOURCE_DESCRIPTOR, *PCM_PARTIAL_RESOURCE_DESCRIPTOR;
-5
View File
@@ -133,11 +133,6 @@ KeAcquireInStackQueuedSpinLockRaiseToSynch(
IN PKLOCK_QUEUE_HANDLE LockHandle
);
KIRQL
FASTCALL
KeAcquireSpinLockRaiseToSynch(
IN OUT PKSPIN_LOCK SpinLock
);
//
// Interrupt Functions
-5
View File
@@ -107,11 +107,6 @@ Author:
#define KINTERRUPT_DISPATCH_CODES 106
#endif
//
// Get KPCR
//
#define KeGetPcr() PCR
#ifdef NTOS_MODE_USER
//