reactos.git
10 years agoSync to trunk HEAD (r45072)
Timo Kreuzer [Thu, 14 Jan 2010 08:53:42 +0000 (08:53 +0000)]
Sync to trunk HEAD (r45072)

svn path=/branches/ros-amd64-bringup/; revision=45074

10 years ago[NTOS]
Timo Kreuzer [Thu, 14 Jan 2010 08:40:16 +0000 (08:40 +0000)]
[NTOS]
Add KeGetContextSwitches macro for amd64

svn path=/branches/ros-amd64-bringup/; revision=45073

10 years ago[HAL]
Timo Kreuzer [Thu, 14 Jan 2010 07:56:34 +0000 (07:56 +0000)]
[HAL]
add HalInitializeBios to amd64 exports

svn path=/branches/ros-amd64-bringup/; revision=45072

10 years agoreduce differences to trunk
Timo Kreuzer [Thu, 14 Jan 2010 07:53:23 +0000 (07:53 +0000)]
reduce differences to trunk

svn path=/branches/ros-amd64-bringup/; revision=45071

10 years ago[Win32k]
James Tabor [Thu, 14 Jan 2010 02:52:12 +0000 (02:52 +0000)]
[Win32k]
- Updated headers and related files.

svn path=/trunk/; revision=45070

10 years agoFix wrong positioned #else
Timo Kreuzer [Thu, 14 Jan 2010 00:45:11 +0000 (00:45 +0000)]
Fix wrong positioned #else

svn path=/branches/ros-amd64-bringup/; revision=45069

10 years ago[Win32k|User32]
James Tabor [Thu, 14 Jan 2010 00:43:54 +0000 (00:43 +0000)]
[Win32k|User32]
- Updated headers for the next round of changes.

svn path=/trunk/; revision=45068

10 years agoremove diff to trunk
Timo Kreuzer [Wed, 13 Jan 2010 23:05:26 +0000 (23:05 +0000)]
remove diff to trunk

svn path=/branches/ros-amd64-bringup/; revision=45067

10 years agoMerge from amd64-branch:
Timo Kreuzer [Wed, 13 Jan 2010 22:35:43 +0000 (22:35 +0000)]
Merge from amd64-branch:
34969 Some ULONG / SIZE_T fixes, handle amd64 in PspCreateThread
34986 Fix several 64 bit issues
35968 Fix Size parameter of CmpAllpcate (ULONG->SIZE_T).
35970 Fix pointer <-> ULONG cast
35971 Fix pointer <-> ULONG cast fixes
36332 fix 64 bit warnings
37435 Fix several ULONG/ULONG_PTR issues. Add a parameter to DefaultQueryInfoBufferCheck for ULONG_PTR/SIZE_T ResultLength
39522 ExInitializeSystemlookasideList: Use InitializeSListHead instead of directly accessing the members. ExpAllocateLocallyUniqueId: use InterlockedCompareExchange64 instead of non-portable ExfInterlockedCompareExchange64
37433 fix InterlockedExchangePointer usage
38105 Use KeGetCurrentPrcb() instead of KeGetPcr()->Prcb / KeGetPcr()->CurrentPrcb
39160 Use wbinvd instruction for amd64, too.

svn path=/trunk/; revision=45066

10 years ago[NTOS]: Fix bug in illegal instruction trap handling. Patch by Timo Kreuzer <physicus...
Sir Richard [Wed, 13 Jan 2010 22:06:48 +0000 (22:06 +0000)]
[NTOS]: Fix bug in illegal instruction trap handling. Patch by Timo Kreuzer <physicus@reactos.org>.

svn path=/trunk/; revision=45065

10 years agoPerf improvements:
Sir Richard [Wed, 13 Jan 2010 22:01:20 +0000 (22:01 +0000)]
Perf improvements:
    [NTOS]: Optimize trap entry/exit by manually copying registers to the trap frame the correct way from the first time. Avoids conversion between PUSHA and KTRAP_FRAMEs and makes trap frames compatible the whole time (other than being slightly faster).
    [NTOS]: Provide compiler with hints on likely code paths during trap entry and exit, which makes the code more linear and improves performance. The following assumptions (known to be true) are made: (1) Interrupts happen more often than system calls (per unit of time), so prioritize paths we take during interrupts. (2) The CPU spends most of its time in Ring 3, so prioritize traps from user-mode. (3) V8086 mode, debugging, 16-bit stacks, are uncommon, so de-prioritize them.
    [NTOS]: Use KTRAP_FRAME offset names recommended by Timo instead of substraction which was confusing some people (still seems clearer to me).

svn path=/trunk/; revision=45064

