Rafal Harabien [Wed, 27 Jul 2011 01:00:47 +0000 (01:00 +0000)]
[DESK]
- Fix MS VC compilation. Spotted by Michael Martin
- Remove unused definition
svn path=/trunk/; revision=52913
Alex Ionescu [Wed, 27 Jul 2011 00:30:38 +0000 (00:30 +0000)]
[KERNEL32]: Don't try to acquire any privileges for now, as the API is unimplemented (restore back to original/broken behavior).
svn path=/trunk/; revision=52912
Amine Khaldi [Tue, 26 Jul 2011 22:19:36 +0000 (22:19 +0000)]
[PCI/PCMCIA]
* Use pci.h and as pcmcia.h as PCH's.
svn path=/trunk/; revision=52911
Amine Khaldi [Tue, 26 Jul 2011 22:16:41 +0000 (22:16 +0000)]
[ISAPNP]
* Use isapnp.h as a PCH.
svn path=/trunk/; revision=52910
Amine Khaldi [Tue, 26 Jul 2011 22:13:42 +0000 (22:13 +0000)]
[CMD]
* tchar.h is already in the PCH. Don't include it here.
svn path=/trunk/; revision=52909
Amine Khaldi [Tue, 26 Jul 2011 22:09:21 +0000 (22:09 +0000)]
[3DTEXT]
* Use 3dtext.h as a PCH.
svn path=/trunk/; revision=52908
Amine Khaldi [Tue, 26 Jul 2011 22:07:22 +0000 (22:07 +0000)]
[RAPPS]
* Use rapps.h as a PCH.
svn path=/trunk/; revision=52907
Amine Khaldi [Tue, 26 Jul 2011 22:05:26 +0000 (22:05 +0000)]
[NSLOOKUP]
* Use nslookup.h as a PCH.
svn path=/trunk/; revision=52906
Amine Khaldi [Tue, 26 Jul 2011 22:02:52 +0000 (22:02 +0000)]
[NET]
* Use net.h as a PCH.
svn path=/trunk/; revision=52905
Amine Khaldi [Tue, 26 Jul 2011 21:56:48 +0000 (21:56 +0000)]
[TELNET]
* Introduce a PCH.
* BTW, the recent and upcoming changes are two-fold: First, having a precompiled header will increase build speed. Furthermore, PCH support allows CMake dependency tracking files to shrink drastically. For example it's (depend.make) 95% smaller for this module than it used to be. This means an even better build system compared to rbuild, not to mention it's now faster than before.
* This work is dedicated to Jerome.
svn path=/trunk/; revision=52904
Amine Khaldi [Tue, 26 Jul 2011 21:51:36 +0000 (21:51 +0000)]
[FTP]
* Introduce a PCH.
svn path=/trunk/; revision=52903
Amine Khaldi [Tue, 26 Jul 2011 21:49:14 +0000 (21:49 +0000)]
[FINGER]
* Introduce a PCH.
svn path=/trunk/; revision=52902
Amine Khaldi [Tue, 26 Jul 2011 21:44:53 +0000 (21:44 +0000)]
[MSPAINT]
* Introduce a PCH.
* Fix Brush function declaration.
svn path=/trunk/; revision=52901
Alex Ionescu [Tue, 26 Jul 2011 14:33:22 +0000 (14:33 +0000)]
[KERNEL32]: Cleanup of virtual memory functions.
[KERNEL32]: VirtualAllocEx should build a SEH frame.
[KERNEL32]: VirtualAllocEx should make sure the address given is not lower than the system's allocation granularity.
svn path=/trunk/; revision=52899
Alex Ionescu [Tue, 26 Jul 2011 14:05:30 +0000 (14:05 +0000)]
[KERNEL32]: Rewrite almost all the time APIs to do their own conversions instead of calling other APIs (which sometimes have slightly different checks).
[KERNEL32]: Add support for terminal services timezone redirection (one more for GedMurphy's pipe dream) in all the time functions.
[KERNEL32]: Make the time functions acquire SE_SYSTEMTIME_PRIVILEGE when needed (and release it).
[KERNEL32]: Fix the DOS time conversion routines.
[KERNEL32]: Add missing validations to some time functions.
[KERNEL32]: Implement IsTimeZoneRedirectionEnabled.
[KERNEL32]: Reimplement GetSystemTimes to support MP, and treat parameters as optional.
svn path=/trunk/; revision=52898
Timo Kreuzer [Tue, 26 Jul 2011 14:00:08 +0000 (14:00 +0000)]
[NTOSKRNL]
- Inline KeDisableInterrupts
- Make ExInterlocked* functions portable
svn path=/trunk/; revision=52897
Jérôme Gardou [Tue, 26 Jul 2011 13:53:18 +0000 (13:53 +0000)]
[NTDLL]
- fix the fix : export RtlAcquirePrivilege.
- Also export RtlInterlockedCompareExchange64, it's needed by kernel32
svn path=/trunk/; revision=52896
Jérôme Gardou [Tue, 26 Jul 2011 11:40:20 +0000 (11:40 +0000)]
[CMAKE]
-relink win32csr with msvcrt, it's a win32dll
svn path=/trunk/; revision=52895
Rafal Harabien [Tue, 26 Jul 2011 11:12:56 +0000 (11:12 +0000)]
[DESK]
- Remove forgotten debug print
- Simplify a bit
svn path=/trunk/; revision=52893
Rafal Harabien [Tue, 26 Jul 2011 10:51:54 +0000 (10:51 +0000)]
[DESK]
- Fix #6262: each new applied color scheme increase the window title height by one
- Don't read REG_QWORD directly to DWORD variable
svn path=/trunk/; revision=52892
Jérôme Gardou [Tue, 26 Jul 2011 08:29:53 +0000 (08:29 +0000)]
[NTDLL]
- remove duplicate declaration of RtlAdjustPrivilege
svn path=/trunk/; revision=52891
Jérôme Gardou [Tue, 26 Jul 2011 08:27:35 +0000 (08:27 +0000)]
[NDK/DDK]
Fix definitions of ZwPowerInformation and ZwInitiatePowerAction
svn path=/trunk/; revision=52890
Dmitry Gorbachev [Tue, 26 Jul 2011 03:24:48 +0000 (03:24 +0000)]
[WIN32K]
Do not go beyond the MouseHistoryOfMoves[] bounds. Fixes a crash in Win32k.
svn path=/trunk/; revision=52887
Dmitry Gorbachev [Tue, 26 Jul 2011 01:16:32 +0000 (01:16 +0000)]
[MINGW-W64]
Reduce differences with upstream. Fixes crash if ReactOS is compiled with GCC 4.6.
svn path=/trunk/; revision=52886
Amine Khaldi [Tue, 26 Jul 2011 00:08:58 +0000 (00:08 +0000)]
[MAGNIFY]
* Designate magnifier.h as a precompiled header and use it as one.
svn path=/trunk/; revision=52885
Amine Khaldi [Mon, 25 Jul 2011 23:50:18 +0000 (23:50 +0000)]
[SPIDER]
* Designate spider.h as a precompiled header and use it as one.
svn path=/trunk/; revision=52884
Amine Khaldi [Mon, 25 Jul 2011 23:43:02 +0000 (23:43 +0000)]
[SOL]
* Designate solitaire.h as a precompiled header and use it as one.
svn path=/trunk/; revision=52883
Amine Khaldi [Mon, 25 Jul 2011 23:34:29 +0000 (23:34 +0000)]
[DXDIAG]
* Slightly better PCH.
svn path=/trunk/; revision=52882
Amine Khaldi [Mon, 25 Jul 2011 23:26:21 +0000 (23:26 +0000)]
[CMAKE]
* Link vfatxlib to chkstk.
svn path=/trunk/; revision=52881
Amine Khaldi [Mon, 25 Jul 2011 23:21:29 +0000 (23:21 +0000)]
[CALC]
* Make calc.h a PCH in rbuild build too (already done in cmake build).
* Improve this precompiled header.
svn path=/trunk/; revision=52880
Amine Khaldi [Mon, 25 Jul 2011 23:06:48 +0000 (23:06 +0000)]
[AUDIOSRV]
* Designate audiosrv.h as a precompiled header and use it as one.
svn path=/trunk/; revision=52879
Jérôme Gardou [Mon, 25 Jul 2011 22:16:03 +0000 (22:16 +0000)]
[CMAKE]
- uext2, ufat and untfs are native dlls
svn path=/trunk/; revision=52878
Jérôme Gardou [Mon, 25 Jul 2011 22:15:08 +0000 (22:15 +0000)]
[CMAKE]
- add nativedll module type for msvc
- error out in msvc toolchain if unknown module type is set
svn path=/trunk/; revision=52877
Giannis Adamopoulos [Mon, 25 Jul 2011 21:45:47 +0000 (21:45 +0000)]
[win32k]
- Implement support for debug channels. When a process starts, win32k will parse DEBUGCHANNEL environment variable in order to enable or disable specific debug channels or levels for this application. This gives us the ability to activate from user mode extended debug output for one application, for one component, for one level. In order to use the new debugging system we have to use the macros ERR, FIXME, WARN and TRACE. These are not used yet but shortly every DPRINT/DPRINT1 call will be converted to use the new macros
- Define several win32k channels that will be used in the future
- Remove some hacky definitions of the new macros
svn path=/trunk/; revision=52876
Timo Kreuzer [Mon, 25 Jul 2011 21:06:44 +0000 (21:06 +0000)]
[NTOSKRNL]
Fix bugs in ExInterlocked functions.
svn path=/trunk/; revision=52875
Daniel Reimer [Mon, 25 Jul 2011 21:03:03 +0000 (21:03 +0000)]
Updated rapps database by Igor Paliychuk.
FF4 was removed, FF5 was added instead.
Thunderbird 5 was added, too.
Rest was updated to the newest version.
Maybe we should add http://source.winehq.org/patches/data/74067 from wine to get ftp support fixed.
svn path=/trunk/; revision=52874
Amine Khaldi [Mon, 25 Jul 2011 20:50:05 +0000 (20:50 +0000)]
[CMAKE]
* Update our asm support thanks to Jerome.
* Bring in CMakeDetermineCompilerId.cmake to make sure this will work for pretty much all systems.
* Disable the use of response files when you enable ccache.
svn path=/trunk/; revision=52873
Alex Ionescu [Mon, 25 Jul 2011 20:23:43 +0000 (20:23 +0000)]
[KERNEL32]: Now that we have the BaseStaticServerData initialized, don't build the \ReactOS and \ReactOS\System32 paths by hand: use the ones we have.
[KERNEL32]: Same goes for BaseCachedSysInfo. Use the BaseStaticServerData->SysInfo instead now.
[KERNEL32]: Don't assume that the BNO directory is called BaseNamedObjects (this won't be true once GedMurphy's dream of multi-session support comes true) -- instead, use the one from BaseStaticServerData.
svn path=/trunk/; revision=52872
Alex Ionescu [Mon, 25 Jul 2011 20:21:51 +0000 (20:21 +0000)]
[NTDLL]: Export RtlAcquire/ReleasePrivilege.
svn path=/trunk/; revision=52871
Alex Ionescu [Mon, 25 Jul 2011 19:55:43 +0000 (19:55 +0000)]
[KERNEL32]: Fix DPRINT1s.
svn path=/trunk/; revision=52868
Alex Ionescu [Mon, 25 Jul 2011 19:26:40 +0000 (19:26 +0000)]
[KERNEL32]: Arch, you have to initialize your strings first!
svn path=/trunk/; revision=52867
Amine Khaldi [Mon, 25 Jul 2011 19:08:52 +0000 (19:08 +0000)]
[CMAKE]
* Add PCH variable (disabled by default) to configure scripts.
* Add ccache variable to unix configure script.
svn path=/trunk/; revision=52866
Amine Khaldi [Mon, 25 Jul 2011 19:05:00 +0000 (19:05 +0000)]
[CMAKE]
* Introduce a temporary cmake variable (PCH) to enable/disable cmake pch support as this requires our patched binary.
* Wrap pch macros around this variable.
* Implement the pch marco accordingly. By Jerome.
svn path=/trunk/; revision=52865
Alex Ionescu [Mon, 25 Jul 2011 18:39:56 +0000 (18:39 +0000)]
[CSRSRV]: Initialize CSR_CONNECTION_INFO in CsrpHandleConnectionRequest. Should fix the fact CsrProcessId was bogus before, as were the CSR PEB fields.
svn path=/trunk/; revision=52863
Amine Khaldi [Mon, 25 Jul 2011 18:39:25 +0000 (18:39 +0000)]
[CMAKE]
* De-duplicate IDL flags.
svn path=/trunk/; revision=52862
Alex Ionescu [Mon, 25 Jul 2011 14:40:59 +0000 (14:40 +0000)]
[KERNEL32]: Fix querying the CSDNumber and RCNumber, as this seems to be a bug (no valid data was found on Windows).
svn path=/trunk/; revision=52861
Alex Ionescu [Mon, 25 Jul 2011 06:23:50 +0000 (06:23 +0000)]
[KERNEL32]: Fix potential buffer overflow.
svn path=/trunk/; revision=52860
Dmitry Gorbachev [Mon, 25 Jul 2011 05:54:37 +0000 (05:54 +0000)]
[CSRSRV|NTOSKRNL|KERNEL32|NTDLL]
Fix multiple definition of variables.
svn path=/trunk/; revision=52859
Alex Ionescu [Mon, 25 Jul 2011 03:28:33 +0000 (03:28 +0000)]
[KERNEL32]: Define the BASE_STATIC_SERVER_DATA structure that BASESRV shares with KERNEL32 on Windows. In Windows, each CSR client/server pair can share such data through the PEB's ReadOnlyStaticServerData array. In ReactOS, this is not (yet) implemented, so if we don't have this data, kernel32 builds a "fake" copy instead. This "fake" copy will still be useful though as it'll let kernel32 cache some data (per-process). With proper CSRSS support, we could cache it per-system, but at least this is a start.
svn path=/trunk/; revision=52858
Timo Kreuzer [Mon, 25 Jul 2011 00:50:53 +0000 (00:50 +0000)]
[NTOSKRNL]
- Use NtTib.ExceptionList instead of Used_ExceptionList
- use ALIGN_DOWN_BY macro
svn path=/trunk/; revision=52857
Timo Kreuzer [Mon, 25 Jul 2011 00:07:07 +0000 (00:07 +0000)]
[NTOSKRNL]
Fix typos in comments
svn path=/trunk/; revision=52856
Timo Kreuzer [Mon, 25 Jul 2011 00:01:29 +0000 (00:01 +0000)]
[NTOSKRNL]
- Convert KiCallUserMode from asm to C (with a small asm wrapper)
- Convert KiGetUserModeStackAddress into a C inline function
svn path=/trunk/; revision=52855
Alex Ionescu [Sun, 24 Jul 2011 23:42:09 +0000 (23:42 +0000)]
[KERNEL32]: Fix the spec/pspec files to match 100% the exports on NT 5.2's Kernel32.dll
[KERNEL32]: Remove, add, fix, stub functions where necessary to handle these new/modified exports.
svn path=/trunk/; revision=52854
Timo Kreuzer [Sun, 24 Jul 2011 23:19:16 +0000 (23:19 +0000)]
[NTOSKRNL]
Forgot this file
svn path=/trunk/; revision=52853
Timo Kreuzer [Sun, 24 Jul 2011 23:14:39 +0000 (23:14 +0000)]
[NTOSKRNL]
Convert most ExInterlocked* functions from asm to C
Exceptions are ExInterlockedAddLargeStatistic and SList funcions
svn path=/trunk/; revision=52852
Olaf Siejka [Sun, 24 Jul 2011 21:02:50 +0000 (21:02 +0000)]
[NDK]
- Remove Resource functions, as they are in wdm.h
- add KeTryToAcquireQueuedSpinLockRaiseToSynch, ExRaiseHardError & enum members
Patch by Thomas Faber
svn path=/trunk/; revision=52847
Jérôme Gardou [Sun, 24 Jul 2011 18:41:07 +0000 (18:41 +0000)]
[CMAKE]
- win32csr doesn't need to be linked to msvcrt
svn path=/trunk/; revision=52846
Jérôme Gardou [Sun, 24 Jul 2011 17:40:53 +0000 (17:40 +0000)]
[CMAKE]
- ufat, ufatx, uext2 and untfs don't really need to link to kernel32 and msvcrt.
svn path=/trunk/; revision=52845
Alex Ionescu [Sun, 24 Jul 2011 17:14:58 +0000 (17:14 +0000)]
[NDK]: ntpoapi.h only includes Nt functions, not Zw, so leave the Zw's in the NDK.
svn path=/trunk/; revision=52844
Alex Ionescu [Sun, 24 Jul 2011 17:06:50 +0000 (17:06 +0000)]
[NDK]: Fix Po function prototypes. Also guard against _PO_DDK_ which means caller already has ntpoapi.h.
svn path=/trunk/; revision=52843
Alex Ionescu [Sun, 24 Jul 2011 16:53:19 +0000 (16:53 +0000)]
[KERNEL32]: WTSGetActiveConsoleSessionId should return SharedUserData->ActiveConsoleId instead of having its own global.
svn path=/trunk/; revision=52842
Alex Ionescu [Sun, 24 Jul 2011 16:50:03 +0000 (16:50 +0000)]
[NDK]: Add missing native power functions.
[KERNEL32]: Cleanup the power APIs. Fix calculation of battery percentage in GetSystemPowerStatus.
svn path=/trunk/; revision=52841
Jérôme Gardou [Sun, 24 Jul 2011 16:45:41 +0000 (16:45 +0000)]
[CRT]
- get back atexit handling as it was before.
(reverts 52838, 52829, 52828)
Thanks to Kai and Timo for the explanation
svn path=/trunk/; revision=52840
Dmitry Gorbachev [Sun, 24 Jul 2011 16:17:55 +0000 (16:17 +0000)]
[Win32k]
DbgLogEvent: replace EVENT_TYPE by LOG_EVENT_TYPE (spotted by GCC 4.6).
svn path=/trunk/; revision=52839
Dmitry Gorbachev [Sun, 24 Jul 2011 16:17:32 +0000 (16:17 +0000)]
Save the project from possession by evil spirits.
svn path=/trunk/; revision=52838
Jérôme Gardou [Sun, 24 Jul 2011 14:57:14 +0000 (14:57 +0000)]
[KERNEL32]
- release PEB lock for each code path
svn path=/trunk/; revision=52837
Jérôme Gardou [Sun, 24 Jul 2011 14:37:28 +0000 (14:37 +0000)]
[MSVCRTEX]
- I say let msvcrt handle atexit registered functions.
Fix msvc build
svn path=/trunk/; revision=52836
Jérôme Gardou [Sun, 24 Jul 2011 13:31:11 +0000 (13:31 +0000)]
[MSVCRT40]
- static link to crt, correct base address qnd entry point, etc...
See change log of MSVCRT20 for details.
svn path=/trunk/; revision=52835
Jérôme Gardou [Sun, 24 Jul 2011 13:22:15 +0000 (13:22 +0000)]
[MSVCRT20]
- being a full blown crt dll, msvcrt20 needs a correct dllmain entry point
svn path=/trunk/; revision=52834
Dmitry Gorbachev [Sun, 24 Jul 2011 11:54:56 +0000 (11:54 +0000)]
[ATL]
Invoke the member function through "this->".
svn path=/trunk/; revision=52833
Jérôme Gardou [Sun, 24 Jul 2011 10:41:32 +0000 (10:41 +0000)]
woops, sorry :-)
svn path=/trunk/; revision=52832
Jérôme Gardou [Sun, 24 Jul 2011 10:29:52 +0000 (10:29 +0000)]
[LIBWINE]
- new tentative to fix build : get rid of libwine's stricmp, we have it in our crt
svn path=/trunk/; revision=52831
Jérôme Gardou [Sun, 24 Jul 2011 10:05:42 +0000 (10:05 +0000)]
[MSVCRT20]
- hopefully fix rbuild's build
svn path=/trunk/; revision=52830
Jérôme Gardou [Sun, 24 Jul 2011 09:05:47 +0000 (09:05 +0000)]
[MSVCRTEX]
- aply 52828 as well
svn path=/trunk/; revision=52829
Jérôme Gardou [Sun, 24 Jul 2011 08:39:50 +0000 (08:39 +0000)]
[MINGW_COMMON]
- get rid of atexit handling, it's arlready handled by msvcrt.
The funny thing is that the only module using this is msvcrt_winetest, which tested the mingw implementation, not the msvcrt one.
svn path=/trunk/; revision=52828
Jérôme Gardou [Sat, 23 Jul 2011 22:52:04 +0000 (22:52 +0000)]
[MSVCRT]
- being a stub doesn't allow you to be uninitialized
svn path=/trunk/; revision=52827
Jérôme Gardou [Sat, 23 Jul 2011 22:47:04 +0000 (22:47 +0000)]
[MSVCRT20]
- link to static crt instead of forwarding function to msvcrt.
As msvcrt, msvcrt20 exports some variable, marked as DATA in the def file. Forwarding them is not a good idea, since msvcrt would be initialized only if one of the forwarded function is called. We must keep those variables in our module. And as the forwarded functions might use the said variables, we can't really forward them, as they would not know which instance they should reference.
svn path=/trunk/; revision=52826
Amine Khaldi [Sat, 23 Jul 2011 22:35:06 +0000 (22:35 +0000)]
[CMAKE]
- *Temporarily* back out some rossym/kdbg features until bugs 6372 and 6373 are fixed.
- Traces should be reliable again.
See issue #6372 for more details.
svn path=/trunk/; revision=52825
Alex Ionescu [Sat, 23 Jul 2011 22:03:03 +0000 (22:03 +0000)]
[KERNEL32]: Ironically enough, the "unimplemented" SetMessageWAitingIndicator function, which failed with sTATUS_NOT_IMPLEMENTED.... is how Windows implements this API! Mark it as so.
svn path=/trunk/; revision=52824
Jérôme Gardou [Sat, 23 Jul 2011 20:43:14 +0000 (20:43 +0000)]
[CRT]
- fix stupid gcc warnings
patch by Igor Paliychuk
svn path=/trunk/; revision=52823
Jérôme Gardou [Sat, 23 Jul 2011 20:23:48 +0000 (20:23 +0000)]
[CMAKE]
- no need to link msvcrt with pseh on msvc builds
svn path=/trunk/; revision=52822
Jérôme Gardou [Sat, 23 Jul 2011 19:27:00 +0000 (19:27 +0000)]
[MSVCRT]
- more fixes to spec file
svn path=/trunk/; revision=52821
Alex Ionescu [Sat, 23 Jul 2011 19:02:39 +0000 (19:02 +0000)]
[KERNEL32]: Implement three new APIs: CreateSocketHandle, GetHandleContext, and SetHandleContext. Please let this be my GSoC project. It was very hard to implement these APIs. I have full 6-week plan on how these APIs were implemented and tested. Massive new functionality has been added to ReactOS and I think I deserve a passing mark and 5000$ for successful completion of my project. Thank you.
svn path=/trunk/; revision=52820
Alex Ionescu [Sat, 23 Jul 2011 18:54:29 +0000 (18:54 +0000)]
[KERNEL32]: Get rid of SetLastErrorByStatus and use BaseSetLastNTError instead. SetLastErrorByStatus was defined to forward to some Rtl function which I don't even think exists in Server 2003, and worse, bypassed the SetLastError behavior of allowing a g_dwLastErrorToBreakOn code to be set.
svn path=/trunk/; revision=52819
Alex Ionescu [Sat, 23 Jul 2011 18:51:32 +0000 (18:51 +0000)]
[KERNEL32]: Simplify QueryPerformanceCounter/Frequency and bring in line with ReactOS coding standards.
svn path=/trunk/; revision=52818
Alex Ionescu [Sat, 23 Jul 2011 18:50:20 +0000 (18:50 +0000)]
[KERNEL32]: Simplify CreateMemoryResourceNotification and bring up to ReactOS coding standards.
[KERNEL32]: Bug: QueryMemoryResourceNotification should set ERROR_INVALID_PARAMETER and fail if the Handle is NULL or INVALID_HANDLE_VALUE.
[KERNEL32]: Fix ULONG<->BOOL cast in QueryMemoryResourceNotification as well.
svn path=/trunk/; revision=52817
Alex Ionescu [Sat, 23 Jul 2011 18:48:32 +0000 (18:48 +0000)]
[KERNEL32]: Get rid of RestoreLastError, it's a forward.
[KERNEL32]: SetLastError should only set the error code if it's different from the one already set. This is not about optimization: it's compatibility with hardware data breakpoint behavior.
svn path=/trunk/; revision=52816
Jérôme Gardou [Sat, 23 Jul 2011 18:45:01 +0000 (18:45 +0000)]
[MSVCRT]
- export bessel's functions
- misc fixes to spec file
svn path=/trunk/; revision=52815
Alex Ionescu [Sat, 23 Jul 2011 18:43:49 +0000 (18:43 +0000)]
[KERNEL32]: Fix RemoveHandles, CloseAllProcessHandles...again.
svn path=/trunk/; revision=52814
Alex Ionescu [Sat, 23 Jul 2011 18:28:55 +0000 (18:28 +0000)]
[KERNEL32]: User-mode Debugging fixes.
Bug: RemoveHandles was checking for process AND thread handle match, instead of OR.
Bug: CloseAllProcessHandles and RemoveHandles's processing loop was buggy with its unlinking and re-use of nested ThreadData.
Bug: ProcessIdToHandle was requesting more process rights than needed.
Bug: Some ULONG<->BOOL conversions were dirty (as in, could result in values of 2 or higher).
Bug: In WaitForDebugEvent, During CREATE_PROCESS_DEBUG_EVENT, the wrong handle was saved as the thread handle.
Bug: In WaitForDebugEvent, all events returned TRUE. Instead, only valid events should return TRUE, and non-existing events should return FALSE.
Add some asserts.
Simplify MarkThreadHandle and MarkProcessHandle.
Simplify OutputDebugStringW.
svn path=/trunk/; revision=52813
Jérôme Gardou [Sat, 23 Jul 2011 18:03:11 +0000 (18:03 +0000)]
[CRT]
- import bessel's function j0, j1, jn, y0, y1, yn from glibc
svn path=/trunk/; revision=52812
Alex Ionescu [Sat, 23 Jul 2011 17:17:06 +0000 (17:17 +0000)]
[KERNEL32]: SleepEx forgot to de-activate the SxS frame.
svn path=/trunk/; revision=52811
Timo Kreuzer [Sat, 23 Jul 2011 17:16:51 +0000 (17:16 +0000)]
{KERNEL32]
- move BaseFiberStartup to fiber.S
- add FPO debug info for MSVC builds
- remove excessive END directives (fixes msvc build)
- add a stub for amd64
svn path=/trunk/; revision=52810
Alex Ionescu [Sat, 23 Jul 2011 16:26:03 +0000 (16:26 +0000)]
Thanks to Timo Kreuzer for discovering what led to these:
[KERNEL32]: BasepInitializeContext was not creating a correct CONTEXT record for fibers: the stack return address was not set (EIP was being used instead), and support for FPU-compatible Fibers was non-existent.
[KERNEL32]: CreateFiberEx was not passing the correct context flags to BasepInitializeContext to notify it that this is an FPU-fiber.
[KERNEL32]: SwitchToFiber was using some weird "FXSR" constant that maps to checking of PowerPC 64-bit Move instructions are available. We actually want to check for XMMI.
svn path=/trunk/; revision=52809
Amine Khaldi [Sat, 23 Jul 2011 14:07:17 +0000 (14:07 +0000)]
[KERNEL32]
* Fix ConvertOpenWin32AnsiObjectApiToUnicodeApi and OpenNtObjectFromWin32Api macros always returning NULL. Spotted by Thomas Faber.
svn path=/trunk/; revision=52808
Alex Ionescu [Sat, 23 Jul 2011 12:08:36 +0000 (12:08 +0000)]
[KERNEL32]: Optimize SwitchToFiber to simply use "ret" to jump between fibers, instead of saving EIP and doing a JMP.
Bug #50: SwitchToFiber needs to check if FXSR is *NOT* present in order to skip using ldmxcsr/stmxcsr. Previously, it would check if it's unsupported, and jump past the instruction if it was (resulting in invalid opcode instructions on older systems)
50 bugs. Penance has been paid.
svn path=/trunk/; revision=52807
Alex Ionescu [Sat, 23 Jul 2011 12:05:38 +0000 (12:05 +0000)]
[KERNEL32]: Implement BaseFiberStartup in ASM, just like the thread/process thunks, so we get a "naked" thunk without any compiler-generated crap.
svn path=/trunk/; revision=52806
Alex Ionescu [Sat, 23 Jul 2011 11:55:41 +0000 (11:55 +0000)]
[KERNEL32]:
Bug #47: CreateFiberEx should return ERROR_INVALID_PARAMETER for invalid flags.
Bug #48: DeleteFiber should also check if HasFiberData is TRUE in TEB before calling ExitThread.
Bug #49: DeleteFiber should only delete the FIBER data structure after cleanup is complete, not before.
Also, enable the calls to RtlAllocateActivationContextStack since SxS kind-of exists now. However, we leak the context since RtlFreeActivationContextStack is not implemented.
Also, add a call to BaseRundownFls so we don't forget to cleanup FLS data once FLS is implemented.
svn path=/trunk/; revision=52805
Alex Ionescu [Sat, 23 Jul 2011 11:48:42 +0000 (11:48 +0000)]
[KERNEL32]:
Bug #45: ConvertThreadToFiberEx should return ERROR_INVALID_PARAMETER if an invalid flag is passed.
Bug #46: ConvertThreadToFiberEx should return ERROR_ALREADY_FIBER if the thread is already a fiber, not return the current fiber data.
svn path=/trunk/; revision=52804
Alex Ionescu [Sat, 23 Jul 2011 11:46:57 +0000 (11:46 +0000)]
[KERNEL32]
Bug #43: ConvertFiberToThread should return ERROR_ALREADY_THREAD, not ERROR_INVALID_PARAMETER in case of failure.
Bug #44: ConvertFiberToThread should set FiberData to NULL in the TEB, after doing the conversion.
Thanks, Winetests, for saying "0 failures", when this API was broken.
svn path=/trunk/; revision=52803