- Separe ARM3 Init into 3 defined phases:
authorReactOS Portable Systems Group <ros-arm-bringup@svn.reactos.org>
Wed, 22 Jul 2009 07:33:22 +0000 (07:33 +0000)
committerReactOS Portable Systems Group <ros-arm-bringup@svn.reactos.org>
Wed, 22 Jul 2009 07:33:22 +0000 (07:33 +0000)
commit23a2825b036f2a66f2ba478d37596f18421eb569
tree8264585f496db4eaa9c96fab68b35dd299e46f64
parente3ef0343ba246670a41824bf5b0da35fd2692aac
- Separe ARM3 Init into 3 defined phases:
  - 1: No PFN Database exists
  - 2: PFN Database exists
  - 3: ReactOS NP Pool exists (deprecated)
- Cleanup ReactOS Mm init to work with this.
- ARM3 Phase 1 Init now uses pages directly from the physical memory descriptor.
  - This similar to how "MmAllocEarlyPage" used to work.
    - A new function MxGetNextPage now does this.
    - MxGetNextPage can allocate more than just one page however (making it possible to get contiguous physical memory without going through the PFN-based MmAllocateContiguousMemory beast)
    - Also MxGetNextPage will bugcheck with INSTALL_MORE_MEMORY if it runs out of pages.
  - Renamed the physical memory descriptor variables to MxFreeDescriptor, MxOldFreeDescriptor instead of MiFreeDescriptor and MiOrgFreeDescriptor (based on NT symbols)
  - Nonpaged pool PDEs, PFN database PDEs, and initial nonpaged pool PTEs are now allocated through MxGetNextPage.
- Fix an off by one error in the sizing of MxPfnAllocation.
- The PFN database is now fully "owned" by ARM3 in terms of its PDE mappings and VA location at 0xB0000000.
  - ie. MmArmPfnDatabase is now MmPfnDatabase.
  - The actual PFN database entries and setup are still done by the ReactOS Mm.
- Got rid of ARM nonpaged pool allocator test.
- Repositioned ReactOS nonpaged pool (deprecated) after the boot image (used to be after the PFN database).
  - Paged pool follows.

svn path=/trunk/; revision=42131
reactos/ntoskrnl/mm/ARM3/i386/init.c
reactos/ntoskrnl/mm/ARM3/miarm.h
reactos/ntoskrnl/mm/freelist.c
reactos/ntoskrnl/mm/mminit.c