Commit graph

44061 commits

Author SHA1 Message Date
Aleksey Bragin de743e0f9b [HEAP]
- Move (and cleanup) private heap definitions and structure to a standalone header file heap.h. It's explicitly included in heap_rewrite.c and heapdbg.c to prevent conflicts with the existing heap manager in heap.c.

svn path=/trunk/; revision=49071
2010-10-09 13:02:34 +00:00
Aleksey Bragin c76fdb3cd6 [HEAP]
- Implement setting/getting heap user values and flags (very easy provided heap design is now proper). Amount of winetest failures is down to 12 (but 3 crashes in child processes).

svn path=/trunk/; revision=49069
2010-10-09 12:49:30 +00:00
Amine Khaldi 60ede58f09 [RAPPS]
Igor Paliychuk:
- Update some broken links.
- Changed the cyrillic "P" to a latin "P" in the beginning of the VBox driver's russian and ukrainian descriptions (rapps doesn't display it when it's cyrillic).

svn path=/trunk/; revision=49067
2010-10-09 10:35:35 +00:00
Pierre Schweitzer ee975c3ca3 [NTDLL]
Fixed build

svn path=/trunk/; revision=49065
2010-10-09 10:01:37 +00:00
Aleksey Bragin a6dc26d616 [RTL]
- Fix RtlSetUserFlagsHeap declaration and definition.

svn path=/trunk/; revision=49064
2010-10-09 09:19:33 +00:00
Aleksey Bragin a87de8e0b6 [KERNEL32]
- Revert incorrect changes from 34404 and 40910: RtlSetUserFlagsHeap() doesn't set usual heap flags, it sets special user-settable heap entry flags. With the new heap manager such usage corrupts heap integrity (not to say prototype of this function is incorrect).
- RtlReAllocateHeap() is supposed to copy user values and flags so there is no need to set them afterwise again.
- Fix a typo in comments.

svn path=/trunk/; revision=49063
2010-10-09 09:15:50 +00:00
Aleksey Bragin 46819fb8ac [HEAP]
- Roel Messiant: Fix infinite loop in RtlDestroyHeap if heap contained big blocks.

svn path=/trunk/; revision=49058
2010-10-08 20:17:39 +00:00
Aleksey Bragin 129f3f133d [HEAP]
- Set proper heap flags (tail and free checking) in case heap validation is enabled. Fixes another bunch of winetests.

svn path=/trunk/; revision=49057
2010-10-08 19:30:23 +00:00
Eric Kohl 8618ae85de [EVENTLOG]
Rename the EVENTSOURCE struct to LOGHANDLE because it is currently used like a handle object. The EVENTSOURCE struct will be added again in one of the next commits.

svn path=/trunk/; revision=49055
2010-10-08 18:48:54 +00:00
Aleksey Bragin 3dea59438f [HEAP]
- Roel Messiant: Remove old-style Peb->ProcessHeaps assignment from RTL, it's already done by MM.
- Roel Messiant: Fix a typo (missing else) between two if branches, which fixes commit routine support.
- Properly save requested size if 0 was given (1 should be allocated, but 0 saved as a requested amount). Fixes winetests.
- Remove unnecessary dprints.

