Commit graph

50515 commits

Author SHA1 Message Date
Alex Ionescu 1401fbea9b [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
2012-02-29 16:25:43 +00:00
Johannes Anderwald d485558f04 [USBUHCI]
- Try fix build

svn path=/trunk/; revision=55920
2012-02-29 16:15:05 +00:00
Timo Kreuzer 232e8cd9f5 [GDI32]
Fix MSVC warnings

svn path=/trunk/; revision=55919
2012-02-29 15:34:43 +00:00
Johannes Anderwald a3b5c86363 [USBOHCI]
- Fix msvc build

svn path=/trunk/; revision=55918
2012-02-29 11:06:57 +00:00
Johannes Anderwald a755140405 [USBEHCI]
- Fix stack corruption found by msvc
- Fix msvc build

svn path=/trunk/; revision=55917
2012-02-29 10:59:48 +00:00
Johannes Anderwald ad333c1655 [USBEHCI]
- Fix regressions caused by libusb

svn path=/trunk/; revision=55916
2012-02-29 09:41:34 +00:00
Art Yerkes 743a8996a2 [FSRTL]
Import mostly-complete file locking implementation from arty-newcc.

svn path=/trunk/; revision=55915
2012-02-29 09:18:57 +00:00
Art Yerkes 9d75a5ebae [FSRTL]
Import code from Pierre Schweitzer's fsrtl branch.
- Large MCB and MCB
- Change notification

svn path=/trunk/; revision=55914
2012-02-29 09:18:01 +00:00
Johannes Anderwald c131df4a4c [USBOHCI]
- Fix regressions introduced by libusb

svn path=/trunk/; revision=55913
2012-02-29 09:15:42 +00:00
Cameron Gutman bf426aafef [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
2012-02-29 06:08:15 +00:00
Cameron Gutman 4ba7e8a742 - Missed this bit
svn path=/trunk/; revision=55911
2012-02-29 05:01:31 +00:00
Cameron Gutman 90e94e42c5 [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
2012-02-29 04:58:27 +00:00
Johannes Anderwald 6a2de16a81 [USBOHCI]
- Remove duplicated code
[USBUHCI]
- Use libusb

svn path=/trunk/; revision=55909
2012-02-28 22:09:57 +00:00
Johannes Anderwald 300e78822d [USBOHCI]
- Fix build

svn path=/trunk/; revision=55908
2012-02-28 19:01:02 +00:00
Johannes Anderwald 071158cb87 [USBOHCI]
- Use libusb library
- Cleanup code
[USBEHCI]
- Apply interface changes

svn path=/trunk/; revision=55907
2012-02-28 18:54:30 +00:00
Alex Ionescu c615973655 [NDK]: Clarify copyright granting and attribution requirements in NDK readme.
svn path=/trunk/; revision=55906
2012-02-28 18:38:28 +00:00
Timo Kreuzer dc4b573964 [NDK]
- Transfer copyright to Alex Ionescu.
- Remove obsolete file

svn path=/trunk/; revision=55905
2012-02-28 18:21:34 +00:00
Alex Ionescu 67cac70ffa [NDK]: Update readme.txt and commit the license files which were never in the repository for some reason.
svn path=/trunk/; revision=55904
2012-02-28 17:57:16 +00:00
Timo Kreuzer 35784af061 [NTSOKRNL]
Remove a broken ASSERT. Fixes MSVC build


svn path=/trunk/; revision=55903
2012-02-28 17:50:21 +00:00
Johannes Anderwald ec76cc0bc3 [USBEHCI]
- Fix msvc build

svn path=/trunk/; revision=55902
2012-02-28 17:26:16 +00:00
Johannes Anderwald e9012aba15 [USBEHCI]
- Use libusb library
- Cleanup code

svn path=/trunk/; revision=55901
2012-02-28 15:13:30 +00:00
Johannes Anderwald fd61a9d77c [LIBUSB]
- Add library which implements generic host controller tasks

svn path=/trunk/; revision=55900
2012-02-28 15:01:27 +00:00
Johannes Anderwald e021058e30 [USBEHCI]
- Rewrite configuration handling, WIP

svn path=/trunk/; revision=55899
2012-02-28 10:29:37 +00:00
Cameron Gutman 72a7d22233 [NTOSKRNL]
- Fix PDE reference counting
- Now only the recursive fault remains as an issue in the page out path

svn path=/trunk/; revision=55898
2012-02-28 09:30:53 +00:00
Cameron Gutman 24264b8dc2 [NTOSKRNL]
- Change MmDereferencePage to MmReleasePageMemoryConsumer to do proper page usage tracking
- Remove an unnecessary reference and dereference

svn path=/trunk/; revision=55897
2012-02-28 08:34:16 +00:00
Cameron Gutman 3998099eae [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
2012-02-28 05:10:40 +00:00
Cameron Gutman 29f3456caf [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
2012-02-28 04:01:33 +00:00
Sir Richard 6086842a76 [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
2012-02-27 23:42:22 +00:00
Sir Richard 8e25b78c44 [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
2012-02-27 23:36:25 +00:00
Amine Khaldi c3baab78ea [CMAKE]
* Remove some accidental changes.
[INETCPL]
* Include the correct pt language rc file.

svn path=/trunk/; revision=55892
2012-02-27 22:52:09 +00:00
Amine Khaldi 5e9ad9f31b * 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
2012-02-27 22:46:20 +00:00
Sylvain Petreolle 64be055c58 [KERNEL32_WINETEST]
Addendum to 55888:
allow to run MEM_RESET tests in interactive mode.

svn path=/trunk/; revision=55890
2012-02-27 20:19:21 +00:00
Johannes Anderwald 1efde9717f [USBSTOR]
- Do not retry commands more than once
- Enable error handling in the data completion stage

svn path=/trunk/; revision=55889
2012-02-27 20:10:46 +00:00
Kamil Hornicek f051482d69 [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
2012-02-27 19:33:15 +00:00
Cameron Gutman ac6c5a4738 [NTOSKRNL]
- Fix kernel memory corruption when a driver fails to initialize
- Fix a handle leak in a failure case

svn path=/trunk/; revision=55887
2012-02-27 19:31:11 +00:00
Alex Ionescu c61e296b73 [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
2012-02-27 17:17:31 +00:00
Sir Richard 7b2b759953 [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
2012-02-27 17:10:44 +00:00
Sylvain Petreolle 806732f98e [USETUP]
Fix installation directories set into unattend.inf,
they were ignored and installed always into \ReactOS.

svn path=/trunk/; revision=55884
2012-02-27 16:37:48 +00:00
Sir Richard aaa881ed5a [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
2012-02-27 16:12:11 +00:00
Alex Ionescu 2c7855ed9d [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
2012-02-27 16:10:30 +00:00
Alex Ionescu 270acce7b4 [NTOSKRNL]: This should not fix anything.
svn path=/trunk/; revision=55881
2012-02-27 15:50:25 +00:00
Alex Ionescu ef59218343 [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
2012-02-27 15:28:06 +00:00
Sir Richard 5009959437 [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
2012-02-27 08:21:15 +00:00
Dmitry Gorbachev 567e9e3a71 [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
2012-02-26 19:04:00 +00:00
Kamil Hornicek 260ccab1cd [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
2012-02-26 15:05:59 +00:00
Cameron Gutman 08262c3c70 [USBOHCI][USBUHCI][USBEHCI]
- Don't overwrite the status from ClearPortFeature with STATUS_SUCCESS
- Partially fixes full speed port handoff

svn path=/trunk/; revision=55875
2012-02-26 06:33:21 +00:00
Sir Richard b6c8b61ceb [NTOS]: Implement pool tagging for large allocations too. Once again, no expansion is implemented.
svn path=/trunk/; revision=55874
2012-02-26 05:53:53 +00:00
Amine Khaldi 512c21b125 [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
2012-02-25 23:50:38 +00:00
Sir Richard ec4df1d177 [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
2012-02-25 23:14:37 +00:00
Cameron Gutman fb942b740a [NTOSKRNL]
- Set the SYNCHRONIZE flag in desired access when opening a registry hive for synchronous I/O

svn path=/trunk/; revision=55871
2012-02-25 22:27:27 +00:00