10 years ago[NTOS]: Remove debug spew (but keep Flag macros and fixes which fixed other bugs...
Sir Richard [Wed, 13 Jan 2010 21:56:14 +0000 (21:56 +0000)]
[NTOS]: Remove debug spew (but keep Flag macros and fixes which fixed other bugs), thanks Timo.

svn path=/trunk/; revision=45063

10 years ago[NTOS]
Timo Kreuzer [Wed, 13 Jan 2010 21:31:55 +0000 (21:31 +0000)]
[NTOS]
KiExitV86Mode is supposed to return a pointer to the protected mode KTRAP_FRAME. Instead it was returning the value of TrapFrame->Edi, which would be identical to PmTrapFrame->Ebp, which doesn't have any particular meaning. Fix it by returning PmTrapFrame directly. Fixes 2nd stage boot.

svn path=/trunk/; revision=45062

10 years agoUpdate the Rapps Entries to up to date Versions.
Daniel Reimer [Wed, 13 Jan 2010 16:48:13 +0000 (16:48 +0000)]
Update the Rapps Entries to up to date Versions.

svn path=/trunk/; revision=45061

10 years agoBug 5072: PATCH: Add ReMooD to ReactOS Application Downloader. (by GhostlyDeath)
Daniel Reimer [Wed, 13 Jan 2010 15:46:00 +0000 (15:46 +0000)]
Bug 5072: PATCH: Add ReMooD to ReactOS Application Downloader. (by GhostlyDeath)
Added a German translation myself.

svn path=/trunk/; revision=45060

10 years ago[NTOS]: Fix some bugs and cleanup V8086 code in regards to flags usage.
Sir Richard [Wed, 13 Jan 2010 03:43:03 +0000 (03:43 +0000)]
[NTOS]: Fix some bugs and cleanup V8086 code in regards to flags usage.
[NTOS]: Add VDM debug spew to see why there's now an invalid opcode on Windows builds of VMWare and certain QEmu combinations. (Note: the double fault issue is fixed, this is a new issue).

svn path=/trunk/; revision=45057

10 years agoUpdate file from trunk
Timo Kreuzer [Wed, 13 Jan 2010 01:10:36 +0000 (01:10 +0000)]
Update file from trunk

svn path=/branches/ros-amd64-bringup/; revision=45056

10 years agoAdd a dummy PSEH2 for amd64
Timo Kreuzer [Tue, 12 Jan 2010 23:15:23 +0000 (23:15 +0000)]
Add a dummy PSEH2 for amd64

svn path=/trunk/; revision=45055

10 years agoEnable a few definitions for amd64, too
Timo Kreuzer [Tue, 12 Jan 2010 20:30:43 +0000 (20:30 +0000)]
Enable a few definitions for amd64, too

svn path=/trunk/; revision=45054

10 years ago[CRT]
Timo Kreuzer [Tue, 12 Jan 2010 20:09:38 +0000 (20:09 +0000)]
[CRT]
__wine_push_frame and __wine_pop_frame are only used in x86 specific code in cppexcept.c. Move them there instead of trying to implement them for other architectures.

svn path=/branches/ros-amd64-bringup/; revision=45053

10 years agoPatch that fixes VMWare boot (and should fix QEMu/KVM boot on the testbot):
Sir Richard [Tue, 12 Jan 2010 05:50:45 +0000 (05:50 +0000)]
Patch that fixes VMWare boot (and should fix QEMu/KVM boot on the testbot):
[NTOS]: A trap can get us into a state where DS/ES are invalid, making any pointer dereference (on DS/ES segmented memory, not SS, the stack) crash (and probably double-fault). Therefore, we have to be careful to switch to a good DS/ES before touching the TrapFrame pointer, which we don't have in ESP like the ASM code, but in a DS/ES-segmented register. For V8086 traps we can switch to the good DS/ES immediately, but for other kinds of traps, we actually need to save the current (bad) segments first. So we save them on the stack now, then switch to the good ones, then store the stack values into the trap frame. This is what happens on a non-optimized (-O0) build. On an optimized build, the segments will end up in registers instead, which is fine too (they'll be direct values). The order of instructions is guaranteed since the segment macros are volatile.
[NTOS]: The GPF and Invalid Opcode handlers are performance critical when talking about V8086 traps, because they control the main flow of execution during that mode (GPFs will be issued for any privileged instruction we need to emulate, and invalid opcode might be generated for BOPs). Because of this, we employ a fast entry/exit macro into V8086 mode since we can make certain assumptions. We detect, and use, such scenarios when the V8086 flag is enabled in EFLAGS. However, because we can land in a GPF handler with an invalid DS/ES, as some V8086 code could trample this during BIOS calls for example, we must make sure that we are on a valid DS/ES before dereferencing any pointer. We fixup DS/ES either in KiEnterTrap (for normal entry/exit) or, for V86, in KiEnterV86Trap. Notice the problem: we need to detect which of these to use early on but we can't touch the EFLAGS in the frame because DS/ES could be invalid. Thankfully SS is always guaranteed valid, so stack dereferences are game! We therefore read the EFLAGS here, in assembly, where we can touch ESP as we please. We save this in EDX, which will be used as the second argument for the FASTCALL C trap entry. When we make the fast V86 check, we use the parameter instead of the trap frame, leading us to using the correct trap entry function, which fixes up DS/ES and lets us go on our merry way...
[NTOS]: Make appropriate changes to GENERATE_TRAP_HANDLERS macro.
[NTOS]: Switch to using well-known NT trap handler names (hex-based, double-zeroed) instead of decimal-based trap handler names which are confusing.
[NTOS]: Clean up some debug spew.

svn path=/trunk/; revision=45052

10 years ago[Win32k]
James Tabor [Tue, 12 Jan 2010 05:25:22 +0000 (05:25 +0000)]
[Win32k]
- More movement to WND with updates to related files. Removed unused code rewritten others. Review patch.

svn path=/trunk/; revision=45051

