mirror of
https://github.com/reactos/reactos.git
synced 2024-12-29 02:25:17 +00:00
[NTOS:MM] Since the _MMPTE_SUBSECTION structure for x86 (without PAE) uses the SubsectionAddressLow truncated by the least significant three bits, the _CONTROL_AREA, _LARGE_CONTROL_AREA, _SUBSECTION, _MSUBSECTION structures must be 8-byte aligned.
Corresponding checks in MmArmInitSystem() have been removed.
This commit is contained in:
parent
5032a40d33
commit
3c585d0e38
2 changed files with 6 additions and 6 deletions
|
@ -2298,10 +2298,6 @@ MmArmInitSystem(IN ULONG Phase,
|
||||||
MiInitMachineDependent(LoaderBlock);
|
MiInitMachineDependent(LoaderBlock);
|
||||||
|
|
||||||
#if DBG
|
#if DBG
|
||||||
/* The subection PTE format depends on things being 8-byte aligned */
|
|
||||||
ASSERT((sizeof(CONTROL_AREA) % 8) == 0);
|
|
||||||
ASSERT((sizeof(SUBSECTION) % 8) == 0);
|
|
||||||
|
|
||||||
/* Prototype PTEs are assumed to be in paged pool, so check if the math works */
|
/* Prototype PTEs are assumed to be in paged pool, so check if the math works */
|
||||||
PointerPte = (PMMPTE)MmPagedPoolStart;
|
PointerPte = (PMMPTE)MmPagedPoolStart;
|
||||||
MI_MAKE_PROTOTYPE_PTE(&TempPte, PointerPte);
|
MI_MAKE_PROTOTYPE_PTE(&TempPte, PointerPte);
|
||||||
|
|
|
@ -505,7 +505,7 @@ typedef struct _MMSUBSECTION_FLAGS2
|
||||||
} MMSUBSECTION_FLAGS2;
|
} MMSUBSECTION_FLAGS2;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Control Area Structures
|
// Control Area Structures (8-byte aligned)
|
||||||
//
|
//
|
||||||
typedef struct _CONTROL_AREA
|
typedef struct _CONTROL_AREA
|
||||||
{
|
{
|
||||||
|
@ -528,6 +528,7 @@ typedef struct _CONTROL_AREA
|
||||||
ULONG WritableUserReferences;
|
ULONG WritableUserReferences;
|
||||||
ULONG QuadwordPad;
|
ULONG QuadwordPad;
|
||||||
} CONTROL_AREA, *PCONTROL_AREA;
|
} CONTROL_AREA, *PCONTROL_AREA;
|
||||||
|
C_ASSERT((sizeof(CONTROL_AREA) % 8) == 0);
|
||||||
|
|
||||||
typedef struct _LARGE_CONTROL_AREA
|
typedef struct _LARGE_CONTROL_AREA
|
||||||
{
|
{
|
||||||
|
@ -553,9 +554,10 @@ typedef struct _LARGE_CONTROL_AREA
|
||||||
LIST_ENTRY UserGlobalList;
|
LIST_ENTRY UserGlobalList;
|
||||||
ULONG SessionId;
|
ULONG SessionId;
|
||||||
} LARGE_CONTROL_AREA, *PLARGE_CONTROL_AREA;
|
} LARGE_CONTROL_AREA, *PLARGE_CONTROL_AREA;
|
||||||
|
C_ASSERT((sizeof(LARGE_CONTROL_AREA) % 8) == 0);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Subsection and Mapped Subsection
|
// Subsection and Mapped Subsection (8-byte aligned)
|
||||||
//
|
//
|
||||||
typedef struct _SUBSECTION
|
typedef struct _SUBSECTION
|
||||||
{
|
{
|
||||||
|
@ -572,6 +574,7 @@ typedef struct _SUBSECTION
|
||||||
ULONG PtesInSubsection;
|
ULONG PtesInSubsection;
|
||||||
struct _SUBSECTION *NextSubsection;
|
struct _SUBSECTION *NextSubsection;
|
||||||
} SUBSECTION, *PSUBSECTION;
|
} SUBSECTION, *PSUBSECTION;
|
||||||
|
C_ASSERT((sizeof(SUBSECTION) % 8) == 0);
|
||||||
|
|
||||||
typedef struct _MSUBSECTION
|
typedef struct _MSUBSECTION
|
||||||
{
|
{
|
||||||
|
@ -595,6 +598,7 @@ typedef struct _MSUBSECTION
|
||||||
MMSUBSECTION_FLAGS2 SubsectionFlags2;
|
MMSUBSECTION_FLAGS2 SubsectionFlags2;
|
||||||
} u2;
|
} u2;
|
||||||
} MSUBSECTION, *PMSUBSECTION;
|
} MSUBSECTION, *PMSUBSECTION;
|
||||||
|
C_ASSERT((sizeof(MSUBSECTION) % 8) == 0);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Segment Object
|
// Segment Object
|
||||||
|
|
Loading…
Reference in a new issue