reactos.git
14 years agoMerge from amd64-branch:
Timo Kreuzer [Thu, 21 Jan 2010 22:34:01 +0000 (22:34 +0000)]
Merge from amd64-branch:
44886 KxAcquireSpinLock: check for already owned lock only on debug builds, fix check in inner loop, don't call Kii386SpinOnSpinLock inside the inner loop, but instead of it, simplify the code. Stubplement Kii386SpinOnSpinLock in C
44893 Move spinlock inline functions into their own header, so they can be shared with hal.

svn path=/trunk/; revision=45196

14 years ago[HAL]
Timo Kreuzer [Thu, 21 Jan 2010 21:05:45 +0000 (21:05 +0000)]
[HAL]
Cleanup part 1/x
- Rename each architectures default hal to "hal" and delete the stubbed "hal" module.
- Delete halamd64 (will later reuse the x86 hal)
- Rename "halmp" to "halmps" as it's called on windows
- Set HalInitSystem as entry point
- Move pcibus.c into hal_generic.rbuild
- Use a common .pspec file
- Use a directory.rbuild for halx86 as it was done for the other architectures already
- Move some code from hal_generic to hal_generic_up
- No code change

svn path=/trunk/; revision=45195

14 years ago[HAL]
Christoph von Wittich [Thu, 21 Jan 2010 13:43:49 +0000 (13:43 +0000)]
[HAL]
-header cleanup
-spaces -> tabs in rbuild file

svn path=/trunk/; revision=45183

14 years ago[HAL]: The HAL is a mess. Fix build.
Sir Richard [Thu, 21 Jan 2010 13:36:30 +0000 (13:36 +0000)]
[HAL]: The HAL is a mess. Fix build.

svn path=/trunk/; revision=45182

14 years ago[Win32k]
James Tabor [Thu, 21 Jan 2010 13:18:33 +0000 (13:18 +0000)]
[Win32k]
- Fixes to region support code. See bug 5124.

svn path=/trunk/; revision=45181

14 years ago[HAL]: Initialize the i8259A PIC controllers in C, and add register structures and...
Sir Richard [Thu, 21 Jan 2010 12:51:13 +0000 (12:51 +0000)]
[HAL]: Initialize the i8259A PIC controllers in C, and add register structures and enumerations to document the bits. These were taken from ISA System Architecture 3rd Edition and EISA System Architecture 2nd Edition by Mindshare.
[HAL]: Add code to detect EISA systems with ELCR (Edge/Level Control Register). Since the current HAL does not support these, warn users about any level/shared interrupts, since they are likely to cause trouble.

svn path=/trunk/; revision=45180

14 years agoMerge aicom-network-branch (without NDIS changes for now)
Cameron Gutman [Thu, 21 Jan 2010 03:48:10 +0000 (03:48 +0000)]
Merge aicom-network-branch (without NDIS changes for now)
New noteworthy improvements include (in addition to the other improvements made in the commits that were reverted in trunk):
 - Support for sending/receiving packets > 16KB in size
 - Samba-tng works
 - Tracert works
 - Major speed and stability improvements (especially for TCP connections)
 - Use ExAllocatePoolWithTag/ExFreePoolWithTag instead of memtrack

svn path=/trunk/; revision=45172

14 years ago[Win32k]
James Tabor [Thu, 21 Jan 2010 02:58:52 +0000 (02:58 +0000)]
[Win32k]
- Add system region support functions.

svn path=/trunk/; revision=45171

14 years ago[Win32k]
James Tabor [Thu, 21 Jan 2010 01:39:19 +0000 (01:39 +0000)]
[Win32k]
- Implement IntGdiSetBrushOwner for bug 5124.

svn path=/trunk/; revision=45170

14 years ago[User32]
James Tabor [Thu, 21 Jan 2010 00:49:25 +0000 (00:49 +0000)]
[User32]
- Revert 44988, fix crash in win user32 wine test.

svn path=/trunk/; revision=45169

