- 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
- This fixes booting on systems which required enough page tables such that the balancer refused the allocation of new pages (around 64+16 pages for page tables of 4KB each, ie. 320MB).
svn path=/trunk/; revision=41511
- Paged pool MEMORY_AREA is now initialized during paged pool initialization.
- Remaining MEMORY_AREAs (KPCR and KUSER_SHARED_DATA) are now created in MiInitSystemMemoryAreas (and they are also static) instead of MmInitVirtualMemory, since this is really what the function was doing.
- The page table and hyperspace MEMORY_AREAs are still initialized the same, but are also now static.
- The creation of these core/system memory areas is now done much earlier. For example, hyperspace memory area is now created before hyperspace is mapped.
- Nonpaged pool, paged pool, and working set initialization is now done outside MiInitSystemMemoryAreas and roughly at the same time as before.
- Removed MmInitVirtualMemory as it had become a kitchen sink of random Memory Manager initialization code.
- I/O and Local APIC MEMORY_AREAs are not created anymore, since that should be done by the HAL, not the kernel.
svn path=/trunk/; revision=41510
- MEMORY_AREA structures are typically allocated from nonpaged pool, under the assumption it exists.
- However, nonpaged pool itself is described by a MEMORY_AREA. Right now, this MEMORY_AREA is created after nonpaged pool has been initialized (it is a miracle this works).
- This new flag allows MEMORY_AREA structures to be allocated statically, allowing the description of certain system address space components, themselves prerequisites to nonpaged pool creation, as well as the nonpaged pool component itself, before nonpaged pool has been initialized.
- This is not yet used.
svn path=/trunk/; revision=41509
- Right now, it is only used for allocating new page tables for kernel-mode mappings.
- This consumer's pages are never zeroed automatically (this is a more endemic ReactOS problem -- kernel pages are zeroed when they shouldn't be).
- New page tables, however, should indeed be zeroed, so now they are zeroed manually with RtlZeroMemory.
- The page zero function is not called anymore, and a useless zero-space hyperspace mapping is thus saved each time this happens.
- Because of this, zero-space hyperspace mappings are required much later in the Memory Manager's initialization steps than before.
svn path=/trunk/; revision=41508
- Also add MiPteToAddress to complement MiAddressToPte. This returns the VA for a given PTE. Bonus points if you can figure out the bit magic.
svn path=/trunk/; revision=41507
- Also move out the extern definitions outside of the inline, so that other functions may access them and consequently removing a needless UNREFERENCED_PARAMETER.
svn path=/trunk/; revision=41505
- Get rid of PHYSICAL_PAGE structure and move to WinNT MMPFN structure instead:
- Define a preprocessor legacy mapping so that freelist.c receives only minimal changes:
- This mapping allows the old meanings of the PHYSICAL_PAGE fields to remain, but now part of the new MMPFN structure
- Other modules (balance.c and mm.h) use the new structure directly, since only 3 lines of code required changes.
- The NT structure is 8 bytes smaller than the ReactOS structure, which saves about 1MB of physical memory and kernel VA space
for each 512MB of RAM, or 25% less. This also enables ReactOS to support 25% more memory than before (64GB instead of 48GB).
svn path=/trunk/; revision=41503
- Implement reading/writing into cyclic buffer for IPortPinWaveRT
- Allocate an audio buffer when the pin is initialized. This needs to be changed once KSPROPERTY_RTAUDIO_BUFFER is implemented
- Fix a bug in PcNewPort
- Remove obsolete code from IPortWavePci
- Return the allocated MDL from IPortWaveRTStream::AllocateContiguousPagesForMdl
- Create a system thread when using IServiceGroup::RequestDelayedService
- ReactOS now partly supports Vista audio driver model
svn path=/trunk/; revision=41497