Commit graph

23 commits

Author SHA1 Message Date
Colin Finck c2c66aff7d Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
Timo Kreuzer e8fc5482a0 [NTOSKRNL]
Make definitions of ExpChangeRundown, ExpChangePushlock and ExpSetRundown 64 bit safe (have one portable definition and use it accordingly)

svn path=/trunk/; revision=50152
2010-12-26 22:25:47 +00:00
Timo Kreuzer 0d37dab9f3 [NTOSKRNL]
Fix ExInitializeRundownProtectionCacheAware parameter (ULONG -> SIZE_T)

svn path=/trunk/; revision=48060
2010-07-15 01:34:50 +00:00
Stefan Ginsberg 12f349df1d - Remove the (now deprecated) ntoskrnl/internal/debug.h header and fix all its includers to use the global debug.h
svn path=/trunk/; revision=35806
2008-08-30 16:31:06 +00:00
Alex Ionescu 2e03cf0bb5 - Fix several bugs in the rundown protection implementation, mostly related to incorrect loop restarting in case of a race condition.
- The rundown event is a sync event, not a notification event.
- Only take slow path when waiting for release if the value changed *and* is still not active, not if only one of the two is true.

svn path=/trunk/; revision=25472
2007-01-15 21:12:32 +00:00
Alex Ionescu 59a0d277ae - Fix up some stuff in Kernel Gates support.
- Fix up some implementation bugs in Executive Rundown support.

svn path=/trunk/; revision=23011
2006-07-11 15:36:44 +00:00
Alex Ionescu 8481c1fa10 - NDK 0.98, now with versionned headers. Too many changes to list, see the TinyKRNL SVN Logs for more detailed information. Thanks to Andrew (Wax), Thomas and Aleksey for testing.
svn path=/trunk/; revision=21880
2006-05-10 17:47:44 +00:00
Alex Ionescu ea4fcb6188 - Implemented InterlockedBitTestAndReset, InterlockedBitTestAndSet, InterlockedExchangeAddSizeT.
- Rundown re-implementation:

* Added inlined functions for internal system use for quickest path.
* Correctly named all functions Exf instead of Ex.
* Removed PAGED_CODE(); macro where it shouldn't be used.
* Addded multiple ASSERTS for sanity checks.
* Used macros for win64/32 portability.
* Fixed the following bugs/features:
    * ExfAcquireRundownProtection:
        ** Added specific code instead of calling the generic function. Rundown locks are
           performance critical and a dedicated path is prefered.
    * ExfAcquireRundownProtectionEx:
        ** Added a quick immediate check to see if the rundown is active.
    * ExfReleaseRundownProtection:
        ** Added specific code instead of calling the generic function. Rundown locks are
           performance critical and a dedicated path is prefered.
    * ExfReleaseRundownProtectionEx: 
        ** Simplified the loop code.
        ** Fixed a bug in signaling of the event during waitblock count removal
    * ExfWaitForRundownProtectionRelease:
        ** Add quick case when we don't actually need a full wait.
        ** Simplified loop code.
* Added stubs for cache-aware implementation.
* Documented the functions.

svn path=/trunk/; revision=20435
2005-12-29 19:12:09 +00:00
Alex Ionescu 125b0fa6a3 - Remove KTSS_NOIOMP from NDK.
- Fix KTSS definition.
- Fix KTRAP_FRAME definition.
- Fix RTL_PROCESS_BACKTRACE_INFORMATION and RTL_PROCESS_BACKTRACES definitions.
- Fix/rename RUNDOWN_DESCRIPTOR definition.
- Rename PPF_ definitions to RTL_USER_PROCESS_PARAMETERS_
- Setup a global _REACTOS_ define when code is compiled.
- #ifdef out the multiboot flags from the NDK so they'll only be available for ReactOS. Dirty 'hack' until we stop using them.
- Update NDK Fixme list, since all major bugs are fixed now.