14 years ago[Win32k]
James Tabor [Thu, 21 Jan 2010 00:14:06 +0000 (00:14 +0000)]
[Win32k]
- System regions do not possess user attribute sections. See bug 5124.
- Read the patch for more information.

svn path=/trunk/; revision=45168

14 years ago[RTL]
Timo Kreuzer [Wed, 20 Jan 2010 23:34:21 +0000 (23:34 +0000)]
[RTL]
Fix a bug in RtlFindNextForwardRunSet, that was returning the wrong bit position. Found by Amine Khaldi.

svn path=/trunk/; revision=45167

14 years agoTry to fix FF2 Download.
Daniel Reimer [Wed, 20 Jan 2010 23:19:22 +0000 (23:19 +0000)]
Try to fix FF2 Download.

svn path=/trunk/; revision=45166

14 years ago[CRT]
Timo Kreuzer [Wed, 20 Jan 2010 22:56:01 +0000 (22:56 +0000)]
[CRT]
Remove unused variables. Patch by Amine Khaldi.

svn path=/trunk/; revision=45165

14 years ago[RBUILD]: Use correct kernel entrypoint symbol name. Forgot to commit this earlier.
Sir Richard [Wed, 20 Jan 2010 14:09:50 +0000 (14:09 +0000)]
[RBUILD]: Use correct kernel entrypoint symbol name. Forgot to commit this earlier.

Please, next time before you harass us with e-mails, try to read your logs. LD choses a random entrypoint if the symbol cannot be found.

svn path=/trunk/; revision=45162

14 years agoFix build-2.
Dmitry Gorbachev [Wed, 20 Jan 2010 10:59:39 +0000 (10:59 +0000)]
Fix build-2.

svn path=/trunk/; revision=45161

14 years agoFix build.
Dmitry Gorbachev [Wed, 20 Jan 2010 10:38:40 +0000 (10:38 +0000)]
Fix build.

svn path=/trunk/; revision=45160

14 years ago[NTOS]: Implement KiSwapProcess in C.
Sir Richard [Wed, 20 Jan 2010 04:05:08 +0000 (04:05 +0000)]
[NTOS]: Implement KiSwapProcess in C.
[NTOS]: Implement KiIsNpxPresent and KiIsNpxErrataPresent in C. It's much clearer what these are doing now.
[NTOS]: Implement KiFlushNPXState and fix some bugs that were present in the ASM version, such as a wrong NPX state check.
[NTOS]: Implement working intrinsics for fxrstor, fxsave, fnsave and enable them for flushing. We'll update the FPU trap code to use these later.

svn path=/trunk/; revision=45156

14 years ago- Add dclevel flags.
James Tabor [Wed, 20 Jan 2010 01:40:27 +0000 (01:40 +0000)]
- Add dclevel flags.

svn path=/trunk/; revision=45155

14 years ago[NTOS]: Workaround for GCC 4.4.x bug reported by Dmitry.
Sir Richard [Tue, 19 Jan 2010 22:21:12 +0000 (22:21 +0000)]
[NTOS]: Workaround for GCC 4.4.x bug reported by Dmitry.

svn path=/trunk/; revision=45154

14 years ago- fix build, thanks Black_Fox
Kamil Hornicek [Tue, 19 Jan 2010 21:19:56 +0000 (21:19 +0000)]
- fix build, thanks Black_Fox

svn path=/trunk/; revision=45153

14 years ago[FREELDR]: Jump to a standard 1-parameter STDCALL kernel entrypoint instead of a...
Sir Richard [Tue, 19 Jan 2010 18:27:24 +0000 (18:27 +0000)]
[FREELDR]: Jump to a standard 1-parameter STDCALL kernel entrypoint instead of a FASTCALL double-parameter entrypoint.
[NTOS]: Make KiSystemStartup the real C entrypoint of the kernel, and move the "Am I being booted by FreeLDR" logic inside it -- it will then call KiRosPrepareForSystemStartup as earlier.
[NTOS]: Move the Double Fault and Boot Stack declaration in C code, with the proper alignment attribute.
[NTOS]: Although the concern that KiSystemStartup cannot be 100% C since it modifies ESP is real (Thomas' original fix of Alex's code), we don't need that much of it in assembly. Instead, write a simple trampoline (KiSwitchToBootStack) inline which switches stacks and jumps to a second-stage C function.
[NTOS]: Completely remove boot.S as it isn't needed anymore, ReactOS startup is back to being (nearly) 100% C.