svn path=/trunk/; revision=49048
2010-10-08 09:47:48 +00:00
Aleksey Bragin 16d1640085 [NTDLL]
- Load image execution options before creating process heap (so that GlobalFlag overrides can be taken into account).
- Make LdrQueryImageFileExecutionOptions avoid heap usage when possible (and when it's not possible, fail with out of memory status).
- Fixes a dramatic count of ~100 failures in "kernel32_winetest heap".

svn path=/trunk/; revision=49045
2010-10-07 21:12:10 +00:00
Pierre Schweitzer 91397f1a7a [NTOSKRNL]
On boot, while loading drivers, make starting Loader Block available to the whole kernel to let drivers calling on-boot functions that may need it.
One of them will be implemented later.

svn path=/trunk/; revision=49044
2010-10-07 20:20:10 +00:00
Pierre Schweitzer 459c241f70 [NTOSKRNL]
Fixed a FIXME in ARC names by implementing IopStoreSystemPartitionInformation(). This make ReactOS writing boot paths to registry.

svn path=/trunk/; revision=49043
2010-10-07 20:08:24 +00:00
Pierre Schweitzer 762f577918 [NTOSKRNL]
Don't ignore IopCreateArcNames() return while booting.
At the moment, it's just returning STATUS_SUCCES but it will be changed later.

svn path=/trunk/; revision=49042
2010-10-07 19:58:22 +00:00
Eric Kohl d6c9064e9d Fix indentation. No code changes.
svn path=/trunk/; revision=49041
2010-10-07 19:58:04 +00:00
Pierre Schweitzer 5686788c8b [FREELDR]
Fix CDs checksum computation
[NTOSKRNL]
Fix ARC names accordingly

svn path=/trunk/; revision=49040
2010-10-07 19:16:09 +00:00
Giannis Adamopoulos 40dba5e526 [win32k]
- Fix an ancient FIXME in PATH_PathToRegion

svn path=/trunk/; revision=49039
2010-10-07 19:14:49 +00:00
Sir Richard 5d9bbfb9db [NTOS]: Fix copy/paste error.
svn path=/trunk/; revision=49037
2010-10-07 17:41:20 +00:00
Sir Richard 28db1e4106 [NTOS]: Hackfix a hack. Should get rid of the recent VAD assert in user32/bpp changes.
svn path=/trunk/; revision=49036
2010-10-07 17:35:25 +00:00
Sir Richard 12e7ae649b [NTOS]: Add support for user-mode VAD faults on page tables (just a couple lines of extra code).
[NTOS]: Add support for user-mode VAD demand zero faults.
[NTOS]: Remove broken ASSERT.

svn path=/trunk/; revision=49035
2010-10-07 17:27:23 +00:00
Aleksey Bragin 9dabd64349 [HEAP]
- Fix allocated/free memory fillers to match those Windows uses (winetests)
- Add missing coalesce-on-free flag check in RtlCreateHeap
- Turn on tail check/pattern filling in RtlAllocateHeap.
- Add extra stuff storage support in RtlAllocateHeap and its helpers.
- Set win32 statuses where necessary.
- Return success in RtlValidateHeap to reduce spam when running winetest.

svn path=/trunk/; revision=49034
2010-10-07 17:05:29 +00:00
Aleksey Bragin 41b74ee1f9 [NTDLL]
- Fix a typo which always set page heap enabled to true.

svn path=/trunk/; revision=49033
2010-10-07 16:51:19 +00:00
Sir Richard 538c2dfa33 [NTOS]: My attempt at making bugchecks a thing of the past has failed, someone has caught the typo. Bugchecks will now happen in ReactOS again instead of being ignored. Maybe you can "forget" to merge this one with the release branch? ;-)
svn path=/trunk/; revision=49031
2010-10-07 13:52:42 +00:00
Aleksey Bragin b973ba44ac [WIN32K]
- Roel Messiant: Return correct address in the user heap commit routine. Should fix boot with the new heap manager.

svn path=/trunk/; revision=49029
2010-10-07 07:56:26 +00:00
Aleksey Bragin 9a781f022b [ADVAPI32]
- Roel Messiant: Properly handle STATUS_BUFFER_TOO_SMALL in RegEnumValueW implementation.
See issue #2492 for more details.

svn path=/trunk/; revision=49028
2010-10-07 07:21:08 +00:00
Matthias Kupfer d584d4e50e Carlo Bramini <carlo DOT bramix AT libero DOT it>
- Fix for render status bar after changing line wrap and flicker issue.
- See issue #5635 for details.

svn path=/trunk/; revision=49027
2010-10-06 22:11:12 +00:00
Eric Kohl 44e8c0e71a [RTL]
Change RtlLockBootStatusData prototype according to http://cookp.com/%2F/thread/1111206/how%20can%20i%20detect%20last%20boot%20success

