Commit graph

37723 commits

Author SHA1 Message Date
ReactOS Portable Systems Group 3e04cabe4e - Create a double-mapping PTE for the shared user data region and fault it in whenever a process touches that address.
- Remove the old hack which used the PCR's page frame number to create a fake PTE each time to reference it, basing on the fact that the shared user data region was on the same page as the PCR on certain architectures.

svn path=/trunk/; revision=42252
2009-07-27 02:13:19 +00:00
ReactOS Portable Systems Group 059da34e93 - Create \dev\physmem section during section initialization, not later.
- Setup SharedUserData settings during Phase 0, not Phase 1. Fixes an old bug where the Inbv driver assumed ReactOS was in "server mode" simply because the default SharedUserData->NtProductType was "0" (which is an invalid product type, but it's != NtProductTypeNt).
  - Also fixed it such that this reports NtProductServer, which is what ReactOS reports to be (Windows 2003 Server SP 1).
- Initialize the modified page writer and balancer thread in phase 1, not phase 2.
  - Phase 2 should make the executive pageable, but I don't think this is supported yet...


svn path=/trunk/; revision=42251
2009-07-27 00:52:44 +00:00
ReactOS Portable Systems Group e754e12bd3 - Fix a ridiculous copy-paste-error-while-writing-the-commit-log error. Sorry for breaking the build!
svn path=/trunk/; revision=42250
2009-07-27 00:17:38 +00:00
ReactOS Portable Systems Group 5899e14bd1 - Delete the blaoted, overweight and slow nonpaged pool implementation.
- Plug-in support to use the ARM nonpaged pool instead.
- This patch has been tested for over 2 months and all known regressions were fixed.
  - Thanks to Aleksey Bragin for providing a pool regression suite.
  - Thanks to Aleksey Bragin for providing initial implementation details and code from older attempts.
  - Thanks to http://uninformed.org/?v=4&a=2&t=txt and http://www.dfrws.org/2008/proceedings/p58-schuster_pres.pdf for allocation strategies.


svn path=/trunk/; revision=42249
2009-07-27 00:14:56 +00:00
ReactOS Portable Systems Group 1eba02fc2f - Do not print out ReactOS nonpaged pool VA address range anymore, since it will be deprecated.
svn path=/trunk/; revision=42248
2009-07-27 00:11:39 +00:00
ReactOS Portable Systems Group 360720bdb6 - The old nonpaged pool statistic functions (TAB+xxx) in KDBG are incompatible with newer nonpaged pool implementation -- remove them.
- The NtQuerySystemInformation API's pool information levels provide the same information, when implemented properly.


svn path=/trunk/; revision=42247
2009-07-27 00:10:37 +00:00
ReactOS Portable Systems Group 8257a252cb - DebugPool implementation is not compatible with newer nonpaged pool algorithms, so remove support for nonpaged pool debugging.
- Special pool implementation will restore this functionality.

svn path=/trunk/; revision=42246
2009-07-27 00:09:09 +00:00
ReactOS Portable Systems Group a6757c9637 - Implement the algorithms for pool allocation and de-allocation:
- Only tested/works with nonpaged pool for now.
  - No support for session pool or special pool.
  - No support for pool tagging.
  - No support for accounting (free/available pages, etc).
  - No optimizations other than your average combine-with-previous-free and combine-with-next-free mechanisms to avoid fragmentation.
  - No support for debugging.
  - No consistency/validation checks.
  - Heavily commented for the inquiring mind.
  - Thread/MP safe.
- Not used yet.


svn path=/trunk/; revision=42245
2009-07-27 00:05:45 +00:00
Timo Kreuzer e917c6e96d Some fixes for CLIENTINFO, based on symbol files
svn path=/trunk/; revision=42243
2009-07-26 22:57:05 +00:00
Timo Kreuzer 250737d475 [rbuild] Implement delay import support for gcc in rbuild.
As soon as you declare a library import with 
<library delayimport="true"> you will link to the autogenerated delayimportlib. This will currenlty not work without a patched version of dlltool.

svn path=/trunk/; revision=42242
2009-07-26 22:36:55 +00:00
Timo Kreuzer 3f10e1dc73 Fix 64bit compilation issues.
svn path=/trunk/; revision=42241
2009-07-26 22:34:03 +00:00
Timo Kreuzer 7e526ac7de Hey Arch, thanks for breaking other architectures...
svn path=/trunk/; revision=42240
2009-07-26 21:46:21 +00:00
ReactOS Portable Systems Group 6182f013fe - Initialize MmLowestPhysicalPage to -1, otherwise setting this value will never work properly since we'll never find a page lower than 0 (the default laoder-initialized value).
- Fixed by Stef.


svn path=/trunk/; revision=42237
2009-07-26 19:44:27 +00:00
James Tabor c8b2a78d5b - At a minimum set the desktop to global class.
svn path=/trunk/; revision=42236
2009-07-26 16:57:34 +00:00
Stefan Ginsberg 25aa6b6a41 - Revert winbase.h interlocked intrinsic change for now *sigh*
svn path=/trunk/; revision=42235
2009-07-26 16:18:56 +00:00
James Tabor e0b7b058c3 - [Win32k] More Class work. Moved to use thread and process information structures.
- Tested wine, Firefox 1.15.xx and AbiWord 2.6.8.

svn path=/trunk/; revision=42234
2009-07-26 16:17:50 +00:00
Stefan Ginsberg c43cc84996 - Misc fixes for msvc:
- 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
2009-07-26 15:36:35 +00:00
Dmitry Chapyshev 92a18fff94 - Use documented structure instead array
- Add some defines

svn path=/trunk/; revision=42232
2009-07-26 13:16:19 +00:00
James Tabor b163f7f34a - Fixed event code. Remove junk too.
svn path=/trunk/; revision=42230
2009-07-26 12:27:15 +00:00
Dmitry Gorbachev 1632e8b1db Silence a warning.
svn path=/trunk/; revision=42229
2009-07-26 09:55:46 +00:00
Dmitry Gorbachev 015656ff6d Silence a warning.
svn path=/trunk/; revision=42228
2009-07-26 09:52:27 +00:00
Dmitry Gorbachev 79b4bf14f7 Silence a warning.
svn path=/trunk/; revision=42227
2009-07-26 09:52:00 +00:00
ReactOS Portable Systems Group c417ef7e62 - Get rid of the concept and tracking of "mapped pages". The MapCount was never checked anywhere in terms of page accounting -- only the reference count is.
- Fix the issue with the system attempting to map page 0 into hyperspace.

svn path=/trunk/; revision=42226
2009-07-26 08:20:29 +00:00
Cameron Gutman 698ff57ea6 - Begin using ws2help_new
- I have tested this with various applications in ROS
 - Part 2 of 2

svn path=/trunk/; revision=42225
2009-07-26 06:00:32 +00:00
Cameron Gutman a619244941 - Remove our old ws2help in preparation for the transition to ws2help_new
- This will not build
 - Part 1 of 2

svn path=/trunk/; revision=42224
2009-07-26 05:51:30 +00:00
James Tabor 2c0294638d - [Win32k] Moving forward and replace some of the old header types with the new ones. This will continue and start the win32k object manager rewrite. Finding more bugs and this is still a work in progress. Run across the C_ASSERT bug. I see someone else noticed it.
- Finished the user32 system class proc start-up.
- Tested wine, Firefox 1.15.xx and AbiWord 2.6.8.

svn path=/trunk/; revision=42223
2009-07-26 01:59:08 +00:00
Timo Kreuzer c70b54758f Add hack for gnu ld like in mingw lib, as it uses _image_base__ insetad of __ImageBase
svn path=/trunk/; revision=42222
2009-07-26 00:22:57 +00:00
Stefan Ginsberg 31015fdb85 - Fix memory leak from r42218 ;0)
svn path=/trunk/; revision=42221
2009-07-25 22:19:45 +00:00
ReactOS Portable Systems Group 1093de04f2 - This is a HIGH RISK patch. It has been tested on multiple emulators and configurations but requires broader input.
- 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
2009-07-25 21:35:31 +00:00
Stefan Ginsberg fba1aea89e - RamdiskWorkerThread: Don't return IoCompleteRequest as we return void (IoCompleteRequest returns void though), msvc doesn't like this.
- Fix calling convention declaration for scsi function prototypes 

