reactos/lib/rtl
David Quintana 057a69972f Sync with trunk r63174.
CORE-8176 #resolve #comment Trunk commit r63174 should fix this issue. I merged from trunk to bring it into Shell-experiments.

svn path=/branches/shell-experiments/; revision=63175
2014-05-06 15:51:24 +00:00
..
amd64 [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
arm [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
i386 [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
powerpc [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
access.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
acl.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
actctx.c Sync with trunk r63174. 2014-05-06 15:51:24 +00:00
assert.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
atom.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
avlsupp.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
avltable.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
bitmap.c Sync with trunk r62754. 2014-04-15 23:01:15 +00:00
bitmap64.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
bootdata.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
byteswap.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
CMakeLists.txt * Sync up to trunk HEAD (r62285). Branch guys deserve the significant speedups too ;) 2014-02-22 10:31:26 +00:00
compress.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
condvar.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
crc32.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
critical.c Sync with trunk r62754. 2014-04-15 23:01:15 +00:00
dbgbuffer.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
debug.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
dos8dot3.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
encode.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
env.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
error.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
exception.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
generictable.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
handle.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
heap.c Sync with trunk r63174. 2014-05-06 15:51:24 +00:00
heap.h [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
heapdbg.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
heappage.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
heapuser.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
image.c Sync with trunk r63174. 2014-05-06 15:51:24 +00:00
interlck.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
largeint.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
luid.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
mem.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
memstream.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
message.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
network.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
nls.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
path.c Sync with trunk r62754. 2014-04-15 23:01:15 +00:00
ppb.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
priv.c Sync with trunk r62754. 2014-04-15 23:01:15 +00:00
process.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
propvar.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
random.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
rangelist.c Sync with trunk r62754. 2014-04-15 23:01:15 +00:00
readme.txt [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
registry.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
res.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
resource.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
rtl.h [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
rtlavl.h Sync with trunk r63174. 2014-05-06 15:51:24 +00:00
rtlp.h [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
rxact.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
sd.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
security.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
sid.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
slist.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
splaytree.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
srw.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
thread.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
time.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
timerqueue.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
timezone.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
unicode.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
unicodeprefix.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
vectoreh.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
version.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
wait.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00
workitem.c [SHELL/EXPERIMENTS] 2014-02-02 19:37:27 +00:00

RTL restrictions:

ExAllocatePool (and friends) must be used exclusively. RtlAllocateHeap (and friends) must NOT be used! ExAllocatePool (and friends) translate to RtlAllocateHeap (and friends) in ntdll\rtl\libsupp.c.

RtlEnterCriticalSection (and friends) must be used exclusively. ExAcquireFastMutex (and friends) must NOT be used! RtlEnterCriticalSection (and friends) translate to ExAcquireFastMutex (and friends) in ntoskrnl\rtl\libsupp.c. This means that RtlEnterCriticalSection (and friends) can NOT be used recursively in RTL. The reason for choosing RtlEnterCriticalSection (and friends) over ExAcquireFastMutex (and friends) is that the FAST_MUTEX struct is smaller than the RTL_CRITICAL_SECTION struct.