reactos.git
12 years ago[ROSAUTOTEST]
Cameron Gutman [Wed, 29 Feb 2012 19:44:44 +0000 (19:44 +0000)]
[ROSAUTOTEST]
- Flush file buffers after writing to the crash recovery journal

svn path=/trunk/; revision=55933

12 years ago[NTOSKRNL]
Pierre Schweitzer [Wed, 29 Feb 2012 19:43:35 +0000 (19:43 +0000)]
[NTOSKRNL]
Fix a bug in FsRtlNotifyCleanup: only remove notification from list when we're about to complete it.

svn path=/trunk/; revision=55932

12 years ago[NTOSKRNL]
Pierre Schweitzer [Wed, 29 Feb 2012 19:29:03 +0000 (19:29 +0000)]
[NTOSKRNL]
Fix formatting, no code change

svn path=/trunk/; revision=55931

12 years ago[NTOSKRNL]
Pierre Schweitzer [Wed, 29 Feb 2012 19:26:43 +0000 (19:26 +0000)]
[NTOSKRNL]
Use LIST_ENTRY not pointer on them as head

svn path=/trunk/; revision=55930

12 years ago[NTOSKRNL]
Pierre Schweitzer [Wed, 29 Feb 2012 19:12:59 +0000 (19:12 +0000)]
[NTOSKRNL]
Get rid off TAG macro

svn path=/trunk/; revision=55929

12 years ago[USBEHCI]
Cameron Gutman [Wed, 29 Feb 2012 19:05:16 +0000 (19:05 +0000)]
[USBEHCI]
- Add back the m_PortResetInProgress hack for broken vbox behavior

svn path=/trunk/; revision=55928

12 years ago[USBHUB]
Johannes Anderwald [Wed, 29 Feb 2012 18:51:07 +0000 (18:51 +0000)]
[USBHUB]
- Check if FDO is root hub fdo
- Partly implement fdo hub initialization
- Implement IOCTL_INTERNAL_USB_GET_DEVICE_HANDLE, IOCTL_INTERNAL_USB_GET_ROOTHUB_PDO

svn path=/trunk/; revision=55927

12 years ago[NTOSKRNL]
Cameron Gutman [Wed, 29 Feb 2012 18:50:07 +0000 (18:50 +0000)]
[NTOSKRNL]
- Add a missing device node flag to legacy reported devices to avoid an assertion failure during installation
- The fact that this was exposed by a change in device node linking order terrifies me

svn path=/trunk/; revision=55926

12 years ago[NTOSKRNL/MM]
Jérôme Gardou [Wed, 29 Feb 2012 17:41:45 +0000 (17:41 +0000)]
[NTOSKRNL/MM]
 - assert PDE ref count consistency everywhere
 - fix the fix(tm) : after reference decrement, the maximum must not be reached

svn path=/trunk/; revision=55925

12 years ago- Fix one more assert in addition to 55921.
Aleksey Bragin [Wed, 29 Feb 2012 17:13:05 +0000 (17:13 +0000)]
- Fix one more assert in addition to 55921.

svn path=/trunk/; revision=55924

12 years ago[USBHUB]
Johannes Anderwald [Wed, 29 Feb 2012 17:08:32 +0000 (17:08 +0000)]
[USBHUB]
- Clean up code, fix memory leaks, check returns codes, add asserts
- Use root device handle which is is prerequisite for usb hub support
[USBLIB]
- Fix root hub handle checks
- Add more code for hub support

svn path=/trunk/; revision=55923

12 years ago[NTOS]: Define the Decommitted PTE structure.
Sir Richard [Wed, 29 Feb 2012 16:58:46 +0000 (16:58 +0000)]
[NTOS]: Define the Decommitted PTE structure.

svn path=/trunk/; revision=55922

12 years ago[NTOSKRNL]: Fix broken UsedPageTableEntries/page table ref counting ASSERTs. The...
Alex Ionescu [Wed, 29 Feb 2012 16:25:43 +0000 (16:25 +0000)]
[NTOSKRNL]: Fix broken UsedPageTableEntries/page table ref counting ASSERTs. The reference can be UP TO 1024, inclusive, but no more. This might fix a bunch of assertions related to this. Thanks to Richard for catching this one during his VAD work.

svn path=/trunk/; revision=55921

12 years ago[USBUHCI]
Johannes Anderwald [Wed, 29 Feb 2012 16:15:05 +0000 (16:15 +0000)]
[USBUHCI]
- Try fix build

svn path=/trunk/; revision=55920

12 years ago[GDI32]
Timo Kreuzer [Wed, 29 Feb 2012 15:34:43 +0000 (15:34 +0000)]
[GDI32]
Fix MSVC warnings

svn path=/trunk/; revision=55919

12 years ago[USBOHCI]
Johannes Anderwald [Wed, 29 Feb 2012 11:06:57 +0000 (11:06 +0000)]
[USBOHCI]
- Fix msvc build

svn path=/trunk/; revision=55918

12 years ago[USBEHCI]
Johannes Anderwald [Wed, 29 Feb 2012 10:59:48 +0000 (10:59 +0000)]
[USBEHCI]
- Fix stack corruption found by msvc
- Fix msvc build

