Commit graph

48351 commits

Author SHA1 Message Date
Jérôme Gardou
606aa872f2 [WIN32K]
- syscalls are stdcall

svn path=/trunk/; revision=53721
2011-09-16 13:18:40 +00:00
Timo Kreuzer
331009e07d [NTOSKRNL/AMD64]
- Fix KiGeneralProtectionFault
- Don't bugcheck in KiUnexpectedInterrupt
- Remove debugprint in KiEndInterrupt, and instead assert, its called from the clock interrupt, since thats the only instance we handle right now

svn path=/trunk/; revision=53720
2011-09-16 09:46:08 +00:00
Timo Kreuzer
4dfa3c52a3 [HAL/APIC/AMD64]
- add common amd64 asm trap macros
- fix amd64 version of HackEoi
- send EOI in amd64 trap exit code, so we avoid using HackEoi
- modify HalpClockInterruptHandler for better portability
- fix amd64 TscCalibrationISR

svn path=/trunk/; revision=53719
2011-09-16 09:39:41 +00:00
Jérôme Gardou
52d89c3b87 [SHELL32]
- it's right there, use quotes to include it

svn path=/trunk/; revision=53718
2011-09-15 21:46:59 +00:00
Jérôme Gardou
d8452f344b [REACTOS]
- wait patiently for rbuild going to Valhalla

svn path=/trunk/; revision=53717
2011-09-15 21:26:32 +00:00
Jérôme Gardou
757ab6e8d4 [REACTOS]
- get version.h and buildno.h out of precompiled headers, to avoid rebuilding the whole module each time we reconfigure the build

svn path=/trunk/; revision=53716
2011-09-15 21:03:39 +00:00
Jérôme Gardou
b434a6b048 [CMAKE]
- start documenting reactos specific stuff.
Feel free to complete it :-)

svn path=/trunk/; revision=53715
2011-09-15 20:14:34 +00:00
Timo Kreuzer
89b75ad8b7 [NTOSKRNL/AMD64]
- Add portable kernel initialization code for amd64 only.
- Modify amd64 init code accordingly

svn path=/trunk/; revision=53714
2011-09-15 19:32:13 +00:00
Timo Kreuzer
3e2fddbe19 [CRT]
- Implement MSVC versions of call_copy_ctor, call_dtor, continue_after_catch, __CxxFrameHandler
- Fix amd64 versions of _control87 and _statusfp
- Fix MSVC and amd64 warnings

svn path=/trunk/; revision=53713
2011-09-15 17:11:53 +00:00
Thomas Faber
2fca6b111a [KMTESTS]
- MmSection: properly clean up on failure
- Some more x64 build fixing

svn path=/trunk/; revision=53712
2011-09-15 16:49:22 +00:00
Timo Kreuzer
8f6cfb2651 [HAL/APIC]
- Fix some stuff that gcc complains about. It doesn't like to use static data in non-static inline functions for some unknown reason.
- Implement support for level triggered interrupts, when using lazy irql

svn path=/trunk/; revision=53711
2011-09-15 11:34:21 +00:00
Timo Kreuzer
b7e45abc51 [FREELDR]
- Improve List_PaToVa, making the code cleaner
- Dereference LoaderBlock->Extension only after WinLdrSetProcessorContext, since its in kernel address space

svn path=/trunk/; revision=53710
2011-09-15 11:27:27 +00:00
Timo Kreuzer
00502b9642 [FREELDR/HAL/NDK]
- Move some shared constants (HYPERSPACE_BASE, MM_HAL_VA_START, APIC_BASE) to NDK to avoid duplicating them, also fix wrong values for amd64
- Map the hal address space in amd64 freeldr
- Fix use of uninitialized variable (HighPart of PHYSICAL_ADDRESS) in HalpAcpiCopyBiosTable
- Fix some MSVC and amd64 warnings

svn path=/trunk/; revision=53709
2011-09-15 10:46:02 +00:00
Timo Kreuzer
679d1e828c [GDI32]
Improve GdiAllocBatchCommand formatting and fix MSVC warnings

svn path=/trunk/; revision=53708
2011-09-15 10:12:20 +00:00
Timo Kreuzer
19b8dfac16 [NTOSKRNL]
- Fix MSVC warning about signed/unsigned comparison.

svn path=/trunk/; revision=53707
2011-09-14 14:01:41 +00:00
Timo Kreuzer
16c957463f [SHELL32]
A DialogProc returns INT_PTR, not BOOL

svn path=/trunk/; revision=53706
2011-09-14 06:28:11 +00:00
Timo Kreuzer
57b01f1a06 [PSDK]
Use CHAR instead of char in STRRET structure (as documented in MSDN). Fixes compilation of shell32 with MSVC.

svn path=/trunk/; revision=53705
2011-09-13 21:20:46 +00:00
Timo Kreuzer
a6a01dd912 [HAL]
Fix amd64 build

svn path=/trunk/; revision=53704
2011-09-13 14:44:47 +00:00
Timo Kreuzer
ca9e3a9c67 [NTOSKRNL]
Fix a DPRINT

svn path=/trunk/; revision=53703
2011-09-13 13:28:49 +00:00
Amine Khaldi
3a93089ba7 [SHELL32]
* Merge r53700. Point 3 in bug 6481 was fixed by fixing the parser (at line 414) to use only ',' as the delimiter, to match Windows behavior.

svn path=/trunk/; revision=53702
2011-09-13 13:13:35 +00:00
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