- Rewrite Executive Interlocked Functions to actually work as supposed and also immen...
authorAlex Ionescu <aionescu@gmail.com>
Fri, 30 Dec 2005 23:53:13 +0000 (23:53 +0000)
committerAlex Ionescu <aionescu@gmail.com>
Fri, 30 Dec 2005 23:53:13 +0000 (23:53 +0000)
commitcadc0d6ee97dd48f18f195ad668c6169efc1773f
tree202f1099281de2947762e34bd1c38bc6cdbdf26f
parent26dd690ad1c6f7ac19173b1bc3d585d2240db546
- Rewrite Executive Interlocked Functions to actually work as supposed and also immensly increase their speed, most notably on non-SMP machines:
  * The functions now disable interrupts as they should. This is a core functionality of the ExInterlocked functions which we did not do.
  * The functions now preserve EFLAGS as they should. This is another core functionality and point of ExInterlocked functions, which we did not do.
  * Use KiAcquire/ReleaseSpinlock equivalents instead of going through HAL. Also make them macros which can be later used in other assembly files.
  * Write optimized versions for non-SMP machines. Namely, the spinlock macros are coded to be no-ops on UP machines, since they are not needed.
  * Write all functions in assembly, so we can cleanly optimize them and properly restore/save EFLAGS and use CLI.
- Use the right interlocked macro in guarded mutex implementation.
- Fix export of Exi386InterlockedExchangeUlong
- Use documented EFLAGS definition instead of hard-coded value in some interlocked functions.

svn path=/trunk/; revision=20474
reactos/include/ndk/asm.h
reactos/ntoskrnl/ex/i386/fastinterlck_asm.S [new file with mode: 0644]
reactos/ntoskrnl/ex/i386/interlck_asm.S
reactos/ntoskrnl/ex/interlck.c [deleted file]
reactos/ntoskrnl/ex/list.c [deleted file]
reactos/ntoskrnl/ex/synch.c [deleted file]
reactos/ntoskrnl/ke/gmutex.c
reactos/ntoskrnl/ntoskrnl.def
reactos/ntoskrnl/ntoskrnl.xml