mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-08-30 04:13:33 +00:00
merge 35742,35773,35780,35824,35969,36725,36952 from amd64 branch
svn path=/trunk/; revision=37115
This commit is contained in:
@@ -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
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -133,11 +133,6 @@ KeAcquireInStackQueuedSpinLockRaiseToSynch(
|
||||
IN PKLOCK_QUEUE_HANDLE LockHandle
|
||||
);
|
||||
|
||||
KIRQL
|
||||
FASTCALL
|
||||
KeAcquireSpinLockRaiseToSynch(
|
||||
IN OUT PKSPIN_LOCK SpinLock
|
||||
);
|
||||
|
||||
//
|
||||
// Interrupt Functions
|
||||
|
||||
@@ -107,11 +107,6 @@ Author:
|
||||
#define KINTERRUPT_DISPATCH_CODES 106
|
||||
#endif
|
||||
|
||||
//
|
||||
// Get KPCR
|
||||
//
|
||||
#define KeGetPcr() PCR
|
||||
|
||||
#ifdef NTOS_MODE_USER
|
||||
|
||||
//
|
||||
|
||||
Reference in New Issue
Block a user