Commit graph

31900 commits

Author SHA1 Message Date
ReactOS Portable Systems Group
62278bab4a More over-engineering: there really isn't any reason to keep track of the "LowestAddress" of the process' addres space. At first sight, this looked like a dynamic value that would define the
lowest address at which the process has allocated memory, but this isn't the case -- the variable actually defines the lowest valid address a process can allocate memory at. This is pretty
much a static value, that was compute by MmInitializeProcessAddressSpace, to either MM_LOWEST_USER_ADDRESS or MmSystemRangeStart, based on whether or not the address space has an owner process
(meaning it is a user-mode address space) or not (meaning it is a kernel mode address space).
This patch removes that value and all the complex code around checking it, and replaces it with a much simpler design: if there is an owner process, use MM_LOWEST_USER_ADDRESS during gap
calculations, otherwise, use MmSystemRangeStart. This is both faster, and wastes less space by not tracking static data.


svn path=/trunk/; revision=34869
2008-07-27 23:03:20 +00:00
Johannes Anderwald
bbf489032b - implement changing drive volume name
- display default volume label "local disk" if there is no title
- verify that provided clsid is valid
- display drive property dialog
- note: changing volume label currently leads to a crash

svn path=/trunk/; revision=34867
2008-07-27 22:58:19 +00:00
ReactOS Portable Systems Group
8daee04c2a It seems unclear as to what the point of the Page Reference Count Table in the React Addres Space structure really was. It seems an over-engineered approach that actually causes more problems
then it attempts to solve. The idea is to be able to unmap PDEs when they are not required anymore (a noble idea), which saves you 4KB of non-paged pool whenever a process frees a chunk
of 4MB memory (oversimplification). The problem is that to keep track of this, an extremly expensive series of branches, comparisons, masks and shifts is applied every single time that
a page is mapped or unmapped. It also adds 8KB of non-paged pool to keep track of the references, which in some cases can be more wasteful than keeping the page tables around.
Finally, if the process quickly allocates and de-allocates memory in the same PDE range, we will effectively map and unmap the PDE continously, fragmenting hyperspace and slowing down perf.
This patch removes this functionality from the system and re-uses the code that was already present in Mmi386ReleaseMmInfo (with some optimizations and changes) to do this unmapping when the
process exists. This should make things faster, with a very small amount of increased memory footprint (we're talking about less than 100kb of non paged pool, in worse-case scenarios). 


svn path=/trunk/; revision=34865
2008-07-27 22:39:54 +00:00
ReactOS Portable Systems Group
ac0487dfa5 - Fix a couple of bugs, and majorly refactor MmDeleteVirtualMapping to sync it to the x86 version somewhat more.
svn path=/trunk/; revision=34859
2008-07-27 20:58:23 +00:00
Jeffrey Morlan
8054941a9f - Work with screen buffer data using pointers rather than offsets; remove confusing GET_CELL_BUFFER and SET_CELL_BUFFER macros.
- CsrFreeProcessData: Merge two ifs with the same condition.
- Use the pointer-to-pointer trick to simplify linked list handling in CsrFreeProcessData, IntInsertAliasHeader, IntInsertAliasEntry, and IntDeleteAliasEntry.

svn path=/trunk/; revision=34858
2008-07-27 20:08:18 +00:00
ReactOS Portable Systems Group
027390f247 - Major cleanup, refactoring, and bugfixing of ARM Mm code in preparation for user-mode support.
- Sync the code a lot closer to its x86 counterpart, still more work to be done.
- Very soon, it should be possible to share upward of 50% of the new ARM code with the x86 version of React as well and unify the implementations.

svn path=/trunk/; revision=34857
2008-07-27 19:52:41 +00:00
Hervé Poussineau
246c0ca9d0 Revert r34848 and r34850, and replace them by a real fix (hinted by Colin Finck)
svn path=/trunk/; revision=34856
2008-07-27 19:39:05 +00:00
Colin Finck
f5c074984b Maciej Bialas (bjauy@tlen.pl)
- Add '#include <cstring>', so newer gcc's don't complain about a missing memset function

See issue #3595 for more details.

svn path=/trunk/; revision=34855
2008-07-27 19:10:44 +00:00
Hervé Poussineau
e66ffe54fe Fix code to correctly handle first object file.
It was luckily working because first file was always conditional.

svn path=/trunk/; revision=34854
2008-07-27 17:12:44 +00:00
Hervé Poussineau
241493fe8e Fix typo
svn path=/trunk/; revision=34853
2008-07-27 16:33:57 +00:00
Hervé Poussineau
d4d0c4fdf6 Resolve <if> and <ifnot> elements during parsing time.
Backend don't have to deal anymore with if-able modules, defines, ...

svn path=/trunk/; revision=34852
2008-07-27 16:17:50 +00:00
Aleksey Bragin
e880f2361a - ntdll should be the last library in the list, not the first or somewhere in the middle ("as it imports from nothing and everything else should be resolved with it", by Herve). This fixes some base system DLLs dependency on msvcrt (which doesn't exist in Windows). Thanks Herve!
svn path=/trunk/; revision=34851
2008-07-27 16:03:38 +00:00
Hervé Poussineau
f958aedf05 Define __LINUX__ for build tools if host is Linux
svn path=/trunk/; revision=34850
2008-07-27 15:49:18 +00:00
Hervé Poussineau
4d5f9f73ed Add a variable to include support for ELF format
svn path=/trunk/; revision=34849
2008-07-27 15:48:00 +00:00
Hervé Poussineau
9f882f816a Define __LINUX__ for build tools if host is Linux
svn path=/trunk/; revision=34848
2008-07-27 15:32:40 +00:00
Jeffrey Morlan
f3fa3ee47e Improvements to cmd ConPrintfPaging:
- Even if there is a console, don't do paging when output is redirected to a file; it would just confuse users with prompts they can't see.
- Instead of WriteFile, use WriteConsole (which has a convenient Unicode version).
- Rework the paging algorithm: don't treat end of string the same way as end-of-line (was causing nul bytes to be output after strings that didn't end with \n), and output multiple lines at once when possible.
- Use the screen buffer width, not the window width, to determine when wrapping will happen.
- Take the initial cursor position into account.

svn path=/trunk/; revision=34847
2008-07-27 14:03:44 +00:00
Hervé Poussineau
12a1603c6e Factorize code for simple module types
svn path=/trunk/; revision=34846
2008-07-27 14:01:24 +00:00
Colin Finck
6b50b9e320 Daniel Verkamp (daniel.verkamp@gmail.com):
- Fix buildno warnings when compiled with GCC 4.2.x or later
See issue #3578 for more details.

svn path=/trunk/; revision=34844
2008-07-27 13:34:53 +00:00
Hervé Poussineau
72fbdac08a Use hal.spec file for i386 build
svn path=/trunk/; revision=34841
2008-07-27 09:56:21 +00:00
Hervé Poussineau
615f0216fa Add support for fastcall functions in .spec files
svn path=/trunk/; revision=34837
2008-07-27 09:12:37 +00:00
Hervé Poussineau
0bd0421c3b Add a .spec file for HAL exports. Don't use it yet
svn path=/trunk/; revision=34836
2008-07-27 09:07:59 +00:00
Hervé Poussineau
127f001ffc Preprocess kernel .spec files
svn path=/trunk/; revision=34830
2008-07-27 08:26:42 +00:00
Hervé Poussineau
f9299e18b2 Prevent code duplication when translating GCC platform defines to MSVC ones.
svn path=/trunk/; revision=34829
2008-07-27 08:18:07 +00:00
Art Yerkes
43bf5f1b02 More specific error messages. More correct according to winetests.
svn path=/trunk/; revision=34828
2008-07-27 08:12:12 +00:00
ReactOS Portable Systems Group
27fab2e256 - Build "smlib", "nt", and "smss" on ARM, since the kernel now tries to load the first user-mode process.
- MmCreateProcessAddressSpace is unimplemented.


svn path=/trunk/; revision=34825
2008-07-27 05:44:56 +00:00
ReactOS Portable Systems Group
ea820b22a1 - On ARM, print out a message and freeze execution inside the native process main routine wrapper. This is essentially the first line of code that will execute in user-mode, and we need to know (celebrate) about it.
svn path=/trunk/; revision=34824
2008-07-27 05:40:31 +00:00
ReactOS Portable Systems Group
8fbd2ddb5b - Fix NTDLL exports on ARM.
svn path=/trunk/; revision=34823
2008-07-27 05:39:31 +00:00
ReactOS Portable Systems Group
8dbe67ba2f - Fix double semicolon.
svn path=/trunk/; revision=34822
2008-07-27 05:39:17 +00:00
ReactOS Portable Systems Group
574cb20678 - MmDeleteVirtualMapping can be called for memory that isn't mapped yet -- just ignore this like we do on x86.
- This gets us much farther, to the point where we try to load smss.exe but can't find it.


svn path=/trunk/; revision=34821
2008-07-27 05:38:51 +00:00
ReactOS Portable Systems Group
b66ab06e30 - Stop adding those damn @ decorations to ARM builds.
svn path=/trunk/; revision=34820
2008-07-27 05:37:54 +00:00
ReactOS Portable Systems Group
54f208ec84 - Silence debug prints.
svn path=/trunk/; revision=34819
2008-07-27 05:37:38 +00:00
James Tabor
5296beccd9 Turn off WH_CALLWNDPROC and WH_GETMESSAGE debug spam.
svn path=/trunk/; revision=34818
2008-07-27 00:56:18 +00:00
Jeffrey Morlan
b1086dbdae Move console alias functions from csrss to win32csr, and make aliases per-console.
svn path=/trunk/; revision=34817
2008-07-27 00:41:45 +00:00
Jeffrey Morlan
198d88a60b - In cmd, add ConOutResPrintf and ConErrResPrintf functions for printf-ing from a resource string; use it to shorten several instances of LoadString+Con*Printf.
- Also change FilePromptYN and FilePromptYNA to take a resource ID. Remove varargs code which nobody used (and didn't actually work anyway)

svn path=/trunk/; revision=34816
2008-07-26 22:49:49 +00:00
Matthias Kupfer
33ab9a11a5 reenable Norwegian language and keyboard layout (tested by Frode Lillerud)
svn path=/trunk/; revision=34815
2008-07-26 22:20:02 +00:00
James Tabor
5bf50a8d93 - Fix crash in callback and disable HCBT_CREATEWND until it is implemented correctly. Hooks seem to be working.
svn path=/trunk/; revision=34814
2008-07-26 22:06:31 +00:00
Jeffrey Morlan
6320253c94 In mkdir, don't add a backslash to the end - it can trick CreateDirectory into creating a dir with the name of a DOS device (even in Windows).
svn path=/trunk/; revision=34810
2008-07-26 17:15:37 +00:00
Jeffrey Morlan
cbf6a79f07 - IntWriteConsoleInput: Copy the data *to* the capture buffer, not *from* it!
- Move code for handling ^C (plus that weird pseudo-scrolling thing) from ConioProcessChar to ConioProcessKey, so that WriteConsoleInput won't generate ctrl events.
- ConioProcessChar: Remove redundant NULL == Console checks (Console can't be NULL at this point), and move debug message into the check in ConioProcessKey.

svn path=/trunk/; revision=34808
2008-07-26 15:20:21 +00:00
James Tabor
e153b69952 - Attempt to initiate hook set from kernel space.
svn path=/trunk/; revision=34807
2008-07-26 12:27:40 +00:00
Aleksey Bragin
138fbd967b Jon Griffiths
msvcrt: Implement ___setlc_active_func/___unguarded_readlc_active_add_func

svn path=/trunk/; revision=34806
2008-07-26 11:54:54 +00:00
Aleksey Bragin
9db3c82bb7 - Sync with Wine (null-initializing some exported data).
svn path=/trunk/; revision=34805
2008-07-26 11:45:59 +00:00
James Tabor
37cf6bcd75 - Fix boot add missing return.
svn path=/trunk/; revision=34799
2008-07-26 00:25:42 +00:00
James Tabor
996438fdc6 - Replace Global flag.
svn path=/trunk/; revision=34797
2008-07-26 00:03:31 +00:00
James Tabor
9bec76e407 - Fix NtUserCallMsgFilter so it initiates the hook call.
svn path=/trunk/; revision=34794
2008-07-25 23:08:50 +00:00
Hervé Poussineau
4b1181962c Cleanup code
svn path=/trunk/; revision=34793
2008-07-25 20:28:59 +00:00
Hervé Poussineau
e99c0ad3a9 Add comments
Better interface declarations

svn path=/trunk/; revision=34792
2008-07-25 20:27:05 +00:00
Hervé Poussineau
242b0d5be5 Replace DPRINT/DPRINT1 by dynamic traces
svn path=/trunk/; revision=34791
2008-07-25 20:24:46 +00:00
Hervé Poussineau
042289aad8 Notify kernel when configuration is good
svn path=/trunk/; revision=34790
2008-07-25 20:16:16 +00:00
Hervé Poussineau
9ba8702be9 Apply again r34533: rename autogenerated makefile to makefile-$(ARCH).auto,
except for i386, due to a bug in RosBE which cleans only makefile.auto and not makefile*.auto

svn path=/trunk/; revision=34789
2008-07-25 19:07:36 +00:00
Hervé Poussineau
d62f18210a Revert incorrect fix committed in r34077 by cfinck, and replace it by a better one.
svn path=/trunk/; revision=34788
2008-07-25 18:45:54 +00:00