Commit graph

48331 commits

Author SHA1 Message Date
Timo Kreuzer 744be47dde [NTOSKRNL]
Cleanup amd64/ke.h a bit, add KiUserTrap()

svn path=/trunk/; revision=53701
2011-09-13 13:12:38 +00:00
Timo Kreuzer 611d62ecb0 [NTOSKRNL]
Move x86 specific file trap_x.h into include/internal/i386

svn path=/trunk/; revision=53699
2011-09-13 12:53:50 +00:00
Eric Kohl 9c8386d2b6 [MSGINA]
- Call NotifyBootConfigStatus after a user has been logged-on successfully.
- Implement WlxIsLogoffOk.

svn path=/trunk/; revision=53698
2011-09-13 09:42:25 +00:00
Eric Kohl 5fe2e119f5 [MSPORTS]
Implement device removal.

svn path=/trunk/; revision=53697
2011-09-13 09:30:22 +00:00
Eric Kohl 3b374be2f7 [MSPORTS]
Implement ComDBResizeDatabase.

svn path=/trunk/; revision=53696
2011-09-12 14:24:24 +00:00
Timo Kreuzer d28eae967a [HAL]
Implement lazy irql for APIC. This is useful for VMs, since APIC usually has high overhead due to the need of invoking the hypervisor on every irql raise and lower. With lazy irql we avoid that until absolutely neccessary. Note that we misuse the PCR's IRR field to save the current hardware irql. Its a huge performance boost (some parts take half the time), making APIC performance close to PIC performance on VBox. This is something that Windows doesn't have :)

svn path=/trunk/; revision=53695
2011-09-12 09:46:20 +00:00
Cameron Gutman ff75ae1b72 [NTOSKRNL]
- Create a volatile device tree during 1st stage so the new HAL that's loaded in 2nd stage can do proper enumeration without phantom devices from the old HAL

svn path=/trunk/; revision=53694
2011-09-11 17:26:01 +00:00
Amine Khaldi 2817ba1e7e * Comment out some unused but set variables, remove some others.
* Allow warnings for some 3rd party code.

svn path=/trunk/; revision=53693
2011-09-11 16:56:56 +00:00
Cameron Gutman 15c8127658 [SCSIPORT]
- Remove a duplicate assignment

svn path=/trunk/; revision=53692
2011-09-11 15:40:01 +00:00
Amine Khaldi 6b9d48d482 * Comment out some unused but set variables, remove some others.
* Allow warnings for some 3rd party code.

svn path=/trunk/; revision=53691
2011-09-11 15:39:19 +00:00
Cameron Gutman 4076b77e1f [FREELOADER]
- Use a larger data type to iterate through the disk buffer to avoid an infinite loop with broken BIOSes

svn path=/trunk/; revision=53690
2011-09-11 15:32:15 +00:00
Cameron Gutman 5381c4af56 [WS2_32_NEW]
- Fix an error found by PVS Studio
[RAMDISK]
- Fix an error found by PVS Studio

svn path=/trunk/; revision=53689
2011-09-11 15:17:48 +00:00
Thomas Faber 758fe19cd0 [NTOSKRNL][RTL][DOC]
- Fix incorrect loop boundaries in the ARM version of MmCreateProcessAddressSpace. Spotted by Vincenzo Cotugno and cppcheck
- Correct outdated wineimport.cmd URL in README.WINE
- Assorted spelling and readability fixes

svn path=/trunk/; revision=53688
2011-09-11 11:47:28 +00:00
Thomas Faber 2b17fa159d [KMTESTS]
- Add support for guarded allocations, that can be used to detect buffer overruns
- Add GuardedMemory example test
- Add MmSection test with some basic parameter checks for MmCreateSection
- Fix some x64 build problems
- Update readme

svn path=/trunk/; revision=53687
2011-09-11 11:22:00 +00:00
Eric Kohl 0d4f432270 [SERVICES]
- Add optional asynchronous io code for service control pipes. This is disabled by default due to bugs in NPFS.
- Read service pipe timeout value from the registry.

svn path=/trunk/; revision=53686
2011-09-11 11:17:25 +00:00
Timo Kreuzer 1b9f1974ad [HAL]
- End the interrupt in HalpApcInterruptHandler and HalpDispatchInterruptHandler before calling the kernel, otherwise we would be stuck at high processor irql
- Improve HalEnableSystemInterrupt
- disable interrupts in HalpInitializeClock
=> APIC hal boots to desktop!

svn path=/trunk/; revision=53685
2011-09-11 09:34:50 +00:00
Timo Kreuzer 2aa7014184 [KDCOM]
Improve a debug print

svn path=/trunk/; revision=53684
2011-09-11 08:56:38 +00:00
Eric Kohl 36386adb24 [MUP]
Disable debug output.