svn path=/trunk/; revision=55917

12 years ago[USBEHCI]
Johannes Anderwald [Wed, 29 Feb 2012 09:41:34 +0000 (09:41 +0000)]
[USBEHCI]
- Fix regressions caused by libusb

svn path=/trunk/; revision=55916

12 years ago[FSRTL]
Art Yerkes [Wed, 29 Feb 2012 09:18:57 +0000 (09:18 +0000)]
[FSRTL]
Import mostly-complete file locking implementation from arty-newcc.

svn path=/trunk/; revision=55915

12 years ago[FSRTL]
Art Yerkes [Wed, 29 Feb 2012 09:18:01 +0000 (09:18 +0000)]
[FSRTL]
Import code from Pierre Schweitzer's fsrtl branch.
- Large MCB and MCB
- Change notification

svn path=/trunk/; revision=55914

12 years ago[USBOHCI]
Johannes Anderwald [Wed, 29 Feb 2012 09:15:42 +0000 (09:15 +0000)]
[USBOHCI]
- Fix regressions introduced by libusb

svn path=/trunk/; revision=55913

12 years ago[NTOSKRNL]
Cameron Gutman [Wed, 29 Feb 2012 06:08:15 +0000 (06:08 +0000)]
[NTOSKRNL]
- Fix linking of device children to respect the enumeration order instead of linking in reverse enumeration order
- PCI cards (and other devices) now enumerate in the correct order

svn path=/trunk/; revision=55912

12 years ago- Missed this bit
Cameron Gutman [Wed, 29 Feb 2012 05:01:31 +0000 (05:01 +0000)]
- Missed this bit

svn path=/trunk/; revision=55911

12 years ago[USBUHCI][USBOHCI][USBEHCI]
Cameron Gutman [Wed, 29 Feb 2012 04:58:27 +0000 (04:58 +0000)]
[USBUHCI][USBOHCI][USBEHCI]
- Don't modify PCI configuration in AddDevice function
[USBEHCI]
- Don't halt the controller while the BIOS still has control of it

svn path=/trunk/; revision=55910

12 years ago[USBOHCI]
Johannes Anderwald [Tue, 28 Feb 2012 22:09:57 +0000 (22:09 +0000)]
[USBOHCI]
- Remove duplicated code
[USBUHCI]
- Use libusb

svn path=/trunk/; revision=55909

12 years ago[USBOHCI]
Johannes Anderwald [Tue, 28 Feb 2012 19:01:02 +0000 (19:01 +0000)]
[USBOHCI]
- Fix build

svn path=/trunk/; revision=55908

12 years ago[USBOHCI]
Johannes Anderwald [Tue, 28 Feb 2012 18:54:30 +0000 (18:54 +0000)]
[USBOHCI]
- Use libusb library
- Cleanup code
[USBEHCI]
- Apply interface changes

svn path=/trunk/; revision=55907

12 years ago[NDK]: Clarify copyright granting and attribution requirements in NDK readme.
Alex Ionescu [Tue, 28 Feb 2012 18:38:28 +0000 (18:38 +0000)]
[NDK]: Clarify copyright granting and attribution requirements in NDK readme.

svn path=/trunk/; revision=55906

12 years ago[NDK]
Timo Kreuzer [Tue, 28 Feb 2012 18:21:34 +0000 (18:21 +0000)]
[NDK]
- Transfer copyright to Alex Ionescu.
- Remove obsolete file

svn path=/trunk/; revision=55905

12 years ago[NDK]: Update readme.txt and commit the license files which were never in the reposit...
Alex Ionescu [Tue, 28 Feb 2012 17:57:16 +0000 (17:57 +0000)]
[NDK]: Update readme.txt and commit the license files which were never in the repository for some reason.

svn path=/trunk/; revision=55904

12 years ago[NTSOKRNL]
Timo Kreuzer [Tue, 28 Feb 2012 17:50:21 +0000 (17:50 +0000)]
[NTSOKRNL]
Remove a broken ASSERT. Fixes MSVC build

svn path=/trunk/; revision=55903

12 years ago[USBEHCI]
Johannes Anderwald [Tue, 28 Feb 2012 17:26:16 +0000 (17:26 +0000)]
[USBEHCI]
- Fix msvc build

svn path=/trunk/; revision=55902

12 years ago[USBEHCI]
Johannes Anderwald [Tue, 28 Feb 2012 15:13:30 +0000 (15:13 +0000)]
[USBEHCI]
- Use libusb library
- Cleanup code

svn path=/trunk/; revision=55901

12 years ago[LIBUSB]
Johannes Anderwald [Tue, 28 Feb 2012 15:01:27 +0000 (15:01 +0000)]
[LIBUSB]
- Add library which implements generic host controller tasks

svn path=/trunk/; revision=55900

12 years ago[USBEHCI]
Johannes Anderwald [Tue, 28 Feb 2012 10:29:37 +0000 (10:29 +0000)]
[USBEHCI]
- Rewrite configuration handling, WIP

svn path=/trunk/; revision=55899

