- C89 compliance for "dbgprint"
- Fix more calling convention declarations in the DDK and gdi32
- Define noreturn attribute for crt's abort compatibly
- Fix some of the mess in psdk's intrinsics -- this needs some major clean up.
- Define DbgPrintEx the same way in debug.h as in NDK and DDK
- UUID doesn't need Wine-specific types -- include standard PSDK headers.
svn path=/trunk/; revision=42233
- Implement several changes to PFN database management:
- The PTEs for the PFN Database are now created by ARM3. Unlike the old code which create PTE for every page on the machine, ARM3 only creates PTEs to account for pages that should be in the PFN database.
- A second related change is what "pages should be in the PFN database". Previously, reserved or otherwise non-existing (ie: holes) memory regions would get a PFN entry created and marked as "BIOS". This is wasteful and not compatible with Windows: there should not be PFN entries created at all.
- So we removed BIOS PFN entries, and now only create PTEs for valid pages as listed in the physical memory ranges.
- This allows machines with "holes" in their physical address space not to waste dozens of MBs of nonpaged pool
- Also saves memory on regular machines too, since 1-4MB worth of memory will now not be in the DB anymore
- To keep track of pages that are invalid/unknown/ignored, there is now a "PFN Bitmap". This bitmap has one bit set for each valid PFN in the database.
- And so, MiGetPfnEntry now also validates that, if there is a PFN Bitmap, the requested PFN is actually present in the database.
- This introduces a major functional change: device pages, reserved pages, and other BIOS pages cannot be referenced, shared, or managed in any meaningful way.
- We have attempted to fix parts of the OS that depended on this, but there may still be bugs.
- A known issue may be an assertion during reboot and/or shutdown in the hyperspace mapping function. It is currently safe to simply "cont" in the debugger a couple of times.
- We are working on a fix.
svn path=/trunk/; revision=42220
- Define structure packing correctly for msvc.
- Define Ke386EraseFlags for msvc too.
- Don't return a function returning void in a function returning void.
- VideoFadeIn: Don't rely on some fishy gcc extension for allocating memory from the stack -- just use the heap instead.
- Winldr remains
svn path=/trunk/; revision=42218
- Fix several potential crashes
- Fix an infinite loop caused by us sending a discover packet without adding a protocol first (this is exposed by releasing then renewing)
- Fixes bug 4630
svn path=/trunk/; revision=42217
- Define TYPE_ALIGNMENT for msvc.
- Define DbgPrintEx the same way in NDK and DDK
- C_ASSERT is a typedef, so don't put it inside functions as msvc doesn't allow this.
- Kernel now *compiles* with RosBE + msvc _and_ our DDK. Linker errors from the ninth circle of hell remains.
svn path=/trunk/; revision=42216
- Use Sleep() to wait when we have no interfaces because select() will fail and return without waiting
- Use WSAGetLastError() instead of errno
svn path=/trunk/; revision=42187
- Make MxGetNextPage return the lowest free physical page, not the highest.
- This way we fragment the address space less.
- Also makes calculation of "forgotten" pages when we build the PFN database earlier.
- Remove MmAllocEarlyPage and use MxGetNextPage instead.
svn path=/trunk/; revision=42175