svn path=/trunk/; revision=42219
2009-07-25 20:24:50 +00:00
Stefan Ginsberg 45934cfbe5 - Fix most freeldr compilation issues, most notably:
- 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
2009-07-25 20:17:23 +00:00
Cameron Gutman 849236d3ac - Make ipconfig /renew work even if we haven't got an address yet
- 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
2009-07-25 19:51:54 +00:00
Stefan Ginsberg f9f57c59fc - FIELD_OFFSET returns LONG, not LONG_PTR or size_t.
- 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
2009-07-25 19:38:52 +00:00
Stefan Ginsberg 64f43cb6a5 - Fix a critical bug in ExAllocatePoolWithQuota spotted by msvc. Because of the current POOL_TAGGING mess in wdm.h, ExAllocatePoolWithQuotaTag is defined to ExAllocatePoolWithQuota, so when ExAllocatePoolWithQuota called the with-tag version, it ended up calling _itself_. Fix this by undefining the broken macro.
svn path=/trunk/; revision=42215
2009-07-25 16:53:25 +00:00
Dmitry Chapyshev 0f8b51f5ac - Add stubs for AppCleanup and videoThunk32
- Partially implement capCreateCaptureWindowW and capGetDriverDescriptionW

svn path=/trunk/; revision=42214
2009-07-25 15:57:18 +00:00
Stefan Ginsberg 50eda0f7b9 - Fix incorrect definition of ZwCreateDebugObject after revision 41969 -- spotted by BugBoy
svn path=/trunk/; revision=42213
2009-07-25 15:31:57 +00:00
Stefan Ginsberg dd27bbdbb7 - Leftover 2 from 42210
svn path=/trunk/; revision=42212
2009-07-25 14:55:52 +00:00
Stefan Ginsberg 709b93538f - Leftover from previous commit
svn path=/trunk/; revision=42211
2009-07-25 14:54:31 +00:00
Stefan Ginsberg bb2feeb63e - Fix most of the network stack for msvc (except tcpip and oskittcp)
- Fix calling convention definitions for ntdd8042.h
- Fix msfs' calling convention

