Commit graph

40653 commits

Author SHA1 Message Date
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
Cameron Gutman b9ab91bd82 - Rewrite request queuing
- We now use the documented members of NDIS_MINIPORT_BLOCK
 - It also fixes the issue of determining if the miniport is currently processing a request
 - Remove unneeded IRQL raises
 - Half-plement MiniSendResourcesAvailable (NdisMSendResourcesAvailable)
 - Comment out the code inside ProSendPackets (only used by protocols, not miniports)

svn path=/branches/aicom-network-branch/; revision=45009
2010-01-08 19:15:03 +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
Cameron Gutman e7f721b01f - Remove some incorrect IRQL checks (needed for the NDIS fixes coming soon)
- Change some NdisDprAcquireSpinLock/NdisDprReleaseSpinLock calls to NdisAcquireSpinLock/NdisReleaseSpinLock

svn path=/branches/aicom-network-branch/; revision=45007
2010-01-08 18:36:59 +00:00
Cameron Gutman 7457359d5d - Use a spin lock to protect the port bitmap instead of a fast mutex
svn path=/branches/aicom-network-branch/; revision=45006
2010-01-08 18:21:52 +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
Cameron Gutman 05a505aac8 - Add locking to ICMPSendDatagram
svn path=/branches/aicom-network-branch/; revision=45004
2010-01-08 18:10:05 +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
Timo Kreuzer f6bd1f70d8 [HAL]
- comment out an ASSERT for now
- add Mdl flag MDL_PAGES_LOCKED
- remove obsolete DriverEntry

svn path=/branches/ros-amd64-bringup/; revision=44983
2010-01-06 23:03:19 +00:00
Timo Kreuzer 042bc809cf 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
2010-01-06 22:53:31 +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
Timo Kreuzer ef9b8f7942 [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
2010-01-05 23:02:08 +00:00
Timo Kreuzer 7894b5b522 revert changes to exception.x from 44966
svn path=/branches/ros-amd64-bringup/; revision=44967
2010-01-05 22:58:45 +00:00
Timo Kreuzer 51a5da9298 [RTL]
Reduce difference to trunk (wtf happened to actctx.c?)

svn path=/branches/ros-amd64-bringup/; revision=44966
2010-01-05 22:12:20 +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
Timo Kreuzer 519d3fe61a add global allowwarning="true" and unhack the other rbuild files
svn path=/branches/ros-amd64-bringup/; revision=44964
2010-01-05 21:18:17 +00:00
Ged Murphy 5dfb2cc0c3 Clean up the start code
svn path=/trunk/; revision=44963
2010-01-05 21:14:10 +00:00
Timo Kreuzer 74f902bf27 Reduce differences to trunk
svn path=/branches/ros-amd64-bringup/; revision=44962
2010-01-05 20:42:07 +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