svn path=/trunk/; revision=53683
2011-09-11 08:52:59 +00:00
Amine Khaldi f904ba5cf9 * Missed some assignments in debug.c.
* Add a dummy allow_warnings() for msvc build.

svn path=/trunk/; revision=53682
2011-09-11 00:44:13 +00:00
Amine Khaldi 0864fd08d6 * Comment out some unused but set variables, remove some others.
svn path=/trunk/; revision=53681
2011-09-11 00:40:20 +00:00
Amine Khaldi 4e616754a5 * Fix some more unused but set variables.
* Allow warnings for some 3rd party code.

svn path=/trunk/; revision=53680
2011-09-10 23:54:02 +00:00
Timo Kreuzer 680bdcf253 [NTOSKRNL]
The handlers for unexpected interrupts that we generate from asm macros use a push instruction with an 8 bit operand to push the interrupt number on the stack. Now the 8 bit push has the unfortunate behaviour of sign extending to 32 bit. But since the assembler is smart (or at least thinks so) it will not generate such a push instruction for values larger than 0x7f. This resulted in 7 bytes long stubs in the range of 0x30 .. 0x7f and 10 bytes long stubs after that. To fix this 128 is substracted from the value and later readded in the common code path. A second issue arose, because the assembler would start to use 8 bit relative short jumps as soon as the target was less than 127 bytes away, which happened for some of the higher interrupts, which then had a smaller stub then the others. Fix this by moving the stubs up in the code further away from the target label, so that always 32bit relative jumps will be used. These problems didn't show up so far, since we used the PIC and interrupts in the range of 0x30 .. 0x40 and the code that relied on the stubs all having the same length was working well. This changes with an APIC based hal, where interrupts of much higher number are likely to be used.

svn path=/trunk/; revision=53679
2011-09-10 23:05:10 +00:00
Timo Kreuzer 0e5e391c4a Fix build (oh how I hate this mini_hal thing)
svn path=/trunk/; revision=53677
2011-09-10 21:56:07 +00:00
Amine Khaldi 74634a76e2 * Fix some unused but set variables. Brought to you by gcc 4.6.1.
* Allow warnings for some 3rd party code.

svn path=/trunk/; revision=53676
2011-09-10 21:31:09 +00:00
Timo Kreuzer 158c621c68 [HAL]
- Use a global variable HalpBuildType instead of a define when checking the BUILD (we don't recompile this code for SMP hal)
- Move registering IRQ2 out of the generic init code into HalInitializePICs
- Modify legacy HalpGetRootInterruptVector to use HalpIrqToVector and HalpVectorToIrql so it works with APIC, too

svn path=/trunk/; revision=53675
2011-09-10 18:58:01 +00:00
Thomas Faber e5bc333825 [RBUILD]
- Add kmtests to the CD

svn path=/trunk/; revision=53674
2011-09-10 16:12:19 +00:00
Timo Kreuzer 459b5c212e [HAL/APIC]
- Implement HalpApcInterruptHandler, fix HalpDispatchInterruptHandler
- Insert a read to the APIC version register in ApicGetCurrentIrql(). This fixes inconsistencies between the internal APIC state and register reads/writes.
- Remove old hacks in ApicGetCurrentIrql() and ApicSetCurrentIrql
- Fix HalpVectorToIrql()
- read/write cr8 for the value of the TPR on amd64 builds
- Fix amd64 build

svn path=/trunk/; revision=53673
2011-09-10 15:55:15 +00:00
Thomas Faber ac09e360bb [KMTEST]
- Load the driver from the application directory, not the current directory

svn path=/trunk/; revision=53672
2011-09-10 14:45:47 +00:00
Thomas Faber 454f222ade [ROSTESTS]
- Merge the Kernel Mode Test Suite Google Summer of Code project
- Happy testing, everyone ;)

svn path=/trunk/; revision=53671
2011-09-10 11:41:33 +00:00
Thomas Faber abac3d72f3 [KMTESTS]
- Fix kmtest_.exe file naming in CMake

svn path=/branches/GSoC_2011/KMTestSuite/; revision=53670
2011-09-10 11:19:50 +00:00
Thomas Faber 34e64d7748 [KMTESTS]
- Skip the remaining tests that result in assertions
- Hide KeProcessor test, as it takes very long

svn path=/branches/GSoC_2011/KMTestSuite/; revision=53669
2011-09-10 10:48:07 +00:00
Thomas Faber b37b73edf4 [NTOSKRNL/OB]
- Do not bugcheck in ObpCloseHandle if the handle is -1. Powered by kmtests

