Commit graph

50597 commits

Author SHA1 Message Date
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
Amine Khaldi 04e46d06af [CMAKE]
* Get GCC version and add some compiler flags conditionally based on it. Dedicated to Dmitry.

svn path=/trunk/; revision=55870
2012-02-25 22:01:20 +00:00
Amine Khaldi 183b2632a2 * Delete unused startup code.
svn path=/trunk/; revision=55869
2012-02-25 21:48:43 +00:00
Dmitry Gorbachev 1550726927 [FREELDR][NTOSKRNL][TOOLS]
- Delete unused files.
- Use extension LDS instead of LNK (Windows shortcut file) for LD linker scripts.

svn path=/trunk/; revision=55868
2012-02-25 21:45:56 +00:00
Cameron Gutman aeac841aa8 [USBSTOR]
- Fix corruption of SCSI read format capacity by writing the LUN to the wrong location

svn path=/trunk/; revision=55867
2012-02-25 21:18:17 +00:00
Kamil Hornicek 3db7e1b78c Fix build?
svn path=/trunk/; revision=55866
2012-02-25 21:09:28 +00:00
Sir Richard ca1f0374ab [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
2012-02-25 20:40:06 +00:00
Alex Ionescu 2a87bcea2b [NDK]: Add missing type to NDK.
svn path=/trunk/; revision=55864
2012-02-25 20:38:20 +00:00
Alex Ionescu b90bb9d570 [CSRSRV]: Quiet, you!
svn path=/trunk/; revision=55863
2012-02-25 20:31:28 +00:00
Giannis Adamopoulos 23c1c259f0 [win32k]
- move wallpaper info from WINSTATION_OBJECT to SPIVALUES. Also remove some unused fields from WINSTATION_OBJECT

svn path=/trunk/; revision=55862
2012-02-25 20:06:15 +00:00
Pierre Schweitzer f1838c9108 [USER32]
Correct user32 japanese translation (and fix build as well)

svn path=/trunk/; revision=55861
2012-02-25 19:28:00 +00:00
Amine Khaldi f17583a648 [SHELL32]
* Misses these.

svn path=/trunk/; revision=55860
2012-02-25 19:02:49 +00:00
Amine Khaldi acf789af2a [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
2012-02-25 18:52:16 +00:00
Sir Richard a62fbc4a47 [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
2012-02-25 18:51:21 +00:00
Giannis Adamopoulos bde6f12e52 [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
2012-02-25 18:26:05 +00:00
Amine Khaldi 7d3f5052d0 * Addendum to r55855.
svn path=/trunk/; revision=55856
2012-02-25 17:23:58 +00:00
Amine Khaldi 818418643e * 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
2012-02-25 17:23:37 +00:00
Eric Kohl 0fa8a3b725 [RTL]
Formatting, no code changes.

svn path=/trunk/; revision=55854
2012-02-25 15:20:32 +00:00
Cameron Gutman 11c95e90a7 [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
2012-02-25 06:23:12 +00:00