svn path=/trunk/; revision=45152

14 years ago[NTOS]: Try backing out a change to see if thix fixes BuildBot.
Sir Richard [Tue, 19 Jan 2010 15:26:16 +0000 (15:26 +0000)]
[NTOS]: Try backing out a change to see if thix fixes BuildBot.

svn path=/trunk/; revision=45150

14 years agoUpdate the d3dx9_XX.dll files to the recent wine release version. Mostly stubs, but...
Daniel Reimer [Tue, 19 Jan 2010 10:09:33 +0000 (10:09 +0000)]
Update the d3dx9_XX.dll files to the recent wine release version. Mostly stubs, but many games appreciate their existance.

svn path=/trunk/; revision=45149

14 years ago[NTOS]: Implement GUI thread promotion during the first GUI system call in C. This...
Sir Richard [Tue, 19 Jan 2010 09:45:30 +0000 (09:45 +0000)]
[NTOS]: Implement GUI thread promotion during the first GUI system call in C.  This is tricky due to EBP, and actually requires some tiny inline ASM magic to make it work right.
[NTOS]: Implement SYSENTER system calls in C as well.

All system calls are now handled in C. This code will be further optimized/refined soon.

svn path=/trunk/; revision=45148

14 years ago[NTOS]: Convert system call handling to C. Only kernel system calls are done this...
Sir Richard [Tue, 19 Jan 2010 09:20:40 +0000 (09:20 +0000)]
[NTOS]: Convert system call handling to C. Only kernel system calls are done this way for now, not SYSENTER calls from user-mode. A small ASM trampoline is used inline for the call itself.

svn path=/trunk/; revision=45147

14 years ago[NTOS]: Fix build.
Sir Richard [Tue, 19 Jan 2010 08:51:37 +0000 (08:51 +0000)]
[NTOS]: Fix build.

svn path=/trunk/; revision=45146

14 years ago[NTOS]: We don't actually need wrappers for NtContinue/NtRaiseException. These are...
Sir Richard [Tue, 19 Jan 2010 08:41:03 +0000 (08:41 +0000)]
[NTOS]: We don't actually need wrappers for NtContinue/NtRaiseException. These are now fully portable C code, so move them appropriately.

svn path=/trunk/; revision=45145

14 years ago[NTOS]: Kei386EoiHelper now jumps into the C KiEoiHelper. All interrupt exit is now...
Sir Richard [Tue, 19 Jan 2010 08:35:37 +0000 (08:35 +0000)]
[NTOS]: Kei386EoiHelper now jumps into the C KiEoiHelper. All interrupt exit is now done through the C trap exit code.
[NTOS]: The ASM KiServiceExit/KiServiceExit2 are no more. All system call exit is now done through the C trap exit code.

svn path=/trunk/; revision=45144

14 years ago[NTOS]: Implement the special NtRaiseException in C as well, just like we did for...
Sir Richard [Tue, 19 Jan 2010 08:26:25 +0000 (08:26 +0000)]
[NTOS]: Implement the special NtRaiseException in C as well, just like we did for NtContinue.

svn path=/trunk/; revision=45143

14 years ago[NTOS]: Implement "Edited Trap Frame" exit. This funky trick is actually how NT emula...
Sir Richard [Tue, 19 Jan 2010 08:20:12 +0000 (08:20 +0000)]
[NTOS]: Implement "Edited Trap Frame" exit. This funky trick is actually how NT emulates longjmp/setjmp when doing an NtContinue: it allows arbitrary return with a new CS/ESP.
[NTOS]: Implement C version of KiServiceExit, the second system call exit routine. This one sets a new EAX value to be returned to the caller and is used by system calls.
[NTOS]: Implement NtContinue in C instead of ASM. Due to the changes above, this can now be done in C and use the new KiServiceExit.

