2007-09-14 17:07:53 +00:00
|
|
|
<?xml version="1.0"?>
|
|
|
|
<!DOCTYPE module SYSTEM "../../tools/rbuild/project.dtd">
|
2010-03-28 23:06:36 +00:00
|
|
|
<module name="rtl" type="staticlibrary" crt="static">
|
2008-10-20 23:40:10 +00:00
|
|
|
<define name="_NTOSKRNL_" />
|
|
|
|
<define name="NO_RTL_INLINES" />
|
|
|
|
<define name="_NTSYSTEM_" />
|
|
|
|
<define name="_NTDLLBUILD_" />
|
|
|
|
<include base="rtl">.</include>
|
2010-11-05 22:21:36 +00:00
|
|
|
|
2008-10-20 23:40:10 +00:00
|
|
|
<if property="ARCH" value="i386">
|
|
|
|
<directory name="i386">
|
|
|
|
<file>debug_asm.S</file>
|
|
|
|
<file>except_asm.s</file>
|
|
|
|
<file>except.c</file>
|
2009-02-17 03:45:27 +00:00
|
|
|
<file>interlck.S</file>
|
2008-10-20 23:40:10 +00:00
|
|
|
<file>rtlswap.S</file>
|
|
|
|
<file>rtlmem.s</file>
|
|
|
|
<file>res_asm.s</file>
|
|
|
|
<file>thread.c</file>
|
|
|
|
</directory>
|
|
|
|
</if>
|
|
|
|
<if property="ARCH" value="powerpc">
|
2011-10-12 21:11:02 +00:00
|
|
|
<file>byteswap.c</file>
|
2008-10-20 23:40:10 +00:00
|
|
|
<directory name="powerpc">
|
|
|
|
<file>debug.c</file>
|
|
|
|
<file>except.c</file>
|
|
|
|
<file>interlocked.c</file>
|
|
|
|
<file>rtlmem.s</file>
|
|
|
|
<file>rtlswap.s</file>
|
|
|
|
<file>thread.c</file>
|
|
|
|
</directory>
|
2009-12-28 12:02:32 +00:00
|
|
|
</if>
|
2008-10-20 23:40:10 +00:00
|
|
|
<if property="ARCH" value="arm">
|
2011-10-12 21:11:02 +00:00
|
|
|
<file>byteswap.c</file>
|
2008-10-20 23:40:10 +00:00
|
|
|
<directory name="arm">
|
|
|
|
<file>debug_asm.S</file>
|
|
|
|
</directory>
|
|
|
|
<file>mem.c</file>
|
|
|
|
</if>
|
|
|
|
<if property="ARCH" value="amd64">
|
2011-10-12 21:11:02 +00:00
|
|
|
<file>byteswap.c</file>
|
2008-10-20 23:40:10 +00:00
|
|
|
<directory name="amd64">
|
|
|
|
<file>debug_asm.S</file>
|
2008-11-12 23:38:33 +00:00
|
|
|
<file>except_asm.S</file>
|
2009-11-26 22:40:07 +00:00
|
|
|
<file>slist.S</file>
|
2008-11-12 15:24:40 +00:00
|
|
|
<file>unwind.c</file>
|
2008-10-26 21:35:03 +00:00
|
|
|
<file>stubs.c</file>
|
2008-10-20 23:40:10 +00:00
|
|
|
</directory>
|
2008-10-26 21:35:03 +00:00
|
|
|
<file>mem.c</file>
|
2008-10-20 23:40:10 +00:00
|
|
|
</if>
|
|
|
|
<file>access.c</file>
|
|
|
|
<file>acl.c</file>
|
|
|
|
<file>actctx.c</file>
|
2009-10-23 22:51:39 +00:00
|
|
|
<file>assert.c</file>
|
2008-10-20 23:40:10 +00:00
|
|
|
<file>atom.c</file>
|
This patch introduces a highly-shareable version of AVL trees both for RTL usage and for ARM3's MM_AVL_TABLE/MMADDRESS_NODE structures used by VADs on Windows (and soon, ReactOS):
[RTL]: Uncouple generic table from AVL table implementation into its own avltable.c
[RTL]: Get rid of "Austin" and fix prototypes of AVL table functions.
[RTL]: Re-implement AVL table functions, sharing as much code as possible with the SPLAY tree implementation which is pretty decent. Lookup, insert, enumeration are implemented, but not delete.
[RTL]: Make large part of the RTL AVL package into its own "support" file that can work both with MMADDRESS_NODE and RTL_BALANCED_LINKS structures. The former is used by ARM3 for VADs.
[NTOS]: Implement basic VAD AVL tree routines (Insert, LookupEmpty, GetPrevious, CheckForConflict, Locate). This is enough to insert VADs, find a free address range, and locate a VAD by address. No delete yet
Thanks to Timo Kreuzer for some clever definitions, Knuth for his genius, several online C implementations for ideas, the HPI kernel blog for insight on how Windows does it, and others.
svn path=/trunk/; revision=48173
2010-07-22 01:41:45 +00:00
|
|
|
<file>avltable.c</file>
|
2008-10-20 23:40:10 +00:00
|
|
|
<file>bitmap.c</file>
|
|
|
|
<file>bootdata.c</file>
|
|
|
|
<file>compress.c</file>
|
|
|
|
<file>condvar.c</file>
|
|
|
|
<file>crc32.c</file>
|
|
|
|
<file>critical.c</file>
|
|
|
|
<file>dbgbuffer.c</file>
|
|
|
|
<file>debug.c</file>
|
|
|
|
<file>dos8dot3.c</file>
|
|
|
|
<file>encode.c</file>
|
|
|
|
<file>env.c</file>
|
|
|
|
<file>error.c</file>
|
|
|
|
<file>exception.c</file>
|
|
|
|
<file>generictable.c</file>
|
|
|
|
<file>handle.c</file>
|
|
|
|
<file>heap.c</file>
|
[RTL/HEAP]
- First commit of a heap manager rewrite. It introduces a totally new heap manager, with the following features:
* Actually resembles real NT's heap manager;
* Based on data structures similar to Windows 2003 and Vista+'s heap structures;
* Supporting advanced heap flags (e.g. useful for debugging);
* Substantially lower fragmentation rates (and thus speed and reliability) than the existing Wine's implementation. It's going to be further enhanced by adding a frontend allocator (for example, as lookaside lists, or as a Low Fragmentation Heap alike frontend in Vista+ systems);
* Real support for user-defined flags and native support for user-defined values;
* Native support for a custom commit routine, which is very important for trunk's win32 subsystem;
* Reserving, committing, decommitting and freeing on the fly, unlike existing heap manager which prefers to reserve and commit as much as possible, and doesn't decommit when it's no longer necessary;
* Support for per process heaps, with a proper lock;
* Reserved support for a special so-called debug heap allocator (to be implemented in heapdbg.c) which will be useful for finding heap corruptions.
The committed code is a result of a month of work, and is a heavy work-in-progress one. It already implements the bare minimum required to boot to 3rd stage and run FireFox 3, however many rare codepaths are not implemented yet and there is some maintenance work to do (e.g. move structures and defines to a standalone header file). A list of used references is stated in the header of a source file for now.
svn path=/trunk/; revision=49007
2010-10-05 21:43:48 +00:00
|
|
|
<file>heapdbg.c</file>
|
2011-02-10 13:24:39 +00:00
|
|
|
<file>heappage.c</file>
|
2008-10-20 23:40:10 +00:00
|
|
|
<file>image.c</file>
|
|
|
|
<file>interlck.c</file>
|
|
|
|
<file>message.c</file>
|
|
|
|
<file>largeint.c</file>
|
|
|
|
<file>luid.c</file>
|
|
|
|
<file>network.c</file>
|
|
|
|
<file>nls.c</file>
|
|
|
|
<file>path.c</file>
|
|
|
|
<file>ppb.c</file>
|
|
|
|
<file>process.c</file>
|
|
|
|
<file>propvar.c</file>
|
|
|
|
<file>random.c</file>
|
|
|
|
<file>rangelist.c</file>
|
|
|
|
<file>registry.c</file>
|
|
|
|
<file>res.c</file>
|
|
|
|
<file>resource.c</file>
|
|
|
|
<file>sd.c</file>
|
|
|
|
<file>security.c</file>
|
|
|
|
<file>slist.c</file>
|
|
|
|
<file>sid.c</file>
|
|
|
|
<file>srw.c</file>
|
|
|
|
<file>splaytree.c</file>
|
|
|
|
<file>thread.c</file>
|
|
|
|
<file>time.c</file>
|
|
|
|
<file>timezone.c</file>
|
|
|
|
<file>timerqueue.c</file>
|
|
|
|
<file>unicode.c</file>
|
|
|
|
<file>unicodeprefix.c</file>
|
|
|
|
<file>vectoreh.c</file>
|
|
|
|
<file>version.c</file>
|
|
|
|
<file>wait.c</file>
|
|
|
|
<file>workitem.c</file>
|
|
|
|
<pch>rtl.h</pch>
|
|
|
|
</module>
|