12 years ago[NTOSKRNL]
Cameron Gutman [Tue, 28 Feb 2012 09:30:53 +0000 (09:30 +0000)]
[NTOSKRNL]
- Fix PDE reference counting
- Now only the recursive fault remains as an issue in the page out path

svn path=/trunk/; revision=55898

12 years ago[NTOSKRNL]
Cameron Gutman [Tue, 28 Feb 2012 08:34:16 +0000 (08:34 +0000)]
[NTOSKRNL]
- Change MmDereferencePage to MmReleasePageMemoryConsumer to do proper page usage tracking
- Remove an unnecessary reference and dereference

svn path=/trunk/; revision=55897

12 years ago[EXT2LIB]
Cameron Gutman [Tue, 28 Feb 2012 05:10:40 +0000 (05:10 +0000)]
[EXT2LIB]
- Fix formatting FAT or NTFS volumes into EXT2 by defining ZAP_BOOTBLOCK and fixing a bug in zap_sector()
[USETUP]
- Enable ext2 as an option in setup
- Formatting and building file copy list works but setup stalls shortly after starting to copy files (NewCC on)

svn path=/trunk/; revision=55896

12 years ago[NEWCC]
Cameron Gutman [Tue, 28 Feb 2012 04:01:33 +0000 (04:01 +0000)]
[NEWCC]
- Fix several locking issues to better fit with RosMm
- Page out is critical as we use it now (shutdown) so force address space locking
- Fix an address space lock leak for VM regions
- Quiet some debugging and enable/change some other
- Still some lingering issues in page out exist which seem to be related to zefklop's PDE ref counting stuff and a weird one where we fault on the PFN database
- Besides the aforementioned issues, NewCC is surprisingly solid. I was able to boot to 3rd stage without a problem and run some apps.

svn path=/trunk/; revision=55895

12 years ago[NTOS]: A few key changes to the page fault path:
Sir Richard [Mon, 27 Feb 2012 23:42:22 +0000 (23:42 +0000)]
[NTOS]: A few key changes to the page fault path:
1) MiCheckVirtualAddress should be called *after* determining if the PTE is a Demand Zero PTE. This is because when memory is allocated with MEM_RESERVE, and then MEM_COMMIT is called later, the VAD does not have the MemCommit flag set to TRUE. As such, MiCheckVirtualAddress returns MM_NOACCESS for the VAD (even though one is found) and the demand zero fault results in an access violation. Double-checked with Windows and this is the right behavior.
2) MiCheckVirtualAddress now supports non-commited reserve VADs (ie: trying to access MEM_RESERVE memory). It used to ASSERT, now it returns MM_NOACCESS so an access violation is raised. Before change #1, this would also happen if MEM_COMMIT was later performed on the ranges, but this is now fixed.
3) When calling MiResolveDemandZeroFault, we should not make the PDE a demand zero PDE. This is senseless. The whole point is that the PDE does exist, and MiInitializePfn needs it to keep track of the page table allocation. Removed the nonsensical line of code which performed cleard the PDE during a demand-zero fault.
I am able to boot to 3rd stage with these changes, so I have seen no regressions. Additionally, with these changes, the as-of-yet-uncommitted VAD-based Virtual Memory code completes 1st stage setup successfully, instead of instantly crashing on boot.

svn path=/trunk/; revision=55894

12 years ago[NTOS]: Micro-formatting changes to NtAllocateVirtualMemory and NtFreeVirtualMemory...
Sir Richard [Mon, 27 Feb 2012 23:36:25 +0000 (23:36 +0000)]
[NTOS]: Micro-formatting changes to NtAllocateVirtualMemory and NtFreeVirtualMemory which make it easier for me to cut/paste the new VAD-based code in. No actual changes to behavior.

svn path=/trunk/; revision=55893

12 years ago[CMAKE]
Amine Khaldi [Mon, 27 Feb 2012 22:52:09 +0000 (22:52 +0000)]
[CMAKE]
* Remove some accidental changes.
[INETCPL]
* Include the correct pt language rc file.

svn path=/trunk/; revision=55892

12 years ago* ReactOS binaries hold resource files to *all* the languages we support, which incre...
Amine Khaldi [Mon, 27 Feb 2012 22:46:20 +0000 (22:46 +0000)]
* ReactOS binaries hold resource files to *all* the languages we support, which increases their size, and increases the memory footprint, and on top of that they become useless as soon as you select a language in the 1st stage installer. Introduce a way to compile ros with one localization so that we can compile ReactOS with only one localization, which eliminates the problem mentioned above, and allows us to reduce the compile time, the disk space needed for build, and the runtime memory footprint.
* The default build will continue to include all the localizations, but you can set it otherwise through a cmake variable (I18N_LANG) at configure time.
* Brought to you by Team Localization (Kamil Hornicek and Amine Khaldi) ;)

svn path=/trunk/; revision=55891

12 years ago[KERNEL32_WINETEST]
Sylvain Petreolle [Mon, 27 Feb 2012 20:19:21 +0000 (20:19 +0000)]
[KERNEL32_WINETEST]
Addendum to 55888:
allow to run MEM_RESET tests in interactive mode.

svn path=/trunk/; revision=55890