svn path=/trunk/; revision=45142

14 years ago[NTOS]: Implement KiServiceExit2, C Version. This is used for exiting to user-mode...
Sir Richard [Tue, 19 Jan 2010 06:34:15 +0000 (06:34 +0000)]
[NTOS]: Implement KiServiceExit2, C Version. This is used for exiting to user-mode with full state restore (as in NtContinue, thread startup, NtRaiseException...).
[NTOS]: Implement system service exit (for system calls or KiServiceExit2) in KiExitTrap. Both iret (for user calls), jmp (for kernel calls) and sysexit (for user fast calls) are implemented.
[NTOS]: Implement KiThreadStartup in C instead of ASM. It is the first caller of the new KiServiceExit2. Threads now start up in C!

svn path=/trunk/; revision=45141

14 years ago[NTOS]: Implement KeUpdateSystemTime and KeUpdateRunTime in C instead of ASM. Based...
Sir Richard [Tue, 19 Jan 2010 06:16:47 +0000 (06:16 +0000)]
[NTOS]: Implement KeUpdateSystemTime and KeUpdateRunTime in C instead of ASM. Based off eVb's ARM implementation, with multiple bugs fixed (incorrect update of system counters, incorrect expiration of timers, remove non-used debug features, use locks when needed).
[NTOS]: Implement KiComputeTimerTableIndex in C instead of ASM. Based off eVb's ARM implementation, bugfixed to do correct math instead.

As a side effect, this should fix timers on ARM ;-)

svn path=/trunk/; revision=45140

14 years ago[WINDOWSCODECS]
Christoph von Wittich [Mon, 18 Jan 2010 20:39:30 +0000 (20:39 +0000)]
[WINDOWSCODECS]
update wincodec.idl to wine 1.1.36

svn path=/trunk/; revision=45139

14 years ago[WINDOWSCODECS]
Christoph von Wittich [Mon, 18 Jan 2010 20:36:58 +0000 (20:36 +0000)]
[WINDOWSCODECS]
update windowscodecs to wine 1.1.36

svn path=/trunk/; revision=45138

14 years ago[NTOS]
Timo Kreuzer [Mon, 18 Jan 2010 17:24:28 +0000 (17:24 +0000)]
[NTOS]
Fix possible NULL pointer dereference. Spotted by Amine Khaldi.

svn path=/trunk/; revision=45137

14 years ago[MSHTML_WINETEST]
Christoph von Wittich [Mon, 18 Jan 2010 16:59:11 +0000 (16:59 +0000)]
[MSHTML_WINETEST]
update mshtml winetest to wine 1.1.36

svn path=/trunk/; revision=45136

14 years ago[MSXML3]
Christoph von Wittich [Mon, 18 Jan 2010 16:53:59 +0000 (16:53 +0000)]
[MSXML3]
update msxml3 to wine 1.1.36

svn path=/trunk/; revision=45135

14 years ago[NTOS]
Timo Kreuzer [Mon, 18 Jan 2010 16:43:58 +0000 (16:43 +0000)]
[NTOS]
Fix buffer overrun in ExFreePoolWithTag when dealing with a PoolType other than NonPagedPool and PagedPool. Spotted by Amine Khaldi.

svn path=/trunk/; revision=45134

14 years ago[MSHTML]
Christoph von Wittich [Mon, 18 Jan 2010 16:27:14 +0000 (16:27 +0000)]
[MSHTML]
update mshtml to wine 1.1.36

svn path=/trunk/; revision=45133

14 years ago[NTOS]
Timo Kreuzer [Mon, 18 Jan 2010 16:16:59 +0000 (16:16 +0000)]
[NTOS]
KiTrap0DHandler: fix buffer overrun (Spotted by Amine Khaldi) and optimize the code by checking the counter variable, instead of Instruction, this works the same, but the compiler can make sense of it and safe one comparison.