svn path=/trunk/; revision=42210
2009-07-25 14:51:56 +00:00
Stefan Ginsberg ee9bf7482b - Revert 42206 change to ddraw.h as it breaks dxapi
svn path=/trunk/; revision=42209
2009-07-25 14:32:06 +00:00
Stefan Ginsberg d8d66829d7 - Make ks and portcls compile under msvc
svn path=/trunk/; revision=42208
2009-07-25 14:06:06 +00:00
Stefan Ginsberg ac4633793f - Make most of the the video stack compile with msvc
svn path=/trunk/; revision=42206
2009-07-25 13:15:22 +00:00
Stefan Ginsberg 87b36d171a - Make mp HAL MSC compatible
svn path=/trunk/; revision=42205
2009-07-25 11:44:27 +00:00
Stefan Ginsberg 23abd61d3e - Fix some kernel MSC compilation issues:
- ShutdownThreadMain: Define SMP-only variables compatibly
- MmArmInitSystem: Define MiNonPagedPoolStart and MiNonPagedPoolLength externs compatibly
- KdbpCallMainLoop: Add VOID to parameter list

svn path=/trunk/; revision=42204
2009-07-25 11:43:48 +00:00
Aleksey Bragin 21777b7cab - Create a solid black brush for background color of a ConsoleWindowClass.
svn path=/trunk/; revision=42202
2009-07-25 10:24:41 +00:00
Dmitry Chapyshev d86c7f9de6 - Implement capCreateCaptureWindowA and capGetDriverDescriptionA (based on Wine code)
svn path=/trunk/; revision=42198
2009-07-25 09:41:17 +00:00
Dmitry Chapyshev 3b72642a0a - Add avicap32 (stubs only)
- Add mfc42u.dll, msvbvm50.dll, msvbvm60.dll, msvcirt.dll optional entries to reactos.dff

svn path=/trunk/; revision=42197
2009-07-25 09:28:18 +00:00
Dmitry Gorbachev b2085629b4 Do not fail when compiling with GCC 4.4.1
svn path=/trunk/; revision=42196
2009-07-25 09:24:30 +00:00
Dmitry Gorbachev 16aca3f92f Add / update Czech translations. Radek Liska. Bugs #4707 and #4708.
svn path=/trunk/; revision=42195
2009-07-25 09:18:52 +00:00
Dmitry Gorbachev 5687429f69 Undo part of r42190. Sorry.
svn path=/trunk/; revision=42194
2009-07-25 07:59:18 +00:00