12 years ago[USBSTOR]
Johannes Anderwald [Mon, 27 Feb 2012 20:10:46 +0000 (20:10 +0000)]
[USBSTOR]
- Do not retry commands more than once
- Enable error handling in the data completion stage

svn path=/trunk/; revision=55889

12 years ago[KERNEL32_WINETEST]
Kamil Hornicek [Mon, 27 Feb 2012 19:33:15 +0000 (19:33 +0000)]
[KERNEL32_WINETEST]
Disable tests that would hit asserts due to current work on VM. Requested functionality is missing and will be for some time.

svn path=/trunk/; revision=55888

12 years ago[NTOSKRNL]
Cameron Gutman [Mon, 27 Feb 2012 19:31:11 +0000 (19:31 +0000)]
[NTOSKRNL]
- Fix kernel memory corruption when a driver fails to initialize
- Fix a handle leak in a failure case

svn path=/trunk/; revision=55887

12 years ago[NTOSKRNL]: Don't assert if there's no VAD found in NtFreeVirtualMemory... perhaps...
Alex Ionescu [Mon, 27 Feb 2012 17:17:31 +0000 (17:17 +0000)]
[NTOSKRNL]: Don't assert if there's no VAD found in NtFreeVirtualMemory... perhaps a wrong address was used on purpose (such as during a Winetest). Simply do what ROS does when a MAREA is not found and return failure. However if a VAD *was* found, keep all the other ASSERTs...

svn path=/trunk/; revision=55886

12 years ago[NTOS]: Continued preparations for VAD-based Virtual Memory. ASSERT in NtAllocateVirt...
Sir Richard [Mon, 27 Feb 2012 17:10:44 +0000 (17:10 +0000)]
[NTOS]: Continued preparations for VAD-based Virtual Memory. ASSERT in NtAllocateVirtualMemory any functionality that will not be supported by the VAD-based system (and is not really supported right now either). Make NtFreeVirtualMemory ASSERT that a correct VAD has been found when freeing memory -- which we always expect at this point. Also ASSERT that the VAD has a valid range and flags.
[NTOS]: Do a more stringent check to refuse COPY_ON_WRITE flag sent through NtAllocateVirtualMemory.
[NTOS]: For VM-based Memory Areas, acquire and then release the process working set lock while inserting the VAD, to simulate what the VAD-based Virtual Memory behavior will look like.
[NTOS]: Disable paging for VM-based Memory Areas since this will not be supported with VADs.
[KERNEL32]: CopyLoop was requesting 2 zero bits when calling NtAllocateVirtualMemory. Not sure if this was really the intent or not, but both the new as well as the old NtAllocateVirtualMemory do not support this (the new one will ASSERT). Since this functionality never worked, request 0 bits instead to avoid hitting the ASSERT.
Any problems with what the VAD system will introduce should be revealed by now. From this build until the one which will have the VAD-based system in place, no further VM-related issues should crop up.

svn path=/trunk/; revision=55885

12 years ago[USETUP]
Sylvain Petreolle [Mon, 27 Feb 2012 16:37:48 +0000 (16:37 +0000)]
[USETUP]
Fix installation directories set into unattend.inf,
they were ignored and installed always into \ReactOS.

svn path=/trunk/; revision=55884

12 years ago[NTOS]: Preparations for the VAD-based Virtual Memory system begin. Disable changing...
Sir Richard [Mon, 27 Feb 2012 16:12:11 +0000 (16:12 +0000)]
[NTOS]: Preparations for the VAD-based Virtual Memory system begin. Disable changing protection on Virtual Memory pages, and make all pages PAGE_EXECUTE_READWRITE for now. In theory, this should not cause any real problems, and sets the stage for the initial functionality regressions that the VAD-based system will introduce. I will eventually plan on fixing them.

svn path=/trunk/; revision=55883

12 years ago[NTOSKRNL]: Drop the reference on the PDE for kernel stack pages being deleted, now...
Alex Ionescu [Mon, 27 Feb 2012 16:10:30 +0000 (16:10 +0000)]
[NTOSKRNL]: Drop the reference on the PDE for kernel stack pages being deleted, now that zekflop has made all PDEs ARM3-owned.

svn path=/trunk/; revision=55882

12 years ago[NTOSKRNL]: This should not fix anything.
Alex Ionescu [Mon, 27 Feb 2012 15:50:25 +0000 (15:50 +0000)]
[NTOSKRNL]: This should not fix anything.

svn path=/trunk/; revision=55881

12 years ago[CMLIB]: Great job -- crashing trunk on a pool tag just so people can be forced to...
Alex Ionescu [Mon, 27 Feb 2012 15:28:06 +0000 (15:28 +0000)]
[CMLIB]: Great job -- crashing trunk on a pool tag just so people can be forced to know what it is. Change the registry pool tag from "th" (wtf?) to "CM25" which is a bit closer to Windows. In reality all of TAG_CM should be broken out in many more pieces. Fixes boot breakpoint.

svn path=/trunk/; revision=55880

