- Add an about dialog
- Split up the query code to make it more usable
- Call description from the registry
- Many other code mods
svn path=/trunk/; revision=20616
Alexandre Julliard <julliard@winehq.org>
- Support building flex files without debug support.
- Added some flex options to avoid compiler warnings.
Moved options from the Makefile into the source.
svn path=/trunk/; revision=20614
- Remove KiBlockThread and replace by more elegant KiSwapThread which will also make moving to the new scheduler easier.
- Handle special case where we have kernel apcs pending and your previous irql was below apc_level during the wait code.
- Remove hack to manually unwait a thread during a status of kernel apc.
svn path=/trunk/; revision=20605
* KeRemoveQueue did not set Thread->WaitNext = FALSE if it was called with WaitNext = TRUE.
* KeRemoveQueue did not handle the case where a kernel-mode APC is pending and the previous IRQL was below APC_LEVEL.
* KeRemoveQueue did not set the thread's wait status to 0.
* KiInsertQueue did not set the Thread's wait status to the entry being inserted.
* KiInsertQueue did not remove the thread from its wait list.
* KeRemoveQueue did not properly link the wait blocks.
svn path=/trunk/; revision=20601
- mmc.exe is probably a long way off, thus mmc snap-ins will be too. This will suffice until then. Most of the code should be transferable.
svn path=/trunk/; revision=20586
- Also, the spinlock is not actually acquired on non-SMP builds; instead, interrupts are blocked and unblocked for acquire/release, this optimizes locking.
- Added many asserts and bugcheck scenarios.
- Added thread priority boosting.
- Added some debugging helpers and deadlock detection.
- Added RESOURCE_NOT_OWNED bugcehck message.
* Thanks again to Waxdragon (Andrew) for testing this build.
svn path=/trunk/; revision=20580
- Optimize UP spinlock functions so they don't call ntoskrnl anymore and only raise/lower irql.
- Implemented Queued Spinlocks and In-Stack Queued Spinlocks for UP machines.
* Implemented KeAcquireInStackQueuedSpinLock, KeReleaseInStackQueuedSpinLock, KeAcquireQueuedSpinLock, KeReleaseQueuedSpinLock, KeTryToAcquireQueuedSpinLock, KeTryToAcquireQueuedSpinLockRaiseToSynch, KeAcquireQueuedSpinLockRaisetoSynch.
svn path=/trunk/; revision=20575
- Made inlined functions in ke/wait.c macros, because they weren't being inlined.
- Created separate cases for satisfying mutant, non-mutant and generic objects, to optimize wait satisfaction.
- Fixed some places which werne't setting the dispatcher header's size member correctly.
- Fixed formatting in ke/wait.c
- Fixed a case in KiCheckAlertability: we also need to check if the thread is alerted in Kernel-Mode, even if the wait mode given was user and user-mode is not alerted.
- Fixed signaling checks across the wait code and removed KiCheckIfObjectSignaled. We must not consider the mutant as signaled if SignalState is = 1.
- Fix code to check if the wait blocks' status is STATUS_TIMEOUT, because we do not need to check for signal state in that case.
- Removed the exports for internal dispatcher lock routines.
** Thanks to Waxdragon for stress-testing this for an hour :)
svn path=/trunk/; revision=20568