10 years ago[NTOS]: Bring back a simplified GPF handler just for V8086 opcode detection and V8086...
Sir Richard [Mon, 11 Jan 2010 19:41:50 +0000 (19:41 +0000)]
[NTOS]: Bring back a simplified GPF handler just for V8086 opcode detection and V8086 exit, to see if this resolves testbot booting.

svn path=/trunk/; revision=45048

10 years ago[HAL]
Timo Kreuzer [Mon, 11 Jan 2010 19:29:16 +0000 (19:29 +0000)]
[HAL]
- Move x86 emulator definitions into their own header
- Fix handling of the real mode IDT in x86BiosCall
- Implement HalpBiosDisplayReset
- Fix a copy paste error

svn path=/branches/ros-amd64-bringup/; revision=45047

10 years ago[NTOS]: Switch to a slightly (perhaps, hopefully?) safer version of V86 entry/exit...
Sir Richard [Mon, 11 Jan 2010 18:26:46 +0000 (18:26 +0000)]
[NTOS]: Switch to a slightly (perhaps, hopefully?) safer version of V86 entry/exit to see if this fixes the buildbot boot (suffice it to say, the original code works fine on my test machine, but since half the developers seem to be using GCC 4.4 and the others GCC 4.1, I wouldn't be surprised if there's compiler subtleties involved).

svn path=/trunk/; revision=45046