12 years ago[NTOS]: Handle memory allocation failures correctly, supporting all the required...
Sir Richard [Mon, 27 Feb 2012 08:21:15 +0000 (08:21 +0000)]
[NTOS]: Handle memory allocation failures correctly, supporting all the required debug and caller flags (such as RAISE_ON_FAILURE). We no longer simply just return "NULL" in failure cases.
[NTOS]: Implement counters for paged and nonpaged pool. First-stage setup now shows Kernel Pool values again, as does Task Manager. Fixes the regression introduced when pool/non-paged pool was no longer managed through "memory consumer" API.
[NTOS]: Add more debugging paths and flags that were sent over from the "Aleksey Pool Patch". Most of them are not implemented.
[NTOS]: Fix a missing case when a pool header check was not being done.
[NTOS]: Check IRQL levels during pool allocation and free.
With tags and the counters, pool leaks should be massively more debuggable now.

svn path=/trunk/; revision=55879

12 years ago[NDK]
Dmitry Gorbachev [Sun, 26 Feb 2012 19:04:00 +0000 (19:04 +0000)]
[NDK]
- Fix declaration of HalPrivateDispatchTable for FreeLDR.

[FREELDR]
- Rename BiosMemoryMap to XboxMemoryMap. Another BiosMemoryMap is in meminit.c

[NTOSKRNL][WIN32K][FTP]
- Fix some variables.

svn path=/trunk/; revision=55878

12 years ago[BOOTDATA]
Kamil Hornicek [Sun, 26 Feb 2012 15:05:59 +0000 (15:05 +0000)]
[BOOTDATA]
Include unattend.inf by default (as it was almost done in r28835). No need to have it "disabled" twice.

svn path=/trunk/; revision=55876

12 years ago[USBOHCI][USBUHCI][USBEHCI]
Cameron Gutman [Sun, 26 Feb 2012 06:33:21 +0000 (06:33 +0000)]
[USBOHCI][USBUHCI][USBEHCI]
- Don't overwrite the status from ClearPortFeature with STATUS_SUCCESS
- Partially fixes full speed port handoff

svn path=/trunk/; revision=55875

12 years ago[NTOS]: Implement pool tagging for large allocations too. Once again, no expansion...
Sir Richard [Sun, 26 Feb 2012 05:53:53 +0000 (05:53 +0000)]
[NTOS]: Implement pool tagging for large allocations too. Once again, no expansion is implemented.

svn path=/trunk/; revision=55874

12 years ago[CMAKE]
Amine Khaldi [Sat, 25 Feb 2012 23:50:38 +0000 (23:50 +0000)]
[CMAKE]
* Introduce a way to compile GCC builds with PDB style debug info (isolated into .dbg files). This will reduce the memory footprint considerably, among other benefits.

svn path=/trunk/; revision=55873

12 years ago[NTOS]: Implement pool tag tracking and pool tag querying. Big Pool tags are not...
Sir Richard [Sat, 25 Feb 2012 23:14:37 +0000 (23:14 +0000)]
[NTOS]: Implement pool tag tracking and pool tag querying. Big Pool tags are not yet supported, but will be shortly. Expansion is not yet supported.

svn path=/trunk/; revision=55872

12 years ago[NTOSKRNL]
Cameron Gutman [Sat, 25 Feb 2012 22:27:27 +0000 (22:27 +0000)]
[NTOSKRNL]
- Set the SYNCHRONIZE flag in desired access when opening a registry hive for synchronous I/O

svn path=/trunk/; revision=55871

12 years ago[CMAKE]
Amine Khaldi [Sat, 25 Feb 2012 22:01:20 +0000 (22:01 +0000)]
[CMAKE]
* Get GCC version and add some compiler flags conditionally based on it. Dedicated to Dmitry.

svn path=/trunk/; revision=55870

12 years ago* Delete unused startup code.
Amine Khaldi [Sat, 25 Feb 2012 21:48:43 +0000 (21:48 +0000)]
* Delete unused startup code.

svn path=/trunk/; revision=55869

12 years ago[FREELDR][NTOSKRNL][TOOLS]
Dmitry Gorbachev [Sat, 25 Feb 2012 21:45:56 +0000 (21:45 +0000)]
[FREELDR][NTOSKRNL][TOOLS]
- Delete unused files.
- Use extension LDS instead of LNK (Windows shortcut file) for LD linker scripts.

svn path=/trunk/; revision=55868

12 years ago[USBSTOR]
Cameron Gutman [Sat, 25 Feb 2012 21:18:17 +0000 (21:18 +0000)]
[USBSTOR]
- Fix corruption of SCSI read format capacity by writing the LUN to the wrong location

svn path=/trunk/; revision=55867

12 years agoFix build?
Kamil Hornicek [Sat, 25 Feb 2012 21:09:28 +0000 (21:09 +0000)]
Fix build?

svn path=/trunk/; revision=55866

12 years ago[NTOS]: Implementation of the "Generic DPC" functionality from Windows NT 5.2, which...
Sir Richard [Sat, 25 Feb 2012 20:40:06 +0000 (20:40 +0000)]
[NTOS]: Implementation of the "Generic DPC" functionality from Windows NT 5.2, which is a forced-synchronization all-CPU DPC callback mechanism. Implemented, and exported all APIs requireted, and added to NDK. NOTE: This implementation only works for Single Processor systems (NT_UP) since this is all that ReactOS currently works on.
This is needed for poolmon/querying pool tags.