svn path=/trunk/; revision=49026
2010-10-06 20:43:51 +00:00
Aleksey Bragin 3e76d8224e [NTDLL]
- LoadImageFileExecutionOptions() improvements:
 * Apply certain heap flags if the process is being debugged (only if NtGlobalFlags is not overridden).
 * Implement enabling page heap and reading image-specific configuration values.
- Add page heap configuration values to the Heap Manager.

svn path=/trunk/; revision=49025
2010-10-06 20:34:30 +00:00
Aleksey Bragin 257ce7ee90 - Respectively fix incorrect data type for GlobalFlags in ReactOS registry.
svn path=/trunk/; revision=49022
2010-10-06 17:25:15 +00:00
Aleksey Bragin 83b1daf183 [NTDLL]
- Fix loading of GlobalFlags in Image File Execution Options. I really wonder who had that brilliant idea that bitwise flags would be stored as a string in the registry.
- If there is a GlobalFlags value specified in the registr for that specific image, it means that value should overwrite NtGlobalFlags. Fix that too (previously it was ORing which made no sense).

svn path=/trunk/; revision=49021
2010-10-06 17:18:22 +00:00
Kamil Hornicek 2ff3b055ce [CMD]
Use the full name we get from SearchForExecutable when building the command line for CreateProcess so we get proper name in argv[0] later.

svn path=/trunk/; revision=49020
2010-10-06 16:44:09 +00:00
Sir Richard c617645ef3 [NTOS]: Fix bugs in the VAD algorithms, we should be rounding up, not down.
svn path=/trunk/; revision=49019
2010-10-06 16:25:30 +00:00
Timo Kreuzer 82280e1435 [NTOSKRNL]
Alternative workaround for pentium lock errata: Instead of burdening the page fault handler, just mark the IDT page as Write-Through if the bug is present. According to http://www.rcollins.org/Errata/Dec97/F00FBug.html it shall prevent the lock up. Please test. Dedicated to elhoir.

svn path=/trunk/; revision=49018
2010-10-06 14:39:56 +00:00
Ged Murphy 90bd7eaa64 - Implement monitor bitmap support for the display dialog
- Fix incorrect codepage values
- Look for applets in windows dir as well as system dir
- Patch by Carlo Bramix
See issue #3158 for more details.

svn path=/trunk/; revision=49017
2010-10-06 14:13:00 +00:00
Sir Richard 1689cea28b [NTOS]: Temporary debugging.
svn path=/trunk/; revision=49016
2010-10-06 13:32:58 +00:00
Giannis Adamopoulos aeb9c9ca8f [win32k]
- co_UserDestroyWindow: Send WM_PARENTNOTIFY message in correct order

svn path=/trunk/; revision=49014
2010-10-06 13:10:00 +00:00
Timo Kreuzer b70ce19480 remove svn:merginfo
svn path=/trunk/; revision=49013
2010-10-06 12:30:23 +00:00
Timo Kreuzer 888d3b5244 [NTOSKRNL]
- Add amd64 versions of MI_MAKE_PROTOTYPE_PTE and MiProtoPteToPte
- Remove outdated external declarations
- disable deprecated amd64 code
- use MiFillSystemPageDirectory only for 2 paging levels
- Fixes amd64 build

svn path=/trunk/; revision=49012
2010-10-06 12:16:51 +00:00
Giannis Adamopoulos 8ee22f5275 [win32k]
- Send WM_PARENTNOTIFY message when a window is destroyed

svn path=/trunk/; revision=49011
2010-10-06 11:14:58 +00:00
Aleksey Bragin b2e1788e8e [RTL/HEAP]
- Implement missing parts of a virtual block allocations support.
- Minor fixes to handling extra stuff in heap blocks.
- Wine's heap regression tests now run through the end without crashing and show 277 failures.

