Commit graph

40278 commits

Author SHA1 Message Date
Eric Kohl 1145a26d92 Fix indentation and coding style. No code changes.
svn path=/trunk/; revision=45018
2010-01-09 20:51:33 +00:00
Michael Martin ce0ab52c93 [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
2010-01-09 19:28:29 +00:00
Sir Richard f1e6ecbc60 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
2010-01-09 15:07:44 +00:00
James Tabor 1b346fdad3 [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
2010-01-09 06:16:51 +00:00
Martin Fuchs 34689ba8c7 avoid warning messages on Explorer startup when missing configuration files
svn path=/trunk/; revision=45011
2010-01-08 21:51:43 +00:00
Sir Richard 8d89e2b027 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
2010-01-08 19:24:10 +00:00
Sir Richard 733c152673 Trap handlers in C Patch 4 of X:
[NTOS]: Implement trap 6 (invalid opcode) in C.

svn path=/trunk/; revision=45008
2010-01-08 18:45:04 +00:00
Sir Richard 8323208ddf 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
2010-01-08 18:21:47 +00:00
Kamil Hornicek b308ece644 - fix build, spotted by Stefan
svn path=/trunk/; revision=45003
2010-01-08 16:06:33 +00:00
ReactOS Portable Systems Group 0940d6e34a 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
2010-01-08 15:16:00 +00:00
Martin Fuchs 34ad648d58 define _tcscpy_s and _tsplitpath_s again for native VC++ builds
svn path=/trunk/; revision=45001
2010-01-08 15:10:50 +00:00
ReactOS Portable Systems Group ba415f6e7b 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
2010-01-08 15:04:19 +00:00
Martin Fuchs 873a68e758 temporarily revert to query "defined(__STDC_WANT_SECURE_LIB__) && defined(_MS_VER)"
svn path=/trunk/; revision=44999
2010-01-08 14:48:22 +00:00
Martin Fuchs e09bb852c0 update XMLStorage to 2010 version
svn path=/trunk/; revision=44998
2010-01-08 13:59:15 +00:00
Martin Fuchs 449aa18843 fix TCHAR array initialization
svn path=/trunk/; revision=44996
2010-01-08 13:19:48 +00:00
Michael Martin 2aac7f8c6a [usb/usbehci]
- CompletePendingRequest: Release the spinlock before and reacquire it after calling IoCallDriver

svn path=/trunk/; revision=44994
2010-01-08 09:55:18 +00:00
Michael Martin 86cc8888f0 [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
2010-01-08 09:34:36 +00:00
Michael Martin 4a5921d8fa [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
2010-01-08 09:00:53 +00:00
ReactOS Portable Systems Group 6ce614c110 - 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
2010-01-08 04:31:19 +00:00
ReactOS Portable Systems Group 53236395a1 - Restore PROGRAMMER's field correctly.
svn path=/trunk/; revision=44990
2010-01-07 19:08:11 +00:00
James Tabor 337d120ece [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
2010-01-07 19:05:57 +00:00
James Tabor d688d91275 [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
2010-01-07 18:59:13 +00:00
James Tabor 432bd7570f [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
2010-01-07 18:55:24 +00:00
Eric Kohl 4c9596a9ad [umpnpmgr]
Silence device arrival debug messages.

svn path=/trunk/; revision=44981
2010-01-06 21:14:13 +00:00
Eric Kohl ffab3fc13c Fix PNP_DeviceInstanceAction prototype.
svn path=/trunk/; revision=44980
2010-01-06 18:58:10 +00:00
Kamil Hornicek 241b55764e - missed this one, sorry
svn path=/trunk/; revision=44979
2010-01-06 15:05:25 +00:00
Kamil Hornicek 721e80ba4d - sync wined3d, ddraw, d3d8 and d3d9 with Wine 1.1.35
svn path=/trunk/; revision=44978
2010-01-06 14:59:04 +00:00
Kamil Hornicek 39095e89ae - fix definition of ComposeRects
svn path=/trunk/; revision=44977
2010-01-06 14:19:58 +00:00
Ged Murphy 0c02d2184e 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
2010-01-06 13:10:09 +00:00
Giannis Adamopoulos b8882998c7 [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
2010-01-06 12:44:31 +00:00
Dmitry Gorbachev 15269e4b77 [freeldr]
- Do not use GetSystemMemorySize(), which truncates size to 32 bit.
- Other minor changes.

svn path=/trunk/; revision=44974
2010-01-06 11:44:54 +00:00
Dmitry Gorbachev a71c3f0d12 Check if MmHeapAlloc() failed.
svn path=/trunk/; revision=44972
2010-01-06 01:28:23 +00:00
ReactOS Portable Systems Group 4b9333f4a1 - Implement NMI handler in C instead of ASM.
- Tested with the "nmi 0" command in QEMU and NmiDbg.sys.


svn path=/trunk/; revision=44971
2010-01-06 00:40:07 +00:00
Timo Kreuzer 2736e830ea [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
2010-01-06 00:39:07 +00:00
Dmitry Gorbachev 0c5fed9d71 Fix memory leak in CreateToolhelp32Snapshot(). Bug #5096.
svn path=/trunk/; revision=44969
2010-01-05 23:28:16 +00:00
Ged Murphy d4aca75523 Clean up the pause and resume code and a few other bits and bobs
svn path=/trunk/; revision=44965
2010-01-05 21:43:00 +00:00
Ged Murphy 5dfb2cc0c3 Clean up the start code
svn path=/trunk/; revision=44963
2010-01-05 21:14:10 +00:00
Ged Murphy d5bc8625fb [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
2010-01-05 20:41:14 +00:00
Eric Kohl ef88ea7724 [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
2010-01-05 20:32:02 +00:00
Eric Kohl 9fb7195e8e [umpnpmgr]
PNP_DeviceInstanceAction: Call a separate function for each action.

svn path=/trunk/; revision=44959
2010-01-05 20:26:31 +00:00
Timo Kreuzer b473a12aff [WIN32k]
Fix some 64 bit issues.

svn path=/trunk/; revision=44958
2010-01-05 20:06:33 +00:00
Ged Murphy bb5ea9e289 Make the logic easier to read
svn path=/trunk/; revision=44957
2010-01-05 19:27:14 +00:00
Timo Kreuzer dfe969ab14 [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
2010-01-05 19:26:32 +00:00
Ged Murphy 24e15791e0 Display all service dependants which need stopping
svn path=/trunk/; revision=44955
2010-01-05 19:19:06 +00:00
Ged Murphy 8320c599d1 Switch to crt string safe functions. Remove some commented code
svn path=/trunk/; revision=44954
2010-01-05 18:39:47 +00:00
Ged Murphy a854583327 Forgot the comments in this file
svn path=/trunk/; revision=44953
2010-01-05 18:16:43 +00:00
Timo Kreuzer 927ff64dae [CSRSS]
Merge from ams64 branch:
35805 remove unneeded msvcrt dependency (all win32 projects already depend on it) (Samuel Serapión)
36992 - Fix csrss compilation (treat handles as pointer sized, use SIZE_T where appropriate) (Stefan Ginsberg)
41485 Fix 64bit issues. (Timo Kreuzer)
41531 fix pointer <-> DWORD casts (Timo Kreuzer)
41536 win32csr: convert to spec (Timo Kreuzer)
43838 Fix csrss build. (Samuel Serapión)

svn path=/trunk/; revision=44952
2010-01-05 18:13:00 +00:00
Ged Murphy 40d9015811 - Reimplement service stop routines.
- Stopping single services should now work again, full dependency trees won't yet.

svn path=/trunk/; revision=44951
2010-01-05 18:08:41 +00:00
Timo Kreuzer 05c33f5b6b [ATL]
Merged from amd64 branch:
- add amd64 specific thunkCode
- get rid of a cast

svn path=/trunk/; revision=44950
2010-01-05 17:38:03 +00:00
Ged Murphy bbf8c31b35 More code towards getting servman to stop services again, etc...
(clearly not a message for the changelog)

svn path=/trunk/; revision=44949
2010-01-05 17:14:08 +00:00