svn path=/trunk/; revision=55865

12 years ago[NDK]: Add missing type to NDK.
Alex Ionescu [Sat, 25 Feb 2012 20:38:20 +0000 (20:38 +0000)]
[NDK]: Add missing type to NDK.

svn path=/trunk/; revision=55864

12 years ago[CSRSRV]: Quiet, you!
Alex Ionescu [Sat, 25 Feb 2012 20:31:28 +0000 (20:31 +0000)]
[CSRSRV]: Quiet, you!

svn path=/trunk/; revision=55863

12 years ago[win32k]
Giannis Adamopoulos [Sat, 25 Feb 2012 20:06:15 +0000 (20:06 +0000)]
[win32k]
- move wallpaper info from WINSTATION_OBJECT to SPIVALUES. Also remove some unused fields from WINSTATION_OBJECT

svn path=/trunk/; revision=55862

12 years ago[USER32]
Pierre Schweitzer [Sat, 25 Feb 2012 19:28:00 +0000 (19:28 +0000)]
[USER32]
Correct user32 japanese translation (and fix build as well)

svn path=/trunk/; revision=55861

12 years ago[SHELL32]
Amine Khaldi [Sat, 25 Feb 2012 19:02:49 +0000 (19:02 +0000)]
[SHELL32]
* Misses these.

svn path=/trunk/; revision=55860

12 years ago[SHELL32]
Amine Khaldi [Sat, 25 Feb 2012 18:52:16 +0000 (18:52 +0000)]
[SHELL32]
* Prefix the local version.h and version.rc with shell32_.
* Include the rgs resource files in a portable way.

svn path=/trunk/; revision=55859

12 years ago[NTOS]: Compute the size of, and allocate, the Pool Tracker Table and the Big Page...
Sir Richard [Sat, 25 Feb 2012 18:51:21 +0000 (18:51 +0000)]
[NTOS]: Compute the size of, and allocate, the Pool Tracker Table and the Big Page Tracker Table, which are the core data structures that make pool tagging functionality work.

svn path=/trunk/; revision=55858

12 years ago[win32k]
Giannis Adamopoulos [Sat, 25 Feb 2012 18:26:05 +0000 (18:26 +0000)]
[win32k]
- null terminate DesktopObject->pDeskInfo->szDesktopName and WindowStationObject->Name
- null terminate the buffer when NtUserGetObjectInformation is called with UOI_NAME parameter
- should fix a random failure in user32:desktop tests

svn path=/trunk/; revision=55857

12 years ago* Addendum to r55855.
Amine Khaldi [Sat, 25 Feb 2012 17:23:58 +0000 (17:23 +0000)]
* Addendum to r55855.

svn path=/trunk/; revision=55856

12 years ago* Rbuild, our build system, has served us well so far, but its usefulness has since...
Amine Khaldi [Sat, 25 Feb 2012 17:23:37 +0000 (17:23 +0000)]
* Rbuild, our build system, has served us well so far, but its usefulness has since been vastly overshadowed by its awfulness. It's time to fix it.

svn path=/trunk/; revision=55855

12 years ago[RTL]
Eric Kohl [Sat, 25 Feb 2012 15:20:32 +0000 (15:20 +0000)]
[RTL]
Formatting, no code changes.

svn path=/trunk/; revision=55854

12 years ago[USBEHCI]
Cameron Gutman [Sat, 25 Feb 2012 06:23:12 +0000 (06:23 +0000)]
[USBEHCI]
- Create a macro for properly checking for low speed devices
- Check again for a low speed device after the EHCI reset completes
- Don't ignore status changes on ports that we have released (revert part of r55851)

svn path=/trunk/; revision=55853

12 years ago[USBHUB]
Cameron Gutman [Sat, 25 Feb 2012 05:46:19 +0000 (05:46 +0000)]
[USBHUB]
- Fix reset event handling in cases where reset does not end up in a new device created
- My MacBook Pro completes USB initialization free of hangs now (usbstor disabled)

svn path=/trunk/; revision=55852

12 years ago[USBHUB]
Cameron Gutman [Sat, 25 Feb 2012 04:45:30 +0000 (04:45 +0000)]
[USBHUB]
- Handle errors returned from the HCD correctly
[USBEHCI]
- Discard any changes on ports that were given to the companion controller

svn path=/trunk/; revision=55851

12 years ago[USBEHCI]
Cameron Gutman [Sat, 25 Feb 2012 04:27:39 +0000 (04:27 +0000)]
[USBEHCI]
- More EHCI reset fixes and general code cleanup

svn path=/trunk/; revision=55850

12 years ago[USBEHCI]
Johannes Anderwald [Sat, 25 Feb 2012 03:28:17 +0000 (03:28 +0000)]
[USBEHCI]
- Fix reset port sequence #2
- Clear unwanted bits
- Fix wait time as in spec
- Wait max 500ms for the reset bit to clear, otherwise restart the reset sequence
- Check if work item is currently queued

svn path=/trunk/; revision=55849