svn path=/trunk/; revision=49010
2010-10-06 09:19:24 +00:00
Sir Richard 3ca783f940 Lame... build fix.
svn path=/trunk/; revision=49008
2010-10-06 04:34:36 +00:00
Aleksey Bragin 850e197b58 [RTL/HEAP]
- First commit of a heap manager rewrite. It introduces a totally new heap manager, with the following features:
* Actually resembles real NT's heap manager;
* Based on data structures similar to Windows 2003 and Vista+'s heap structures;
* Supporting advanced heap flags (e.g. useful for debugging);
* Substantially lower fragmentation rates (and thus speed and reliability) than the existing Wine's implementation. It's going to be further enhanced by adding a frontend allocator (for example, as lookaside lists, or as a Low Fragmentation Heap alike frontend in Vista+ systems);
* Real support for user-defined flags and native support for user-defined values;
* Native support for a custom commit routine, which is very important for trunk's win32 subsystem;
* Reserving, committing, decommitting and freeing on the fly, unlike existing heap manager which prefers to reserve and commit as much as possible, and doesn't decommit when it's no longer necessary;
* Support for per process heaps, with a proper lock;
* Reserved support for a special so-called debug heap allocator (to be implemented in heapdbg.c) which will be useful for finding heap corruptions.

The committed code is a result of a month of work, and is a heavy work-in-progress one. It already implements the bare minimum required to boot to 3rd stage and run FireFox 3, however many rare codepaths are not implemented yet and there is some maintenance work to do (e.g. move structures and defines to a standalone header file). A list of used references is stated in the header of a source file for now.

svn path=/trunk/; revision=49007
2010-10-05 21:43:48 +00:00
James Tabor da848d062f - Fix build from 49005.
svn path=/trunk/; revision=49006
2010-10-05 20:18:04 +00:00
James Tabor 76bac9c7df [Win32k|User32]
- Implement NtUserGetMenuIndex, see Bug 5528.

svn path=/trunk/; revision=49005
2010-10-05 20:13:32 +00:00
Sir Richard 44e3333652 [NTOS]: High-level interface fixes to NtAllocateVirtualMemory/NtFreeVirtualMemory:
- Validate MEM_LARGE_PAGES, MEM_PHYSICAL flags. Check for permission to use MEM_LARGE_PAGES.
        - Validate protection mask.
        - Validate MEM_RELEASE and MEM_DECOMMIT.
        - Perform correct SEH in NtFreeVirtualMemory.
        - Protect against overflows past VAD/User address ranegs.
        - Only reference the process by handle if this isn't already the current process.
        - If this isn't the current process, attach to it during the duration of the VM operation.

svn path=/trunk/; revision=49004
2010-10-05 20:00:32 +00:00
Aleksey Bragin 58ed576929 [RTL]
- Fix heap code to actually use the new lock instead of using RTL_CRITICAL_SECTION.
- Fix a ROUND_UP and ROUND_DOWN macros: it is a *rule* to wrap every argument in braces in a macro, otherwise shit happens. A couple of days were lost fighting a strange bug in the new heap manager code where it was doing ROUND_UP(Heap + 1, PAGE_SIZE)...

svn path=/trunk/; revision=49003
2010-10-05 19:33:42 +00:00
Sir Richard d8f6e7ccc9 [NTOS]: Build fix.
svn path=/trunk/; revision=49002
2010-10-05 17:01:41 +00:00
Giannis Adamopoulos 947bd17104 [win32k]
- Don't place new windows with default position at the top left corner of the screen
See issue #5484 for more details.

svn path=/trunk/; revision=49001
2010-10-05 16:41:38 +00:00
Sir Richard 553f068d37 [NTOS]: Fix whitespace typo in comment (two spaces instead of one).
That's right. I'm not a fun person.

svn path=/trunk/; revision=49000
2010-10-05 15:59:47 +00:00
Sir Richard 7d21cf7abd [NTOS]: Delete a bunch of junk, 5 less files in Mm now (also moved some functions around). Delete unused functions where found.
[NTOS]: The modified page writer should run at a high priority such as 27, not in idle mode at priority 1 -- otherwise dirty pages never get flushed out.
[NTOS]: Reimplement MmGetFileNameForAddress, MmGetFileNameForSection, MmGetFileObjectForSection to also support ARM3 sections. Shouldn't affect anything other than the user-mode debugging support.

svn path=/trunk/; revision=48999
2010-10-05 15:55:52 +00:00