- Fix boot.
- The lack of colorful poetry is brought to you by cogent human beings on the West Coast whom you should be thankful haven't gone to bed yet.
svn path=/trunk/; revision=41577
- Implement System PTE allocator (MiReserveAlignedSystemPtes and MiReserveSystemPtes). Very simple yet functional, no optimizes for now.
- Allocate 32 zeoring PTEs from the System PTE pool.
- Not used yet, only the allocation is made to test the current framework.
- Tested on VirtualBox, QEMU and VMWare with RAM sizes from 128MB to 1536MB with no problems.
svn path=/trunk/; revision=41575
- DO NOT MAP HYPERSPACE PTEs as GLOBAL! They are now mapped as local, which might fix some really strange bugs that could've occured in the past.
- Use MiPteToAddress instead of manually doing the bitmagic when mapping a page into hyperspace.
svn path=/trunk/; revision=41574
- Secondly, initialize hyperspace in ARM³ now, at the correct place:
- Also, create the hyperspace PDE here, and not in FreeLDR, which was incorrect in the first place.
- This might help booting Windows/WinLDR.
- Install-tested w/ networking, with no issues found, on:
- Virtual Box 2.4
- VMWare 6.5
- QEMU 0.9.0
- PEBKAC?
svn path=/trunk/; revision=41573
- Add a new flag to MmGetContigousPages to specify if these pages should be zeroed or not. Allows the nonpaged pool pages not to get automatically zeroed when allocated (the NP pool allocator can do this by itself later). This allows initial nonpaged pool to be allocated before hyperspace is ready.
svn path=/trunk/; revision=41572
- ARM³ (Alternate ReactOS Memory Management Module) "stuff" is not ACORN Risc Machines (ARM) Port "stuff".
- We are lucky this user made this change before the rest of the code was checked in -- hyperspace, MDLs, nonpaged pool, kernel stacks, I/O mappings, noncached memory and contigous memory will soon all be built on ARM³ -- good thing this wasn't the case yet!
- Recommend this user gets banned for reverting code without approval within the 24hr grace period in ReactOS guidelines.
- If you have a bug to report, use Bugzilla, not your head as a sledgehammer.
svn path=/trunk/; revision=41570
modified dll/win32/kernel32/misc/actctx.c
modified dll/win32/kernel32/misc/lang.c
C89 compliance
modified dll/win32/kernel32/k32.h
Include <limits.h>
modified dll/win32/kernel32/misc/res.c
Hey Arch, instead of copying and pasting definitions from <wine/list.h>, why don't you include it?
svn path=/trunk/; revision=41560
Explicitly include <pseh/pseh2.h>
modified dll/ntdll/ldr/utils.c
Use ANSI C variadic macros, instead of hacks
ntdll now compiles with Visual C++
svn path=/trunk/; revision=41556
- Check WrapperTable.KdpPrintRoutine.
- Allow to use GDB (/DEBUGPORT=GDB) and have debug output (/DEBUGPORT=COM1) at the same time.
svn path=/trunk/; revision=41534
- Use 7000 for systems with 19MB of RAM or less, 11000 for systems between 19 and 32MB of RAM, and 22000 for systems with more than that.
- Windows will go up to 50000 on server machines, but this is likely not needed now (22000 system PTEs is roughly 100 MB).
- This now affects the calculation of MmNonPagedSystemStart, which is now correct and reflects the nonpaged address space of the system.
- System PTEs are not yet initialized (but their page tables are mapped by the same code which maps nonpaged pool expansion VA page tables).
svn path=/trunk/; revision=41529
- Just supports expansion space for now, not system space.
- Very basic initialization of the accounting structures required.
- Sets up the first two system PTE clusters for the space (the first contains the linkage, the second contains the sizage).
- Called from MiInitializeArmPool.
svn path=/trunk/; revision=41528
- Do some additional accounting to keep track of initial nonpaged pool range and size.
- Create and initialize the free page lists, and free page entries.
- Validate that the initial nonpaged pool address space was properly mapped.
- Validate that the expansion nonpaged pool address space is unmapped, and prepare to map it.
svn path=/trunk/; revision=41527
- Define the nonpaged system address space as done on Windows (see init.c for a brief introduction and source reading materials on this).
- Size up the ARM pool as done on Windows (again, see init.c for documentation on this).
- Create the PDEs for the expansion pool and the initial pool.
- Allocate the pages for the initial pool, and map them.
- Unlike ReactOS, ARM³ does the right thing and uses physically continuous pages.
- Define two new static MEMORY_AREAs for the expansion and initial ARM pool.
- No actual pool code/implementation is available yet, we are just slicing up the address space for now (mhmm... cake!)*.
* There is no cake.
svn path=/trunk/; revision=41525
- It now determines the parameter type based on the key instead of the ParameterType passed by the caller (documented on MSDN)
- It also always sets (*ParameterValue)->ParameterType to NdisParameterInteger when reading an integer or hex integer value (documented on MSDN)
- This will fix miniport drivers that supply a bogus ParameterType value because it is ignored by NDIS on NT
svn path=/trunk/; revision=41521