svn path=/trunk/; revision=53668
2011-09-10 10:41:57 +00:00
Thomas Faber 21494c6ffa [KMTESTS/OB]
- ObReference: add better tests for closing invalid handles

svn path=/branches/GSoC_2011/KMTestSuite/; revision=53667
2011-09-10 10:38:43 +00:00
Timo Kreuzer 50058d32a2 [HAL]
Add a hack to work around a bug in VBox: The APIC emulation requires an iret instruction following closely after writing the EOI register. Since we return from kernel mode traps with a jmp (yes you can return from an interrupt with a jmp!) the EOI is never triggered, making VBox believe we are still serving the interrupt and keeping the PPR on high level, preventing following interrupts. A small asm stub now does the work of both writing the EOI and doing an iret.

svn path=/trunk/; revision=53665
2011-09-09 21:10:07 +00:00
Ged Murphy 99530efcdd [DEVMGMT]
Add the treeview and resize data. It now somewhat resembles an app.

svn path=/trunk/; revision=53664
2011-09-09 19:10:11 +00:00
Ged Murphy 9ec05fbc97 [DEVMGMT]
Some main window work.

svn path=/trunk/; revision=53663
2011-09-09 18:52:52 +00:00
Amine Khaldi 859dd5c42a [SHELL32]
* Merge r53661.

svn path=/trunk/; revision=53662
2011-09-09 16:55:59 +00:00
Rafal Harabien d18bfcff5e [WIN32K]
- Improve formating of input.c and keyboard.c

svn path=/trunk/; revision=53660
2011-09-09 16:17:02 +00:00
Rafal Harabien 5f3b37f429 [WIN32K]
- Don't use magic type values for IntMapVirtualKeyEx calls
- Fix a typo in ERR

svn path=/trunk/; revision=53659
2011-09-09 16:08:09 +00:00
Timo Kreuzer 4c5b0d11ab [HAL]
- Add a hack to ApicGetCurrentIrql and ApicSetCurrentIrql to work around a VBox bug
- call KeSetTimeIncrement after initializing the rtc clock
- calculate TSC frequency from the samples
- Fix a bug in KeStallExecutionProcessor

svn path=/trunk/; revision=53658
2011-09-09 15:42:59 +00:00
Rafal Harabien da83700379 [USER32]
- Fix ole32:clipboard winetest regression

svn path=/trunk/; revision=53657
2011-09-09 15:24:14 +00:00
Giannis Adamopoulos 65bfc47fd6 [undocuser.h]
- Move definition of UpdatePerUserSystemParameters to undocuser.h

svn path=/trunk/; revision=53656
2011-09-09 14:13:04 +00:00
Rafal Harabien 78ba9b27da [WIN32K]
- Rename gQueueKeyStateTable to gKeyStateTable as it has nothing to do with msg queues. They have their own table
- Use KS_*_BIT defines instead of magic values

svn path=/trunk/; revision=53655
2011-09-09 13:11:44 +00:00
Rafal Harabien 08398d6bc1 [WIN32K]
- Rewrite co_IntTranslateAccelerator to make it readable
- Add back support for 0x80 flag as an accelerator table end

svn path=/trunk/; revision=53654
2011-09-09 13:09:28 +00:00
Amine Khaldi 3bb734fcf3 [SHELL32]
* Reintegrate the c++ shell32 branch. Exemplary team-work.. kudos !
* Better code quality, more tests run with less failures... and more.
* Dedicated to everyone who helped ;)

svn path=/trunk/; revision=53653
2011-09-09 10:55:09 +00:00
Claudiu Mihail ec47e5b8d5 [shell32.dll]
[FORMATTING]
- Second wave of formatting. At least now we won't have any tabs and spaces mixed in.

svn path=/branches/shell32_new-bringup/; revision=53651
2011-09-08 22:43:43 +00:00
Claudiu Mihail 13df60a8ec [shell32.dll]
- Fix bug 6336 of shell32_new. The bug was caused by not properly verifying the return value of ShellExecuteExW.
[FORMATTING]
- First wave of accidental formatting (sorry again about mixing code and formatting heh).

svn path=/branches/shell32_new-bringup/; revision=53650
2011-09-08 22:42:01 +00:00
Ged Murphy d35e21f19e [DEVMGMT]
Add the resources

svn path=/trunk/; revision=53649
2011-09-08 22:04:51 +00:00
Ged Murphy 83fe582052 [DEVMGMT]
- Start a new device manager to test the reactos ATL code.
- Also, the old one sucks big time and was quickly hacked together.

svn path=/trunk/; revision=53648
2011-09-08 22:03:08 +00:00
Dmitry Gorbachev 3407fb2a35 [Telnet]
Fix build with GCC 4.7.

svn path=/trunk/; revision=53647
2011-09-08 21:00:37 +00:00