12 years ago[USBOHCI]
Cameron Gutman [Sat, 25 Feb 2012 02:20:15 +0000 (02:20 +0000)]
[USBOHCI]
- Implement per-port power control

svn path=/trunk/; revision=55848

12 years ago[USBCCGP]
Johannes Anderwald [Sat, 25 Feb 2012 00:35:40 +0000 (00:35 +0000)]
[USBCCGP]
- Formatting, no code changes

svn path=/trunk/; revision=55847

12 years ago[INF]
Cameron Gutman [Sat, 25 Feb 2012 00:34:48 +0000 (00:34 +0000)]
[INF]
- Fix the Live CD regression (RBuild only - The irony is not lost on me) caused by r55555
- There is another regression that still prevents booting though

svn path=/trunk/; revision=55846

12 years ago[USBOHCI]
Cameron Gutman [Fri, 24 Feb 2012 23:14:19 +0000 (23:14 +0000)]
[USBOHCI]
- Fix a broken assertion and print out the alignment mask and HCCA pointer

svn path=/trunk/; revision=55845

12 years ago[USBOHCI]
Cameron Gutman [Fri, 24 Feb 2012 23:05:22 +0000 (23:05 +0000)]
[USBOHCI]
- Fix various initialization bugs

svn path=/trunk/; revision=55844

12 years ago[USBUHCI]
Johannes Anderwald [Fri, 24 Feb 2012 17:58:55 +0000 (17:58 +0000)]
[USBUHCI]
- Invert data toggle

svn path=/trunk/; revision=55843

12 years ago[win32k]
Giannis Adamopoulos [Fri, 24 Feb 2012 15:32:13 +0000 (15:32 +0000)]
[win32k]
-remove unrelated and unused information from the WINSTATION_OBJECT

svn path=/trunk/; revision=55842

12 years ago[win32k]
Giannis Adamopoulos [Fri, 24 Feb 2012 15:22:11 +0000 (15:22 +0000)]
[win32k]
- Properly create the WindowStations directory in NtUserInitialize. Now we take into account the fact that if we are not in session 0, it should be created in \Sessions direcory
- Clean up IntParseDesktopPath and make it use the correct WindowStations
- Add some comments and cleanup
- Remove the unused IntGetFullWindowStationName, IntGetWindowStationObject and IntGetWinStaObj

svn path=/trunk/; revision=55841

12 years ago[NTOSKRNL]
Stefan Ginsberg [Fri, 24 Feb 2012 13:51:52 +0000 (13:51 +0000)]
[NTOSKRNL]
- Remove nasty hack to make Windows PCI driver load. This may not be required after the fixes that were committed after this hack. If it is still necessary then please fix whatever issue makes the PCI driver crash instead of relying on a return from bugcheck call to work...

[DDK]
- Mark KeBugCheckEx as noreturn again. Should fix Prefast issues where it thought execution could return from the call and would warn about false issues.

svn path=/trunk/; revision=55840

12 years ago[NEWCC]
Art Yerkes [Fri, 24 Feb 2012 11:33:23 +0000 (11:33 +0000)]
[NEWCC]
Integrate september's speed improvements, which now work.
Remove the flush hack when unpinning cache segments.

svn path=/trunk/; revision=55839

12 years agoUpdate for rapps
Daniel Reimer [Fri, 24 Feb 2012 10:33:06 +0000 (10:33 +0000)]
Update for rapps

svn path=/trunk/; revision=55838

12 years ago[NEWCC]
Art Yerkes [Fri, 24 Feb 2012 10:05:06 +0000 (10:05 +0000)]
[NEWCC]
Update used page table entry counts when mapping pages in cache sections.

svn path=/trunk/; revision=55837

12 years ago[USBOHCI]
Cameron Gutman [Fri, 24 Feb 2012 07:26:43 +0000 (07:26 +0000)]
[USBOHCI]
- Try to fix some real hardware OHCI initialization hangs

svn path=/trunk/; revision=55836

12 years ago[FREELDR][NTOSKRNL]
Dmitry Gorbachev [Thu, 23 Feb 2012 18:59:24 +0000 (18:59 +0000)]
[FREELDR][NTOSKRNL]
Update linker scripts.

svn path=/trunk/; revision=55835

12 years ago[CMAKE]
Stefan Ginsberg [Thu, 23 Feb 2012 13:06:11 +0000 (13:06 +0000)]
[CMAKE]
- Specify C4700 (uninitialized variable usage) to cause an error on compile as this is very likely to result in broken code.
[NTDLL]
- Disable ASSERT in LdrpSearchPath that could be reading an uninitialized variable. The routine is not fully implemented so this should likely be re-enabled once it is.
[BROWSEUI]
- Add missing call to BuildRebarBandInfo, or we would end up with an unitialized variable sent to SendMessage.
[PCIX]
- Fix broken ASSERT
- Fix usage of wrong (and uninitialized) variable in the Unicode case for PciGetDescriptionMessage.
[DDK]
- Prepend "_" to local variable of NdisChainBufferAtBack. Fixes code in ndisuio that called this using the same name as the macro's variable (which resulted in NdisChainBufferAtBack assigning the variable to itself).
[WIN32K]
- Fix WinPosShowIconTitle that checked if a variable was NULL before assigning it to anything.