10 years agoTrap Handlers in C Patch 9 of 12:
Sir Richard [Mon, 11 Jan 2010 17:44:09 +0000 (17:44 +0000)]
Trap Handlers in C Patch 9 of 12:
    [NTOS]: Fix a logic bug in KiExitTrap: Always only restore segments if we came from user-mode (since they might be bogus on a kernel transition as they're not always saved), even if the caller wants segment restore.
    [NTOS]: Small perf boot: do a JMP, not a CALL into C handling code.
    [NTOS]: Make KiGetTickCount/KiCallbackReturn handled in C (as stubs).
    [NTOS]: Implement KeSynchronizeExecution in C. Move Kei386SpinOnSpinLock to C stub.
    [NTOS]: Implement overall architecture for handling hardware interrupts in C. Not used yet, since it needs C code in HAL.

svn path=/trunk/; revision=45045

10 years ago[usb/usbehci]
Michael Martin [Mon, 11 Jan 2010 08:36:12 +0000 (08:36 +0000)]
[usb/usbehci]
- EhciDefferedRoutine: Fix late night brain fart by filling the members of the WorkItemData before queuing the work item.

svn path=/trunk/; revision=45043

10 years ago[Win32k]
James Tabor [Mon, 11 Jan 2010 07:36:48 +0000 (07:36 +0000)]
[Win32k]
- More movement to WND with updates to related files. Added new scroll and get/post message routines. In the mix we did moved to the MONITOR structure.

svn path=/trunk/; revision=45042

10 years ago[NTOS]: Put ASM macros back since the HAL also uses them.
Sir Richard [Mon, 11 Jan 2010 06:41:19 +0000 (06:41 +0000)]
[NTOS]: Put ASM macros back since the HAL also uses them.

svn path=/trunk/; revision=45041

10 years agoTrap Handlers in C Patch 8 of X:
Sir Richard [Mon, 11 Jan 2010 06:08:11 +0000 (06:08 +0000)]
Trap Handlers in C Patch 8 of X:
   [NTOS]: Implement KiCoprocessorError in C.
   [NTOS]: Make NMI handler fully C, now that the other parts are C too.
   [NTOS]: Delete more ASM macros and code that are now unused.

svn path=/trunk/; revision=45040

10 years agomy once a year commit, update email address
Steven Edwards [Mon, 11 Jan 2010 05:58:59 +0000 (05:58 +0000)]
my once a year commit, update email address

svn path=/trunk/; revision=45039

10 years agoTrap handlers in C patch 7 of X:
Sir Richard [Mon, 11 Jan 2010 05:53:57 +0000 (05:53 +0000)]
Trap handlers in C patch 7 of X:
    [NTOS]: Implement GPF handler (trap 13) in C. This was by far the most complex one of them, since it also servces two complex purposes: to handle V86 emulation since the real-mode code will generate GPFs during privileged instructions, and it will detect an illegal IRET, check if it's the known V8086 Exit IRET, and then jump to V86 exit code.
    [NTOS]: Get rid of even more V8086 assembly since the GPF handler is now C. Deleted the entire V8086 assembly file.
    [NTOS]: Get rid of a bunch of helper ASM functions that nobody is using anymore since almost all the trap handlers are in C.

svn path=/trunk/; revision=45038

10 years ago[NTOS]: Rewrite BIOS Call (V8086) Entry/Exit routines in C. Only 4 lines of ASM stub...
Sir Richard [Mon, 11 Jan 2010 03:47:17 +0000 (03:47 +0000)]
[NTOS]: Rewrite BIOS Call (V8086) Entry/Exit routines in C. Only 4 lines of ASM stub remain. This wasn't fun... the stack dancing alone gives you headaches. Who ever thought of dynamically sized trap frames!

svn path=/trunk/; revision=45037

10 years ago- fixes issue with cancel button
Matthias Kupfer [Sun, 10 Jan 2010 23:22:01 +0000 (23:22 +0000)]
- fixes issue with cancel button
- fixes problems with unattended mode
- temporarily enable device listing (setupapi)

svn path=/trunk/; revision=45036

10 years ago-set fix line endings to preserve windows line endings
Matthias Kupfer [Sun, 10 Jan 2010 20:43:27 +0000 (20:43 +0000)]
-set fix line endings to preserve windows line endings

svn path=/trunk/; revision=45035

10 years ago[Win32k]
James Tabor [Sun, 10 Jan 2010 19:06:07 +0000 (19:06 +0000)]
[Win32k]
- When locking and unlocking regions, no need to use probe to check attribute space first before read or write access. The exception handling is a feature.

svn path=/trunk/; revision=45034

10 years ago- Update credits.
James Tabor [Sun, 10 Jan 2010 18:52:17 +0000 (18:52 +0000)]
- Update credits.

svn path=/trunk/; revision=45033

10 years agounbreak build
Sylvain Petreolle [Sun, 10 Jan 2010 17:50:50 +0000 (17:50 +0000)]
unbreak build

svn path=/trunk/; revision=45032

10 years ago[NTOS]: Implement all V8086 Opcode emulation in C instead of ASM.
Sir Richard [Sun, 10 Jan 2010 15:40:00 +0000 (15:40 +0000)]
[NTOS]: Implement all V8086 Opcode emulation in C instead of ASM.

svn path=/trunk/; revision=45029

10 years ago[NTOS]: Simplify trap exit code.
Sir Richard [Sun, 10 Jan 2010 15:00:44 +0000 (15:00 +0000)]
[NTOS]: Simplify trap exit code.
[NTOS]: Move some stuff in appropriate headers.
[NTOS]: Write V86 fast entry/exit traps, needed for later.

svn path=/trunk/; revision=45028

10 years ago[NTOS]: Implement KiAdjustEsp0 in C.
Sir Richard [Sun, 10 Jan 2010 14:32:19 +0000 (14:32 +0000)]
[NTOS]: Implement KiAdjustEsp0 in C.
[NTOS]: Temporarily remove FPU save/restore instructions since they seem to be smashing the stack and breaking boot.

svn path=/trunk/; revision=45027

10 years ago- fixes damaged format of comment
Matthias Kupfer [Sun, 10 Jan 2010 13:54:14 +0000 (13:54 +0000)]
- fixes damaged format of comment

svn path=/trunk/; revision=45026

10 years ago- Fixes a hidden pointer/reference problem with LoadGenentry function, which causes...
Matthias Kupfer [Sun, 10 Jan 2010 13:38:46 +0000 (13:38 +0000)]
- Fixes a hidden pointer/reference problem with LoadGenentry function, which causes the crash at this point

svn path=/trunk/; revision=45025

10 years ago[usb/usbehci]
Michael Martin [Sun, 10 Jan 2010 12:24:01 +0000 (12:24 +0000)]
[usb/usbehci]
- Fix WorkItem Context to pass in Device Extension and the IoWorkItem so it may be freed.

svn path=/trunk/; revision=45024

10 years ago[usb/usbehci]
Michael Martin [Sun, 10 Jan 2010 11:08:51 +0000 (11:08 +0000)]
[usb/usbehci]
- DeviceArrivalWorkItem: Check the device object returned from IoGetAttachedDeviceReference. if its the PDO, deref and return.
- Pass upper attached device object pointer to the completion routine.
- ArrivalNotificationCompletion: Dereference the upper attached device object before returning.

svn path=/trunk/; revision=45023

10 years ago[usb/usbehci]
Michael Martin [Sun, 10 Jan 2010 09:03:53 +0000 (09:03 +0000)]
[usb/usbehci]
- StartDevice: Remove ASSERT for unhanded resource types.
- Add case for CmResourceTypeDevicePrivate, and do nothing for it for now, will fix later if needed.
- Fixes crash on windows.

svn path=/trunk/; revision=45022

10 years ago[Win32k]
James Tabor [Sun, 10 Jan 2010 07:50:57 +0000 (07:50 +0000)]
[Win32k]
- Removed NtUserGetScrollInfo and replaced it, move more type names in window object to WND.

svn path=/trunk/; revision=45021

10 years agoRemoved outdated email addresses.
Eric Kohl [Sat, 9 Jan 2010 22:43:16 +0000 (22:43 +0000)]
Removed outdated email addresses.

svn path=/trunk/; revision=45020

10 years agoReverted some coding-style changes as per Alekseys request.
Eric Kohl [Sat, 9 Jan 2010 21:57:00 +0000 (21:57 +0000)]
Reverted some coding-style changes as per Alekseys request.

svn path=/trunk/; revision=45019

10 years agoFix indentation and coding style. No code changes.
Eric Kohl [Sat, 9 Jan 2010 20:51:33 +0000 (20:51 +0000)]
Fix indentation and coding style. No code changes.

svn path=/trunk/; revision=45018

10 years ago[usb/usbehci]
Michael Martin [Sat, 9 Jan 2010 19:28:29 +0000 (19:28 +0000)]
[usb/usbehci]
- Added numerous structures required for Asynchronous Lists used to communicate with controller. Needs much more work.
- Implement initial retrieving Device and String Descriptors from USB devices.
- Fixed improper handling of Queued IRPs that was causing crashes.
- For now, always queue the Irp if the request is a Urb of type Get Descriptor.
- Reorganized code to trim down source files.

svn path=/trunk/; revision=45017

10 years agoTrap handlers in C patch 6 of X:
Sir Richard [Sat, 9 Jan 2010 15:07:44 +0000 (15:07 +0000)]
Trap handlers in C patch 6 of X:
    [NTOS]: Implement Trap 7 and 16 in C. These are the last two FPU/NPX traps. Not really good with x86 FPU stuff, so there might be some mistakes to look over later.
    [NTOS]: Fixed a bug in Trap 19 handler (forgot to write CR0 back).

svn path=/trunk/; revision=45014

10 years ago[User32]
James Tabor [Sat, 9 Jan 2010 06:16:51 +0000 (06:16 +0000)]
[User32]
- Add corrected behavior for SetWindowRgn, delete region object after setting windows region. See bug 4980.
- After a successful call to SetWindowRgn, the system owns the region specified by the region handle hRgn. The system does not make a copy of the region. Thus, you should not make any further function calls with this region handle. In particular, do not delete this region handle. The system deletes the region handle when it no longer needed.
- References : http://msdn.microsoft.com/en-us/library/dd145102(VS.85).aspx

svn path=/trunk/; revision=45013

10 years agoavoid warning messages on Explorer startup when missing configuration files
Martin Fuchs [Fri, 8 Jan 2010 21:51:43 +0000 (21:51 +0000)]
avoid warning messages on Explorer startup when missing configuration files

svn path=/trunk/; revision=45011

10 years agoTrap handlers in C Patch 5 of X:
Sir Richard [Fri, 8 Jan 2010 19:24:10 +0000 (19:24 +0000)]
Trap handlers in C Patch 5 of X:
    [NDK]:  Add FSW defines for FPU exception bits.
    [NTOS]: Convert trap 19 (XMMI exception) to C.

svn path=/trunk/; revision=45010

10 years agoTrap handlers in C Patch 4 of X:
Sir Richard [Fri, 8 Jan 2010 18:45:04 +0000 (18:45 +0000)]
Trap handlers in C Patch 4 of X:
    [NTOS]: Implement trap 6 (invalid opcode) in C.

svn path=/trunk/; revision=45008

10 years agoTrap Handlers in C Patch 3 of X (Patch by Sir_Richard <ros.arm@reactos.org>):
Sir Richard [Fri, 8 Jan 2010 18:21:47 +0000 (18:21 +0000)]
Trap Handlers in C Patch 3 of X (Patch by Sir_Richard <ros.arm@reactos.org>):
    [NTOS]: Fix a bug in the assertion handler.
    [NTOS]: Implement page fault trap (14) in C instead of ASM.
    [NTOS]: Implement V8086 trap entry/exit, we were hitting these during page faults in Ke386CallBios for video reset during GUI boot.

svn path=/trunk/; revision=45005

10 years ago- fix build, spotted by Stefan
Kamil Hornicek [Fri, 8 Jan 2010 16:06:33 +0000 (16:06 +0000)]
- fix build, spotted by Stefan

svn path=/trunk/; revision=45003

10 years agoTrap Handlers in C Patch 2 of X (Patch by Sir_Richard <ros.arm@reactos.org>):
ReactOS Portable Systems Group [Fri, 8 Jan 2010 15:16:00 +0000 (15:16 +0000)]
Trap Handlers in C Patch 2 of X (Patch by Sir_Richard <ros.arm@reactos.org>):
    [NTOS]: Convert Trap 0, 1, 3, 4, 5, 8, 10, 11, 12, 15, 17, 2C (Assertion) and 2D (Debug) to C. Tested INT3 and still works as expected, and obviously DbgPrint is still functionning (0x2D). The other traps are mainly programming errors such as bound overflow or integer overflow, so we need some test cases, but they should work. Note the 3-4 lines of C for what used to be dozens of ASM lines.
    [NTOS]: Fix infinite loop in KiCheckForApcDelivery.

Stefan Ginsberg: Could you please implement the relevant Extended GCC ASM into MSVC?

svn path=/trunk/; revision=45002

10 years agodefine _tcscpy_s and _tsplitpath_s again for native VC++ builds
Martin Fuchs [Fri, 8 Jan 2010 15:10:50 +0000 (15:10 +0000)]
define _tcscpy_s and _tsplitpath_s again for native VC++ builds

svn path=/trunk/; revision=45001

10 years agoTrap Handlers in C Patch 1 of X (Patch by Sir_Richard <ros.arm@reactos.org>):
ReactOS Portable Systems Group [Fri, 8 Jan 2010 15:04:19 +0000 (15:04 +0000)]
Trap Handlers in C Patch 1 of X (Patch by Sir_Richard <ros.arm@reactos.org>):
    [NTOS]: The kernel normally does not save FPU state during Ring 0 transitions since the FPU should not be used. The one exception is when a kernel debugger is attached. Unfortunately, the latter check in ReactOS results in even "print on the serial line" to count as "debugger attached", and thus FPU state was almost always saved, slowing down traps significantly.
    [NTOS]: The kernel also does not typically save DRx (debug) registers unless they were in use. During an exception dispatch, they are zeroed out, and later during trap exit, if any debug register is set, DR7 is updated to enable that hardware breakpoint. Unfortunately, the code to clear the debug registers had a bug: DR2 was never cleared. Because DR2 ended up being a random stack value during trap frame generation, this caused a bogus address to be added to DR2, and DR7 would then enable the 2nd hardware breakpoint. This caused the kernel to always save DRx state, which is slow, and worse, could cause random hardware breakpoints to fire.
    [NTOS]: Start implementing trap handling in C. ASM trap handlers will now only be 5 lines of assembly including a function call to a C handler. All C handling code uses maximum two arguments and is all FASTCALL for efficiency.
    [NTOS]: Implement C versions of TRAP_PROLOG and TRAP_EPILOG. Implement C version of Ki386EoiHelper. Implement C version of CommonDispatchException (and helper) and KiFatalSystemException. Implement C version of CHECK_FOR_APC_DELIVER. Implement trap debugging checks as a separate entity instead of always doing them.
    [NTOS]: Add missing intrinsics for DS/ES/GS segment query.

The kernel is now ready for some trap handling to be done in C. Due to the FPU/Debug fixes and relaxation of paranoid debug checks, the C code will likely be faster than the original assembly.

svn path=/trunk/; revision=45000

10 years agotemporarily revert to query "defined(__STDC_WANT_SECURE_LIB__) && defined(_MS_VER)"
Martin Fuchs [Fri, 8 Jan 2010 14:48:22 +0000 (14:48 +0000)]
temporarily revert to query "defined(__STDC_WANT_SECURE_LIB__) && defined(_MS_VER)"

svn path=/trunk/; revision=44999

10 years agoupdate XMLStorage to 2010 version
Martin Fuchs [Fri, 8 Jan 2010 13:59:15 +0000 (13:59 +0000)]
update XMLStorage to 2010 version

svn path=/trunk/; revision=44998

10 years agofix TCHAR array initialization
Martin Fuchs [Fri, 8 Jan 2010 13:19:48 +0000 (13:19 +0000)]
fix TCHAR array initialization

svn path=/trunk/; revision=44996

10 years ago[usb/usbehci]
Michael Martin [Fri, 8 Jan 2010 09:55:18 +0000 (09:55 +0000)]
[usb/usbehci]
- CompletePendingRequest: Release the spinlock before and reacquire it after calling IoCallDriver

svn path=/trunk/; revision=44994

10 years ago[usb/usbehci]
Michael Martin [Fri, 8 Jan 2010 09:34:36 +0000 (09:34 +0000)]
[usb/usbehci]
- Initial implementation of usbehci, aka USB 2.0.
- Implement AddDevice, StartDevice, InterruptService and DPC Routines.
- Implement basic IRP queuing and handling.
- Implement starting, stopping of EHCI controller and querying port capabilities.
- Implement PNP for Query Relations, Query ID, Query BusInfo.
- Implement finding the active ports when USB devices are attached and releasing control to companion controller if devices is not a high speed devices.
- Implement reporting devices connects to upper Pdo (hub) driver.
- Hub driver attaches successfully and sends URBs to query descriptors from USB devices on Windows.
- Currently not build enabled as it will cause problems with current UsbDriver in trunk.
- Code heavily based on current PCI drivers and UsbDriver from trunk.

svn path=/trunk/; revision=44993

10 years ago[include/usb200.h]
Michael Martin [Fri, 8 Jan 2010 09:00:53 +0000 (09:00 +0000)]
[include/usb200.h]
- Fix two unions, make text after last #endif a comment as it should be, and add newline at end of file.

svn path=/trunk/; revision=44992

10 years ago- Document and define Timer and System Control Ports (0x43, 0x61) as defined in ISA...
ReactOS Portable Systems Group [Fri, 8 Jan 2010 04:31:19 +0000 (04:31 +0000)]
- Document and define Timer and System Control Ports (0x43, 0x61) as defined in ISA System Architecture 3rd Edition and The Undocumented PC.
- Document PIT access modes, channels and operating modes.
- Rewrite HalHandleNMI to use the System Control Port definitions instead of magic values that were never explained.
- Rewrite HalMakeBeep not to program the PIT with magic hexadecimal values that were not explained anywhere and seem dubious.
- Fix the PIT frequency to match its correct value of ~1.19318MHz which is what every x86 book states and what Linux and all other operating systems use. This is equivalent to one third of the NTSC color burst (subcarrier frequency) used on CGA computers for video output. Previously, the HAL used 1.193167MHz, which is only used by NT and isn't documented anywhere, and in fact appears to be a typo in the NT sources (a less accurate way of dividing the NTSC color burst gives 1.19318167MHz). Somehow, the ReactOS developer of this function must have made the same "typo", by complete coincidence, of course.
- Rewrite part of HalpInitializeClock to use the new definitions. This function was at least somewhat documenting the magic values.

svn path=/trunk/; revision=44991

10 years ago- Restore PROGRAMMER's field correctly.
ReactOS Portable Systems Group [Thu, 7 Jan 2010 19:08:11 +0000 (19:08 +0000)]
- Restore PROGRAMMER's field correctly.

svn path=/trunk/; revision=44990

10 years ago[User32]
James Tabor [Thu, 7 Jan 2010 19:05:57 +0000 (19:05 +0000)]
[User32]
- Patch by James Hawkins : Don't try to free a handle with a value of 1, which is the dde handle value for asynchronous operations.
- Will sync to wine after a review of new WOW implementation.

svn path=/trunk/; revision=44989

10 years ago[User32]
James Tabor [Thu, 7 Jan 2010 18:59:13 +0000 (18:59 +0000)]
[User32]
- Patch by Marcus Meissner : Remove useless NULL check (Coverity).
- Will sync to wine after a review of new WOW implementation.

svn path=/trunk/; revision=44988

10 years ago[User32]
James Tabor [Thu, 7 Jan 2010 18:55:24 +0000 (18:55 +0000)]
[User32]
- Patch by Marcus Meissner : EM_REPLACESEL Handle OOM error.
- Will sync to wine after a review of new WOW implementation.

svn path=/trunk/; revision=44987

10 years ago[HAL]
Timo Kreuzer [Wed, 6 Jan 2010 23:03:19 +0000 (23:03 +0000)]
[HAL]
- comment out an ASSERT for now
- add Mdl flag MDL_PAGES_LOCKED
- remove obsolete DriverEntry

svn path=/branches/ros-amd64-bringup/; revision=44983

10 years agoSome work on Mm initialization, added a call to HalInitializeBios, so we have a mappe...
Timo Kreuzer [Wed, 6 Jan 2010 22:53:31 +0000 (22:53 +0000)]
Some work on Mm initialization, added a call to HalInitializeBios, so we have a mapped bios now.

svn path=/branches/ros-amd64-bringup/; revision=44982

10 years ago[umpnpmgr]
Eric Kohl [Wed, 6 Jan 2010 21:14:13 +0000 (21:14 +0000)]
[umpnpmgr]
Silence device arrival debug messages.

svn path=/trunk/; revision=44981

10 years agoFix PNP_DeviceInstanceAction prototype.
Eric Kohl [Wed, 6 Jan 2010 18:58:10 +0000 (18:58 +0000)]
Fix PNP_DeviceInstanceAction prototype.

svn path=/trunk/; revision=44980

10 years ago- missed this one, sorry
Kamil Hornicek [Wed, 6 Jan 2010 15:05:25 +0000 (15:05 +0000)]
- missed this one, sorry

svn path=/trunk/; revision=44979

10 years ago- sync wined3d, ddraw, d3d8 and d3d9 with Wine 1.1.35
Kamil Hornicek [Wed, 6 Jan 2010 14:59:04 +0000 (14:59 +0000)]
- sync wined3d, ddraw, d3d8 and d3d9 with Wine 1.1.35

svn path=/trunk/; revision=44978

10 years ago- fix definition of ComposeRects
Kamil Hornicek [Wed, 6 Jan 2010 14:19:58 +0000 (14:19 +0000)]
- fix definition of ComposeRects

svn path=/trunk/; revision=44977

10 years agoFix pause / resume code. The buttons need fixing yet so it still won't work, although...
Ged Murphy [Wed, 6 Jan 2010 13:10:09 +0000 (13:10 +0000)]
Fix pause / resume code. The buttons need fixing yet so it still won't work, although the menu items probably will.

svn path=/trunk/; revision=44976

10 years ago[win32k]
Giannis Adamopoulos [Wed, 6 Jan 2010 12:44:31 +0000 (12:44 +0000)]
[win32k]
- Rewrite SetCursorPos and ShowCursror
- Store coursor show count in SYSTEM_CURSORINFO and not in GDIPOINTER
- Fix broken behaviour in ClipCursor

svn path=/trunk/; revision=44975

10 years ago[freeldr]
Dmitry Gorbachev [Wed, 6 Jan 2010 11:44:54 +0000 (11:44 +0000)]
[freeldr]
- Do not use GetSystemMemorySize(), which truncates size to 32 bit.
- Other minor changes.

svn path=/trunk/; revision=44974

10 years agoCheck if MmHeapAlloc() failed.
Dmitry Gorbachev [Wed, 6 Jan 2010 01:28:23 +0000 (01:28 +0000)]
Check if MmHeapAlloc() failed.

svn path=/trunk/; revision=44972

10 years ago- Implement NMI handler in C instead of ASM.
ReactOS Portable Systems Group [Wed, 6 Jan 2010 00:40:07 +0000 (00:40 +0000)]
- Implement NMI handler in C instead of ASM.
- Tested with the "nmi 0" command in QEMU and NmiDbg.sys.

svn path=/trunk/; revision=44971

10 years ago[RTL]
Timo Kreuzer [Wed, 6 Jan 2010 00:39:07 +0000 (00:39 +0000)]
[RTL]
Merge from amd64 branch
35738,37004,37308,37324,37330,37331,37332,37370,37419,37424,37425,37428,37473,37492,37844,37911,37987,40604,41006,43686,43951,43953,43980,43993,44001,44289,44295,44296,44428,44966,44967,44968

- Implement amd64 specific RTL functions: RtlLookupFunctionTable, RtlLookupFunctionEntry, RtlCaptureContext, RtlVirtualUnwind, RtlWalkFrameChain, RtlGetCallersAddress, RtlRaiseException (Timo Kreuzer)
- Implement amd64 asm functions: RtlCompareMemory, DebugService, RtlInterlockedPopEntrySList, RtlInterlockedPushEntrySList and RtlInterlockedFlushSList (Timo Kreuzer)
- Don't use double in rtl's sprintf / swprintf, use double_t union instead. (Stefan Ginsberg)

svn path=/trunk/; revision=44970

10 years agoFix memory leak in CreateToolhelp32Snapshot(). Bug #5096.
Dmitry Gorbachev [Tue, 5 Jan 2010 23:28:16 +0000 (23:28 +0000)]
Fix memory leak in CreateToolhelp32Snapshot(). Bug #5096.

svn path=/trunk/; revision=44969

10 years ago[RTL]
Timo Kreuzer [Tue, 5 Jan 2010 23:02:08 +0000 (23:02 +0000)]
[RTL]
Patch by Stefan Ginsberg:
Don't use double in rtl's sprintf / swprintf, use double_t union instead. Minor modifications by me.

svn path=/branches/ros-amd64-bringup/; revision=44968

10 years agorevert changes to exception.x from 44966
Timo Kreuzer [Tue, 5 Jan 2010 22:58:45 +0000 (22:58 +0000)]
revert changes to exception.x from 44966

svn path=/branches/ros-amd64-bringup/; revision=44967

10 years ago[RTL]
Timo Kreuzer [Tue, 5 Jan 2010 22:12:20 +0000 (22:12 +0000)]
[RTL]
Reduce difference to trunk (wtf happened to actctx.c?)

svn path=/branches/ros-amd64-bringup/; revision=44966

10 years agoClean up the pause and resume code and a few other bits and bobs
Ged Murphy [Tue, 5 Jan 2010 21:43:00 +0000 (21:43 +0000)]
Clean up the pause and resume code and a few other bits and bobs

svn path=/trunk/; revision=44965

10 years agoadd global allowwarning="true" and unhack the other rbuild files
Timo Kreuzer [Tue, 5 Jan 2010 21:18:17 +0000 (21:18 +0000)]
add global allowwarning="true" and unhack the other rbuild files

svn path=/branches/ros-amd64-bringup/; revision=44964

10 years agoClean up the start code
Ged Murphy [Tue, 5 Jan 2010 21:14:10 +0000 (21:14 +0000)]
Clean up the start code

svn path=/trunk/; revision=44963

10 years agoReduce differences to trunk
Timo Kreuzer [Tue, 5 Jan 2010 20:42:07 +0000 (20:42 +0000)]
Reduce differences to trunk

svn path=/branches/ros-amd64-bringup/; revision=44962

10 years ago[SERVMAN]
Ged Murphy [Tue, 5 Jan 2010 20:41:14 +0000 (20:41 +0000)]
[SERVMAN]
- Fully implement stopping all dependent services
- When stopping a service, only list other running services which require stopping
- Use the same progress dialog for stopping multiple services and make it smoother

svn path=/trunk/; revision=44961

10 years ago[spoolsv]
Eric Kohl [Tue, 5 Jan 2010 20:32:02 +0000 (20:32 +0000)]
[spoolsv]
- Switch to wine debug macros. Add new debug channel spoolsv.
- Update service status when the service receives a control message.

svn path=/trunk/; revision=44960

10 years ago[umpnpmgr]
Eric Kohl [Tue, 5 Jan 2010 20:26:31 +0000 (20:26 +0000)]
[umpnpmgr]
PNP_DeviceInstanceAction: Call a separate function for each action.

svn path=/trunk/; revision=44959

10 years ago[WIN32k]
Timo Kreuzer [Tue, 5 Jan 2010 20:06:33 +0000 (20:06 +0000)]
[WIN32k]
Fix some 64 bit issues.

svn path=/trunk/; revision=44958

10 years agoMake the logic easier to read
Ged Murphy [Tue, 5 Jan 2010 19:27:14 +0000 (19:27 +0000)]
Make the logic easier to read

svn path=/trunk/; revision=44957

10 years ago[win32k] / [user32]
Timo Kreuzer [Tue, 5 Jan 2010 19:26:32 +0000 (19:26 +0000)]
[win32k] / [user32]
Merge from amd64 branch:
34780 some DWORD -> DWORD_PTR (Timo Kreuzer)
34781 fix usage of InterlockedCompareExchangePointer (Timo Kreuzer)
34782 fix usage of InterlockedCompareExchangePointer (Timo Kreuzer)
34908 some 64 bit fixes in win32k (Timo Kreuzer)
34909 some more win32k 64 bit fixes (Timo Kreuzer)
34965 Fix typos. (Samuel SerapiĆ³n)
41479 Remove usage of RETURN() macro (Timo Kreuzer)
41540 Make parameters for NtUserCallOneParam and NtUserCallTwoParam DWORD_PTR instead of DWORD (Timo Kreuzer)
41546 Add _FLOATOBJ_GetFix for non-x86 (Timo Kreuzer)
41547 Only export FLOATOBJ_* api on x86 (Timo Kreuzer)
44238 Fix some 64 bit isues. (Timo Kreuzer)
43969 undefine i386 in the pspec file (Timo Kreuzer)

svn path=/trunk/; revision=44956

10 years agoDisplay all service dependants which need stopping
Ged Murphy [Tue, 5 Jan 2010 19:19:06 +0000 (19:19 +0000)]
Display all service dependants which need stopping

svn path=/trunk/; revision=44955