svn path=/trunk/; revision=45132

14 years ago[ADVAPI]
Sylvain Petreolle [Mon, 18 Jan 2010 16:03:30 +0000 (16:03 +0000)]
[ADVAPI]
Sync OpenEventLogA with wine.
RtlCreateUnicodeStringFromAsciiz breaks null checks.

svn path=/trunk/; revision=45131

14 years ago[QUARTZ]
Christoph von Wittich [Mon, 18 Jan 2010 14:28:36 +0000 (14:28 +0000)]
[QUARTZ]
update quartz to wine 1.1.36

svn path=/trunk/; revision=45130

14 years ago - Fix calculation of the maximum data size (it previously calculated 65519 (0xFFFF...
Cameron Gutman [Mon, 18 Jan 2010 00:52:31 +0000 (00:52 +0000)]
 - Fix calculation of the maximum data size (it previously calculated 65519 (0xFFFF - sizeof(ICMPv4Header) - sizeof(LARGE_INTEGER)) which was wrong because the real maximum was 65499  (0xFFFF - sizeof(IPv4Header) - sizeof(ICMPv4Header) - sizeof(LARGE_INTEGER)))
 - Implement -f and -i options
 - Note: This raises our max ping data size to 65507 (0xFFFF - sizeof(IPv4Header) - sizeof(ICMPv4Header)) so we match linux's (iputils) ping max size but Windows' max is 65500 and I'm not sure if we should change our code to match Windows or not

svn path=/branches/aicom-network-branch/; revision=45129

14 years ago- fix file path in header
Matthias Kupfer [Sun, 17 Jan 2010 22:37:09 +0000 (22:37 +0000)]
- fix file path in header
- add German translation

svn path=/trunk/; revision=45128

14 years agoAdd parameters check to ReadEventLog.
Sylvain Petreolle [Sun, 17 Jan 2010 21:40:39 +0000 (21:40 +0000)]
Add parameters check to ReadEventLog.
Fixes last advapi32:eventlog crash

svn path=/trunk/; revision=45125

14 years agoImplement ElfrRegisterEventSourceA.
Eric Kohl [Sun, 17 Jan 2010 15:16:26 +0000 (15:16 +0000)]
Implement ElfrRegisterEventSourceA.

svn path=/trunk/; revision=45123

14 years agoEmpty the card stacks before showing the win message box.
Eric Kohl [Sun, 17 Jan 2010 12:51:16 +0000 (12:51 +0000)]
Empty the card stacks before showing the win message box.

svn path=/trunk/; revision=45122

14 years ago- fix and add several German and English translations
Matthias Kupfer [Sun, 17 Jan 2010 12:51:08 +0000 (12:51 +0000)]
- fix and add several German and English translations

svn path=/trunk/; revision=45121

14 years ago[advpack]
Christoph von Wittich [Sun, 17 Jan 2010 08:29:56 +0000 (08:29 +0000)]
[advpack]
update advpack to wine 1.1.36

svn path=/trunk/; revision=45119

14 years ago[cabinet_winetest]
Christoph von Wittich [Sun, 17 Jan 2010 08:23:35 +0000 (08:23 +0000)]
[cabinet_winetest]
update cabinet winetest to wine 1.1.36

svn path=/trunk/; revision=45118

14 years ago[Paint] Initial support for free selections, resizing selections and experimental...
Benedikt Freisen [Sat, 16 Jan 2010 23:21:45 +0000 (23:21 +0000)]
[Paint] Initial support for free selections, resizing selections and experimental selection transparency

svn path=/trunk/; revision=45113

14 years agosilence wdmaud debug
Sylvain Petreolle [Sat, 16 Jan 2010 18:54:31 +0000 (18:54 +0000)]
silence wdmaud debug

svn path=/trunk/; revision=45110

14 years agoAssign rpcss to its actual group.
Sylvain Petreolle [Sat, 16 Jan 2010 18:44:17 +0000 (18:44 +0000)]
Assign rpcss to its actual group.
Fixes rpcss/spooler load order.

svn path=/trunk/; revision=45109

14 years agoDisplay CSConfigFlags.
Eric Kohl [Sat, 16 Jan 2010 17:07:41 +0000 (17:07 +0000)]
Display CSConfigFlags.

svn path=/trunk/; revision=45108

14 years agoImplement CM_Set_HW_Prof[_Ex].
Eric Kohl [Sat, 16 Jan 2010 16:31:58 +0000 (16:31 +0000)]
Implement CM_Set_HW_Prof[_Ex].

svn path=/trunk/; revision=45107

14 years agoImplement PNP_HwProfFlags.
Eric Kohl [Sat, 16 Jan 2010 16:18:00 +0000 (16:18 +0000)]
Implement PNP_HwProfFlags.

svn path=/trunk/; revision=45106

14 years ago - Fix a null-pointer dereference crash that happens when we complete a queued NDIS_R...
Cameron Gutman [Sat, 16 Jan 2010 14:59:54 +0000 (14:59 +0000)]
 - Fix a null-pointer dereference crash that happens when we complete a queued NDIS_REQUEST in MiniportWorker

svn path=/branches/aicom-network-branch/; revision=45102

14 years ago[SDK]
Aleksey Bragin [Sat, 16 Jan 2010 13:52:51 +0000 (13:52 +0000)]
[SDK]
- Add missing IIDs to UUID.

svn path=/trunk/; revision=45099

14 years ago[PSDK]
Aleksey Bragin [Sat, 16 Jan 2010 13:40:30 +0000 (13:40 +0000)]
[PSDK]
- Merge Wine-1.1.36 changes to commctrl.h.

svn path=/trunk/; revision=45098

14 years ago[PSDK]
Aleksey Bragin [Sat, 16 Jan 2010 12:39:44 +0000 (12:39 +0000)]
[PSDK]
- Add commoncontrols.idl from Wine-1.1.36 (needed for newer comctl32).

svn path=/trunk/; revision=45097

14 years ago[Win32k]
James Tabor [Sat, 16 Jan 2010 05:56:22 +0000 (05:56 +0000)]
[Win32k]
- Fix the window handle De/Reference throttler issue. Used mIrc.

svn path=/trunk/; revision=45096

14 years ago - Fix ECHO_REPLY_HEADER which was corrupting incoming packets (fixes displaying...
Cameron Gutman [Sat, 16 Jan 2010 03:30:10 +0000 (03:30 +0000)]
 - Fix ECHO_REPLY_HEADER which was corrupting incoming packets (fixes displaying reply time)
 - Fix a bug in the packet waiting code
 - Display the IP address if getnameinfo fails
 - tracert is actually useful now

svn path=/branches/aicom-network-branch/; revision=45094

14 years ago[TDILIB, IPHLPAPI, WSHTCPIP]
Cameron Gutman [Sat, 16 Jan 2010 00:05:15 +0000 (00:05 +0000)]
[TDILIB, IPHLPAPI, WSHTCPIP]
 - Move the TDI stuff from iphlpapi to a shared library called tdilib
[IP]
 - Implement tcpip side of IP_HDRINCL
[PSDK, WSHTCPIP, WSHIRDA]
 - Fix definition of WSHGetSocketInformation
[PSDK]
 - Add AO_OPTION_* defines
[WSHTCPIP]
 - Request notifications for bind also
 - Implement WSHSetSocketInformation
[MSAFD]
 - Implement event notifications (bonus: fixes a memory leak on socket closure due to unfreed helper context)
 - Store TdiConnectionHandle the same way we store TdiAddressHandle
 - Half-plement WSPSetSockOpt
 - Fix WSPGetSockOpt
[TCPIP]
 - Handle AO_OPTION_TTL, AO_OPTION_IP_DONTFRAGMENT (not working yet), AO_OPTION_BROADCAST (not working yet), and AO_OPTION_IP_HDRINCL
 - Add new members of ADDRESS_FILE for the preceding AO options
[AFD]
 - Return the connection handle in the Information of the IOSB (same as we do with the address file handle)
[GENERAL]
 - Tracert works now

svn path=/branches/aicom-network-branch/; revision=45093

14 years ago[User32]
James Tabor [Fri, 15 Jan 2010 23:51:41 +0000 (23:51 +0000)]
[User32]
- Patch by Kusanagi Kouichi : Make DefWindowProc handle Shift+F10.
- Keyboard hotkey issues need looking after. See bug 642, 1009, 3560 and 4609.
- Input.c header modified.

svn path=/trunk/; revision=45092

14 years agoDisable spooler service.
Sylvain Petreolle [Fri, 15 Jan 2010 22:17:16 +0000 (22:17 +0000)]
Disable spooler service.
This allows bootcdregtest to start here under qemu-kvm.

svn path=/trunk/; revision=45091

14 years ago - Fix a bug with our tei_instance selection (we could end up with the same tei_insta...
Cameron Gutman [Fri, 15 Jan 2010 21:00:50 +0000 (21:00 +0000)]
 - Fix a bug with our tei_instance selection (we could end up with the same tei_instance value on different entities of the same type if an entity of our type in the middle of the list was deleted previously)

svn path=/branches/aicom-network-branch/; revision=45090

14 years ago[CRT]
Timo Kreuzer [Fri, 15 Jan 2010 21:00:20 +0000 (21:00 +0000)]
[CRT]
Patch by Jose Catena:
vsnprintf: added support for ll size specifier

See issue #5122 for more details.

svn path=/trunk/; revision=45089

14 years ago[CRT]
Timo Kreuzer [Fri, 15 Jan 2010 20:45:36 +0000 (20:45 +0000)]
[CRT]
Patch by Jose Catena:
allmul produced wrong results when the higher 32 bits of any of the 64 bit operands are not zero. As the comment correctly said the definition of param locations must change
since esp was altered, but the definitions were not actually changed

See issue #5121 for more details.

svn path=/trunk/; revision=45088

14 years ago - Restore the worker in the loopback code because we can enter the loopback code...
Cameron Gutman [Fri, 15 Jan 2010 18:01:52 +0000 (18:01 +0000)]
 - Restore the worker in the loopback code because we can enter the loopback code from TCPPacketSend at a raised IRQL
 - Fixes a crash with TCP over loopback

svn path=/branches/aicom-network-branch/; revision=45087

14 years ago[Win32k|User32]
James Tabor [Fri, 15 Jan 2010 13:47:25 +0000 (13:47 +0000)]
[Win32k|User32]
- Switch to the new user handle manager. Added more handle types to win32k. One or two step to WND, desktop heap supported.
- Test with every application in my test suite. Needs more testing and clean up. Bleeding edge!

svn path=/trunk/; revision=45085

14 years ago[winetests]
Aleksey Bragin [Thu, 14 Jan 2010 22:35:53 +0000 (22:35 +0000)]
[winetests]
- Sync gdi32 and user32 winetests to Wine-1.1.36.

svn path=/trunk/; revision=45081

14 years ago[PSDK]
Aleksey Bragin [Thu, 14 Jan 2010 22:33:25 +0000 (22:33 +0000)]
[PSDK]
- Add WM_DWM* message defines.

svn path=/trunk/; revision=45080

14 years ago[Win32k|User32]
James Tabor [Thu, 14 Jan 2010 13:33:04 +0000 (13:33 +0000)]
[Win32k|User32]
- Started the user handle rewrite.

svn path=/trunk/; revision=45079

14 years ago[MESA32]
Timo Kreuzer [Thu, 14 Jan 2010 09:42:17 +0000 (09:42 +0000)]
[MESA32]
Add amd64 specific rbuild entries

svn path=/trunk/; revision=45076

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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