svn path=/trunk/; revision=55834

12 years ago[NEWCC]
Amine Khaldi [Thu, 23 Feb 2012 12:03:06 +0000 (12:03 +0000)]
[NEWCC]
A reintegration checkpoint for the NewCC branch, brought to you by Team NewCC.

Differences with current ReactOS trunk:

* A new memory area type, MEMORY_AREA_CACHE, is added, which represents a mapped region of a file. In NEWCC mode, user sections are MEMORY_AREA_CACHE type as well, and obey new semantics. In non-NEWCC mode, they aren't used.
* A way of claiming a page entry for a specific thread's work is added. Placing the special SWAPENTRY value MM_WAIT_ENTRY in a page table, or in a section page table should indicate that memory management code is intended to wait for another thread to make some status change before checking the state of the page entry again. In code that uses this convention, a return value of STATUS_SUCCESS + 1 is used to indicate that the caller should use the MiWaitForPageEvent macro to wait until somebody has change the state of a wait entry before checking again. This is a lighter weight mechanism than PAGEOPs.
* A way of asking the caller to perform some blocking operation without locks held is provided. This replaces some spaghettified code in which locks are repeatedly taken and broken by code that performs various blocking operations. Using this mechanism, it is possible to do a small amount of non-blocking work, fill in a request, then return STATUS_MORE_PROCESSING_REQUIRED to request that locks be dropped and the blocking operation be carried out. A MM_REQUIRED_RESOURCES structure is provided to consumers of this contract to use to accumulate state across many blocking operations. Several functions wrapping blocking operations are provided in ntoskrnl/cache/reqtools.c.
* Image section pages are no longer direct mapped. This is done to simplify consolidation of ownership of pages under the data section system. At a later time, it may be possible to make data pages directly available to image sections for the same file. This is likely the only direct performance impact this code makes on non-NEWCC mode.

RMAPs:

* A new type of RMAP entry is introduced, distinguished by RMAP_IS_SEGMENT(Address) of the rmap entry. This kind of entry contains a pointer to a section page table node in the Process pointer, which in turn links back to the MM_SECTION_SEGMENT it belongs to. Therefore, a page belonging only to a segment (that is, a segment page that isn't mapped) can exist and be evicted using the normal page eviction mechanism in balance.c. Each of the rmap function has been modified to deal with segment rmaps.
* The low 8 bits of the Address field in a segment rmap denote the entry number in the generic table node pointed to by Process that points to the page the rmap belongs to. By combining them, you can determine the file offset the page belongs to.
* In NEWCC mode, MmSharePageEntry/UnsharePageEntry are not used, and instead the page reference count is used to keep track of the number of mappings of a page, allowing the last reference expiring to allow the page to be recycled without much intervention. These are still used in non-NEWCC mode. One change has been made, the count fields have been narrowed by 1 bit to make room for a dirty bit in SSE entries, needed when a page is present but unmapped.

Section page tables:

* The section page tables are now implemented using RtlGenericTables. This enables a fairly compact representation of section page tables without having the existence of a section object imply 4k of fake PDEs. In addition, each node in the generic table has a wide file offset that is a multiple of 256 pages, or 1 megabyte total. Besides needing wide file offsets, the only other visible change caused by the switch to generic tables for section page tables is the need to lock the section segment before interacting with the section page table.

Eviction:

* Page eviction in cache sections is accomplished by MmpPageOutPhysicalAddress. In the case of a shared page, it tries to remove all mappings of the indicated page. If this process fails at any point, the page will simply be drawn back into the target address spaces. After succeeding at this, if TRUE has been accumulated into the page's dirty bit in the section page table, it is written back, and then permanently removed.

NewCC mode:

* NEWCC mode is introduced, which rewrites the file cache to a set of cache stripes actively mapped, along with unmapped section data.
* NewCC is more authentic in its interpretation of the external interface to the windows cache than the current cache manager, implementing each of the cache manager functions according to the documented interface with no preconceived ideas about how anything should be implemented internally. Cache stripes are implemented on top of section objects, using the same memory manager paths, and therefore economizing code and complexity. This replaces a rather complicated system in which pages can be owned by the cache manager and the memory manager simultaneously and they must cooperate in a fairly sophisticated way to manage them. Since they're quite interdependent in the current code, modifying either is very difficult. In NEWCC, they have a clear division of labor and thus can be worked on independently.
* Several third party filesystems that use the kernel Cc interface work properly using NEWCC, including matt wu's ext3 driver.
* In contrast with code that tries to make CcInitializeCacheMap and CcUninitializeCacheMap into a pair that supports reference counting, NEWCC lazily initializes the shared and private cache maps as needed and uses the presence of a PrivateCacheMap on at least one file pointing to the SharedCacheMap as an indication that the FILE_OBJECT reference in the SharedCacheMap should still be held. When the last PrivateCacheMap is discarded, that's the appropriate time to tear down caching for a specific file, as the SharedCacheMap data is allowed to be saved and reused. We honor this by making the SharedCacheMap into a depot for keeping track of the PrivateCacheMap objects associated with views of a file.

svn path=/trunk/; revision=55833