svn path=/trunk/; revision=19693
2005-11-27 18:24:32 +00:00
Thomas Bluemel 1cb48e4fa8 properly reset the reference counter in ExReInitializeRundownProtection()
svn path=/trunk/; revision=18425
2005-10-13 10:29:04 +00:00
Steven Edwards e4be245882 strip whitespace from end of lines
svn path=/trunk/; revision=15164
2005-05-09 01:38:29 +00:00
Thomas Bluemel cfdb595cc6 Alex Ionescu <ionucu@videotron.ca>
Dispatcher Objects Rewrite (minus Queues, coming in next patch).
	Global Changes:
 
		- Use KOBJECT enumerations for all objects, remove obsoleted ros-internal enumeration.
		- Reformatting, commenting, and addition of Debug Prints for easier debugging
		- Properly create Executive Objects. They don't need a creation routine.
		- Make sure to properly lock and release the Dispatcher Database.
 
	Mutex/Mutant:
 
		- Correct MUTANT_BASIC_INFORMATION
		- Return previous state in Kernel Functions, intead of 1 or 0 all the time.
		- Initialize listhead properly
		- Removed code duplication between mutant and mutex release.
		- Fix bugs in release
		- Add proper exeption if the mutex is not owned.
 
	Kernel Queues:
 
		- Optimize the code
		- Use Inserted Flag
 
	Timers:
 
		- Some changes in setting the default data to allow KiInsertTimer to be called internally 
		  by the wait code in the next patch.
 
	Events:
 
		- Optimize and simplify KeInitializeEvent
		- Implement KeInitializeEventPair
		- Fix KePulseEvent. It was completely messed up and also used unneeded Interlocked function.
		- Fix KeResetEvent. It was not locking the dispatcher lock but using Interlocked.
		- Fix KeSetEvent. It was not differentiating between Notification and Sycronization events 
		  and also signaling the Event even if nobody was waiting on it.
 
	Semaphores:
 
		- Fix KeReleaseSemaphore. It was not checking if nobody was waiting on it before unwaiting the thread.
		- Fix not releasing dispatcher database before raising an exception.
		- Add check to NtCreateSemaphore to make sure the counts make sense.
 
	Event Pairs:
 
		- Remove Thread Event Pair. They are only used for NT4 QuickLPC which is obsoleted.
		- Use KeInitializeEventPair

svn path=/trunk/; revision=14045
2005-03-14 02:08:17 +00:00
Alex Ionescu db4c78ea86 Reverting to 13775. Sorry for the mess. This is dedicated to Jane! 19934415.
svn path=/trunk/; revision=13777
2005-02-28 17:40:15 +00:00
Alex Ionescu ecfad8ec74 Test commit. Not official branch release -- it will follow shortly in 15 minutes. If this ends up in HEAD i will revert immediately (i have svn switched so it shouldn't)
svn path=/trunk/; revision=13776
2005-02-28 16:44:38 +00:00
Thomas Bluemel 756ab632ca added more irql checks
svn path=/trunk/; revision=13720
2005-02-22 22:19:14 +00:00
Thomas Bluemel f871df2c56 added more irql checks
svn path=/trunk/; revision=13714
2005-02-22 19:25:17 +00:00
Thomas Bluemel 838bea2661 handle the case when ExRundownCompleted() was called before ExReleaseRundownProtectionEx()
svn path=/trunk/; revision=13700
2005-02-21 00:39:59 +00:00
Thomas Bluemel 502d8150de fixed some bugs in ExWaitForRundownProtectionRelease() and ExReleaseRundownProtectionEx()
svn path=/trunk/; revision=13699
2005-02-20 23:56:47 +00:00
Alex Ionescu fe6116543e Standardize comment headers. Patch by Trevor McCort
svn path=/trunk/; revision=13311
2005-01-26 13:58:37 +00:00
Thomas Bluemel 75009fd35f hopefully a better implementation of rundown protections, thanks also to Alex.
svn path=/trunk/; revision=11395
2004-10-22 22:49:00 +00:00
Casper Hornstrup 1bf0775833 2004-08-15 Casper S. Hornstrup <chorns@users.sourceforge.net>
* ntoskrnl/include/.cvsignore: New file.
	* ntoskrnl/include/ntoskrnl.h: Ditto.
	* ntoskrnl/*/*.c: Use pre-compiled header.
	* ntoskrnl/Makefile: Support pre-compiled header.
	* tools/helper.mk: .pch files are now .gch files.

svn path=/trunk/; revision=10550
2004-08-15 16:39:12 +00:00
Alex Ionescu 52279b1490 Rundown Protection Implementation. Implemented ExAcquireRundownProtection, ExAcquireRundownProtectionEx, ExInitializeRundownProtection, ExReInitializeRundownProtection, ExReleaseRundownProtection, ExReleaseRundownProtectionEx, ExRundownCompleted, ExWaitForRundownProtectionRelease
svn path=/trunk/; revision=10440
2004-08-09 01:26:10 +00:00
Alex Ionescu 62a4509b5f Added Ex Stubs
svn path=/trunk/; revision=9840
2004-06-23 21:01:28 +00:00