14 years agoFix butterflies' build
Colin Finck [Wed, 20 Feb 2008 22:14:36 +0000 (22:14 +0000)]
Fix butterflies' build
All screensavers using the scrnsave library must be compiled with Unicode now.

svn path=/trunk/; revision=32439

14 years agoGoodbye xpstubs.c.
James Tabor [Wed, 20 Feb 2008 21:43:49 +0000 (21:43 +0000)]
Goodbye xpstubs.c.

svn path=/trunk/; revision=32438

14 years ago- Remove much Win9x-specific stuff from the scrnsave library and make it more compati...
Colin Finck [Wed, 20 Feb 2008 21:43:41 +0000 (21:43 +0000)]
- Remove much Win9x-specific stuff from the scrnsave library and make it more compatible to the MS version of the library
- Change the 3dtext screensaver to use the library
- Reduce the amount of code in the blankscr screensaver to a minimum
- Remove unneeded resources from both screensavers
- Indentation fixes, MSVC build and warning fixes, small translation fixes, etc. for both screensavers and the library

See issue #2966 for more details.

svn path=/trunk/; revision=32437

14 years ago- fix a few issues to make it compilable with current RosBE
Johannes Anderwald [Wed, 20 Feb 2008 20:58:39 +0000 (20:58 +0000)]
- fix a few issues to make it compilable with current RosBE
- does not yet link

svn path=/trunk/; revision=32436

14 years agoPatch by Stefan Ginsberg (stefan__100__ AT hotmail DOT com): CLeanup win32k. Remove...
James Tabor [Wed, 20 Feb 2008 20:53:36 +0000 (20:53 +0000)]
Patch by Stefan Ginsberg (stefan__100__ AT hotmail DOT com): CLeanup win32k. Remove xpstubs.c.

svn path=/trunk/; revision=32435

14 years ago- fix compilation with msvc
Johannes Anderwald [Wed, 20 Feb 2008 19:13:52 +0000 (19:13 +0000)]
- fix compilation with msvc

svn path=/trunk/; revision=32432

14 years ago- Update Russian translation
Dmitry Chapyshev [Wed, 20 Feb 2008 14:19:56 +0000 (14:19 +0000)]
- Update Russian translation

svn path=/trunk/; revision=32431

14 years agoPatch by Stefan Ginsberg (stefan__100__ AT hotmail DOT com):
Timo Kreuzer [Wed, 20 Feb 2008 03:01:46 +0000 (03:01 +0000)]
Patch by Stefan Ginsberg (stefan__100__ AT hotmail DOT com):
- move bad ntuser syscalls in ntuser.h to the bottom
- sort win32k export list alphabetically
- remove Win32kInitialize and NtGdiGetAspectRatioFilterEx
by myself:
- add missing exports to win32k.def (all from xp)

svn path=/trunk/; revision=32430

14 years agoBug 3090: Czech translation for cacls, more & find by
Daniel Reimer [Tue, 19 Feb 2008 22:55:36 +0000 (22:55 +0000)]
Bug 3090: Czech translation for cacls, more & find by
Usetup Polish Translation Update by Olaf Siejka

svn path=/trunk/; revision=32429

14 years agoRemove typecasts PBITMAPOBJ <-> PSURFOBJ. Use GDIOBJ_ShareLockObj / _UnlockObjByPtr...
Timo Kreuzer [Tue, 19 Feb 2008 22:21:39 +0000 (22:21 +0000)]
Remove typecasts PBITMAPOBJ <-> PSURFOBJ. Use GDIOBJ_ShareLockObj / _UnlockObjByPtr instead of Eng(Un)LockSurface as BITMAPOBJ_Un/LockObj. Add BASEOBJECT to the BITMAPOBJ structure.

svn path=/trunk/; revision=32428

14 years agoOkokok, I dont know why someone should feel the urge to translate MB, KB, and GB...
Daniel Reimer [Tue, 19 Feb 2008 21:31:09 +0000 (21:31 +0000)]
Okokok, I dont know why someone should feel the urge to translate MB, KB, and GB (Except specific languages...), but here they are.

svn path=/trunk/; revision=32427

14 years ago- Update French translation
Sylvain Petreolle [Tue, 19 Feb 2008 19:56:35 +0000 (19:56 +0000)]
- Update French translation

svn path=/trunk/; revision=32425

14 years ago- Update Russian translation
Dmitry Chapyshev [Tue, 19 Feb 2008 19:45:09 +0000 (19:45 +0000)]
- Update Russian translation

svn path=/trunk/; revision=32424

14 years agoOnce more, some more Strings open for translation. Have fun with 'em.
Daniel Reimer [Tue, 19 Feb 2008 19:37:49 +0000 (19:37 +0000)]
Once more, some more Strings open for translation. Have fun with 'em.

svn path=/trunk/; revision=32423

14 years ago- Fix a typo.
Aleksey Bragin [Tue, 19 Feb 2008 17:52:37 +0000 (17:52 +0000)]
- Fix a typo.

svn path=/trunk/; revision=32422

14 years ago- Fix dxg's includes.
Aleksey Bragin [Tue, 19 Feb 2008 17:18:18 +0000 (17:18 +0000)]
- Fix dxg's includes.

svn path=/trunk/; revision=32421

14 years agoBug 3089: Ukrainian translation update by Artem Reznikov -
Daniel Reimer [Tue, 19 Feb 2008 15:43:41 +0000 (15:43 +0000)]
Bug 3089: Ukrainian translation update by Artem Reznikov -

svn path=/trunk/; revision=32420

14 years agosome cleanup
Timo Kreuzer [Mon, 18 Feb 2008 23:05:41 +0000 (23:05 +0000)]
some cleanup
- move NtGdiFlushUserBatch prototype to ntgdi.h
- move pool tags from ntgdihdl.h to win32k/tags.h
- move DC struct from ntgdihdl.h to win32k/dc.h
- use BASEOBJECT in DC and GDIDEVICE structures
- rename some NtGdiXxx functions that don't deserve that name and remove some that were defined by a macro, but don't exist on windows (#if 0'ed atm)
- remove RetrieveDisplayHDC() prototype (doesn't exist)

svn path=/trunk/; revision=32419

14 years agoBug 3088: Polish locale update: usetup + appwiz-new by Olaf Siejka - olaf_siejka...
Daniel Reimer [Mon, 18 Feb 2008 22:19:07 +0000 (22:19 +0000)]
Bug 3088: Polish locale update: usetup + appwiz-new by Olaf Siejka -

svn path=/trunk/; revision=32418

14 years agoFix counting of MmStats.NrFreePages.
Filip Navara [Mon, 18 Feb 2008 21:43:45 +0000 (21:43 +0000)]
Fix counting of MmStats.NrFreePages.

svn path=/trunk/; revision=32417

14 years agoAdd German Translation to appwiz-new.
Daniel Reimer [Mon, 18 Feb 2008 21:41:13 +0000 (21:41 +0000)]
Add German Translation to appwiz-new.
remove DS_FIXEDSYS, it is already set by DS_SHELLFONT.
Fix some Strings in en-EN.rc.

svn path=/trunk/; revision=32416

14 years ago- Fix formating
Dmitry Chapyshev [Mon, 18 Feb 2008 21:14:53 +0000 (21:14 +0000)]
- Fix formating
- Add Russian translation

svn path=/trunk/; revision=32415

14 years agofrench translation for appwiz-new
Sylvain Petreolle [Mon, 18 Feb 2008 20:39:49 +0000 (20:39 +0000)]
french translation for appwiz-new
little fixes

svn path=/trunk/; revision=32414

14 years ago- Small fix
Dmitry Chapyshev [Mon, 18 Feb 2008 20:20:02 +0000 (20:20 +0000)]
- Small fix

svn path=/trunk/; revision=32413

14 years ago- Implement new appwiz
Dmitry Chapyshev [Mon, 18 Feb 2008 17:25:40 +0000 (17:25 +0000)]
- Implement new appwiz

svn path=/trunk/; revision=32412

14 years agoSpanish localizations by Javier Ramacha
Marc Piulachs [Mon, 18 Feb 2008 17:19:52 +0000 (17:19 +0000)]
Spanish localizations by Javier Ramacha

Updated: control, solitaire, servman, 3dtext, taskmgr, explorer and expand
New: msconfig

See issue #3078 for more details.

svn path=/trunk/; revision=32411

14 years ago- Update Russian translation
Dmitry Chapyshev [Sun, 17 Feb 2008 22:21:30 +0000 (22:21 +0000)]
- Update Russian translation

svn path=/trunk/; revision=32410

14 years agoSeems like there got one string lost... fixed now. Thx to Kario for noticing.
Daniel Reimer [Sun, 17 Feb 2008 21:57:55 +0000 (21:57 +0000)]
Seems like there got one string lost... fixed now. Thx to Kario for noticing.

svn path=/trunk/; revision=32409

14 years agofrench usetup translation update
Sylvain Petreolle [Sun, 17 Feb 2008 19:56:37 +0000 (19:56 +0000)]
french usetup translation update
see complete filenames when "Copying file :"

svn path=/trunk/; revision=32408

14 years agoFix some typos.
Filip Navara [Sun, 17 Feb 2008 19:39:28 +0000 (19:39 +0000)]
Fix some typos.

svn path=/trunk/; revision=32407

14 years agoBug 3070: Ukrainian translation update by Artem Reznikov -
Daniel Reimer [Sun, 17 Feb 2008 18:05:08 +0000 (18:05 +0000)]
Bug 3070: Ukrainian translation update by Artem Reznikov -
Bug 3078: czech translation for solitaire by
Bug 3083: usetup update by Paolo Devoti -
Added the English Strings to all USETUP Resources and activated these. This makes translating easier.
Renamed German to Deutsch and Russian to Russkij, which seems like it does not work... (thx to Caemyr anyway)

svn path=/trunk/; revision=32406

14 years ago- Fix a bug, when the page first was marked as free and put into free pages list...
Aleksey Bragin [Sun, 17 Feb 2008 16:24:24 +0000 (16:24 +0000)]
- Fix a bug, when the page first was marked as free and put into free pages list to zero out, and then was marked as used for PFN database, but *not* removed from that list! Certainly it was zeroed out later, introducing a corruption within the free list and a pagefault.
- This revision completely removes hacks introduced in 32386.
See issue #3076 for more details.

svn path=/trunk/; revision=32405

14 years agoFixed duplicate typedef in DirectX headers for real this time :)
Gregor Brunmar [Sun, 17 Feb 2008 14:51:26 +0000 (14:51 +0000)]
Fixed duplicate typedef in DirectX headers for real this time :)

svn path=/trunk/; revision=32404

14 years agoFixed duplicate typedefs in DirectX headers
Gregor Brunmar [Sun, 17 Feb 2008 14:40:23 +0000 (14:40 +0000)]
Fixed duplicate typedefs in DirectX headers

svn path=/trunk/; revision=32403

14 years agoOops, removed OsThunkD3dDrawPrimitives2 from d3d8thk.h.
Gregor Brunmar [Sun, 17 Feb 2008 13:42:02 +0000 (13:42 +0000)]
Oops, removed OsThunkD3dDrawPrimitives2 from d3d8thk.h.

svn path=/trunk/; revision=32402

14 years ago* Updated d3d headers to make it possible to include both d3d and d3d9 at the same...
Gregor Brunmar [Sun, 17 Feb 2008 13:34:59 +0000 (13:34 +0000)]
* Updated d3d headers to make it possible to include both d3d and d3d9 at the same time.
* Updated d3dhal.h to support DirectX 9
* Fixed broken d3dnthal.h
* Fixed missing structures in d3d8thk.h

svn path=/trunk/; revision=32401

14 years ago- Zero early-allocated pages for PFN DB itself, as suggested on the ros-dev mailing...
Aleksey Bragin [Sun, 17 Feb 2008 13:08:28 +0000 (13:08 +0000)]
- Zero early-allocated pages for PFN DB itself, as suggested on the ros-dev mailing list, and hyperspace mapping seems to work, at least on x86. Fixes the "warm reboot-bug" in 2nd stage.

svn path=/trunk/; revision=32400

14 years ago- Only add a command for deleting the proxy makefile, when one was really generated.
Colin Finck [Sat, 16 Feb 2008 23:45:23 +0000 (23:45 +0000)]
- Only add a command for deleting the proxy makefile, when one was really generated.
  Should fix all those "Error 1 (ignored)" warnings (if there aren't even more problems ;-)
- Include <algorithm> in modulehandler.cpp. Fixes compilation with MSVC.
- Add _CRT_SECURE_NO_WARNINGS to the MSVC project file to disable a bunch of MSVC warnings.

svn path=/trunk/; revision=32399

14 years ago[FORMATTING]
Colin Finck [Sat, 16 Feb 2008 23:07:40 +0000 (23:07 +0000)]
- 2 spaces --> 4 spaces
- some other changes to make the code style consistent with most ROS code
- Change in the .rbuild file to treat warnings as errors (the lib currently doesn't spit out any warnings, so it shouldn't do in the future)

svn path=/trunk/; revision=32398

14 years agoFix 64-bit build (again.. :-/)
Colin Finck [Sat, 16 Feb 2008 22:49:52 +0000 (22:49 +0000)]
Fix 64-bit build (again.. :-/)

svn path=/trunk/; revision=32397

14 years ago/Wp64 and __w64 are deprecated beginning with Visual C++ 2008.
Colin Finck [Sat, 16 Feb 2008 22:21:59 +0000 (22:21 +0000)]
/Wp64 and __w64 are deprecated beginning with Visual C++ 2008.
Remove the /Wp64 switch from the cabman project file (no idea why it was enabled anyway ;-) and the _W64 macros from the code.

svn path=/trunk/; revision=32395

14 years agoOnce more... make it possible to translate usetup COMPLETELY. (I hope this time I...
Daniel Reimer [Sat, 16 Feb 2008 18:58:05 +0000 (18:58 +0000)]
Once more... make it possible to translate usetup COMPLETELY. (I hope this time I am right....)

svn path=/trunk/; revision=32392

14 years ago- Patch by Stefan Ginsberg (stefan__100__ AT hotmail DOT com): Removed NtGdiStretchDI...
James Tabor [Sat, 16 Feb 2008 18:14:36 +0000 (18:14 +0000)]
- Patch by Stefan Ginsberg (stefan__100__ AT hotmail DOT com): Removed NtGdiStretchDIBits and NtGdiAddFontResource. Replaced with correct API.

svn path=/trunk/; revision=32391

14 years ago- Add Arabic and Czech languages to list
Dmitry Chapyshev [Sat, 16 Feb 2008 17:36:34 +0000 (17:36 +0000)]
- Add Arabic and Czech languages to list

svn path=/trunk/; revision=32390

14 years ago- Add small checking
Dmitry Chapyshev [Sat, 16 Feb 2008 17:28:58 +0000 (17:28 +0000)]
- Add small checking
- Fix formating

svn path=/trunk/; revision=32389

14 years ago- Add libpng 1.2.24 (from
Dmitry Chapyshev [Sat, 16 Feb 2008 16:23:33 +0000 (16:23 +0000)]
- Add libpng 1.2.24 (from

svn path=/trunk/; revision=32388

14 years ago- Update Russian translation
Dmitry Chapyshev [Sat, 16 Feb 2008 15:26:00 +0000 (15:26 +0000)]
- Update Russian translation

svn path=/trunk/; revision=32387

14 years ago- Add a hacked and incorrect (due to absence of checking for BIOS-reserved memory...
Aleksey Bragin [Sat, 16 Feb 2008 14:56:56 +0000 (14:56 +0000)]
- Add a hacked and incorrect (due to absence of checking for BIOS-reserved memory areas) MiInitializePageList from 32371. This allows 1st stage to work, and 2nd stage to work from the first power up.
- Real, new, [bugless] MiInitializePageList is #if0-#endif'ed until a problem in it is identified and fixed.

svn path=/trunk/; revision=32386

14 years agoImplemented IDirect3D::GetDeviceCaps()
Gregor Brunmar [Sat, 16 Feb 2008 11:17:46 +0000 (11:17 +0000)]
Implemented IDirect3D::GetDeviceCaps()

svn path=/trunk/; revision=32385

14 years agoOn systems with large enough memory (or lots of drivers already loaded), we actually...
ReactOS Portable Systems Group [Fri, 15 Feb 2008 20:52:36 +0000 (20:52 +0000)]
On systems with large enough memory (or lots of drivers already loaded), we actually need another PDE to hold the new PTEs to represent the PFN database, since we go past the initial PDEs that come from FreeLDR. On those systems, we would try allocating a new page to hold the PDE, and crash, since the PFN database isn't setup. We now have an MmAllocPageEarly routine which is called during Mm bootstrapping to resolve this issue.

svn path=/trunk/; revision=32383

14 years agoBug 3053: some slovak translations by Mário Kaèmár -
Daniel Reimer [Fri, 15 Feb 2008 19:36:22 +0000 (19:36 +0000)]
Bug 3053: some slovak translations by Mário Kaèmár -

svn path=/trunk/; revision=32382

14 years agoBug 3053: some slovak translations by Mário Kaèmár -
Daniel Reimer [Fri, 15 Feb 2008 19:25:36 +0000 (19:25 +0000)]
Bug 3053: some slovak translations by Mário Kaèmár -

svn path=/trunk/; revision=32381

14 years ago- taskmgr improvements by Carlo Bramix
Johannes Anderwald [Fri, 15 Feb 2008 19:22:55 +0000 (19:22 +0000)]
- taskmgr improvements by Carlo Bramix
See issue #3075 for more details.

svn path=/trunk/; revision=32380

14 years agoWe now define KUSER_SHARED_DATA per architecture, since the address isn't portable...
ReactOS Portable Systems Group [Fri, 15 Feb 2008 19:01:45 +0000 (19:01 +0000)]
We now define KUSER_SHARED_DATA per architecture, since the address isn't portable. Now SharedUserData works on ARM.
Implemented KeAcquireInSTackQueuedSpinLock, KeAcquireInStackQueuedSpinLockRaiseToSYnc and KeReleaseInStackQueuedSpinLock based on x86 UP versions.
On ARM, the PCR is fully exposed, so some APIs are always-inlined direct-memory-access (unlike x86 which has the fs selector, and undocumented parts of the PCR). This means we can define several macros -- fixed the headers to allow this, by defining the previous stuff for x86 only.
Setup registry data in the ARM loader block.
The ARM port boots all the way through ExpInitializeExecutive until reaching MmInit1. The boot-registry is correctly loaded and parsed, as are NLS files!

svn path=/trunk/; revision=32379

14 years ago- declare variables as extern
Johannes Anderwald [Fri, 15 Feb 2008 18:42:24 +0000 (18:42 +0000)]
- declare variables as extern
- release desktop dc

See issue #3052 for more details.

svn path=/trunk/; revision=32378

14 years agoSynched winhelp and wordpad to Wine 0.9.55.
Daniel Reimer [Fri, 15 Feb 2008 15:04:14 +0000 (15:04 +0000)]
Synched winhelp and wordpad to Wine 0.9.55.
To the translators that translated winhelp to Greek, Lithuan, Portugese and Ukrainian. Can you please send your translations to winehq? I will keep them anyway, but this way its easier to keep synched.

svn path=/trunk/; revision=32377

14 years agoWe now setup NLS data in the loader block, as well as setup the minimal loader block...
ReactOS Portable Systems Group [Fri, 15 Feb 2008 07:45:37 +0000 (07:45 +0000)]
We now setup NLS data in the loader block, as well as setup the minimal loader block extension fields to pass ExpIsLoaderValid validation.

svn path=/trunk/; revision=32376

14 years agoSync with X86 build -- don't call MmInit1 so early anymore.
ReactOS Portable Systems Group [Fri, 15 Feb 2008 07:44:42 +0000 (07:44 +0000)]
Sync with X86 build -- don't call MmInit1 so early anymore.

svn path=/trunk/; revision=32375

14 years agoRemove Ke386Pae conditionals from page code -- PAE is never turned on ReactOS (and...
ReactOS Portable Systems Group [Fri, 15 Feb 2008 06:53:49 +0000 (06:53 +0000)]
Remove Ke386Pae conditionals from page code -- PAE is never turned on ReactOS (and probably wouldn't work), so there's no point in wasting CPU cycles and making the code even more unredable by having the PAE code there.
The PAE implementation has been moved to pagepae.c, in case someone will ever want to revive.
Even in that case, it's recommended to build two kernels like everyone else does, instead of doing runtime conditionals for every single page operation.

svn path=/trunk/; revision=32374

14 years agoChrist! Don't zero out the shared memory page during Virtual Memory initialization...
ReactOS Portable Systems Group [Fri, 15 Feb 2008 06:49:59 +0000 (06:49 +0000)]
Christ! Don't zero out the shared memory page during Virtual Memory initialization! The page is already well in-use by the time we were zeroing it out, and this is also the reason why all the attempts to move MmInit1 into MmInitSystem had previously failed -- the NtSystemRoot path would get written during initialization (But before MmInitSystem), and MmInit1 would then zero out the entire structure.
Not only does this allow us to do MmInit1 in MmInitSystem, where it should be, but it also fixes the fact that several KUSER_SHARED_DATA flags were being zeroed out.
As an added benefit, ARM/PPC ports now need to worry about Mm much later then before (well after the HAL has initialized and interrupts are enabled).

svn path=/trunk/; revision=32373

14 years agoGet rid of complete hack that MmInitializePageList was, and use the ARC Memory Descri...
ReactOS Portable Systems Group [Fri, 15 Feb 2008 01:19:46 +0000 (01:19 +0000)]
Get rid of complete hack that MmInitializePageList was, and use the ARC Memory Descriptor Tree instead. No more magical assumptions about page numbers. No more BIOS Memory Map from FreeLDR. No more hard-coded/static addresses being pased from the bowels of FreeLDR to the kernel.
"Oh my God, I can't believe this is real."
We can now continue the ARM port since the ARM port uses real ARC memory descriptors and not the completely hacked up pages the kernel was previously crossing its fingers to get. As a side effect, this probably unblocks the final hurdle to get ReactOS booted by NTLDR.

svn path=/trunk/; revision=32372

14 years agoFixed several off-by-one errors when playing with the PFN database array size. Among...
ReactOS Portable Systems Group [Fri, 15 Feb 2008 01:04:22 +0000 (01:04 +0000)]
Fixed several off-by-one errors when playing with the PFN database array size. Among other things, certain valid pages would be considered invalid, and also the PFN database wouldn't be properly erased on startup (which would result in a crash after a warm reboot or restarting the emulator).

svn path=/trunk/; revision=32371

14 years agoRemove accidentally enabled debugging function, and apply the FreeLDR 6MB hack when...
ReactOS Portable Systems Group [Fri, 15 Feb 2008 00:50:26 +0000 (00:50 +0000)]
Remove accidentally enabled debugging function, and apply the FreeLDR 6MB hack when building the ARC Memory Descriptor List as well. This will reflect the memory in use (thus representing the ARC-based glorious hack) when parsing the memory descriptor list, something we'll soon have to do in MmInitializePageList.

svn path=/trunk/; revision=32370

14 years agoFixed some bugs we introduced by incorrectly double-accounting the PFN database....
ReactOS Portable Systems Group [Fri, 15 Feb 2008 00:31:18 +0000 (00:31 +0000)]
Fixed some bugs we introduced by incorrectly double-accounting the PFN database. The database is *virtually* continous and follows the kernel address region, but not physically -- physically, it is at the very far end of memory.
Unfortunately, fixing this bug now caused any unused memory in the  FreeLDR-mapped region of 6MB to appear...well...unused. This would normally be a good thing, except ReactOS started crashing.
We fixed it by applying the Glorious Hack. See freelist.c:359.

svn path=/trunk/; revision=32369

14 years agoReview and fix the buildingg and mapping of boot-time kernel address space.
ReactOS Portable Systems Group [Thu, 14 Feb 2008 23:39:31 +0000 (23:39 +0000)]
Review and fix the buildingg and mapping of boot-time kernel address space.
The selection of the non-paged pool base address was broken (ion's comment was correct, but his implementation was not) -- NP pool now follows the PFN, or end of FreeLDR mapping area.
There was no reason to put paged pool at a 4MB boundary away from NP pool -- it now follows it immediately.
Got rid of multiple values which were calculated 3, even 4 times in a row, or even values that were calculated but never used (such as kernel_len).
Got rid of the shuffling back and forth of kernel and virtual start/end addresses. A global now keeps track of this, and MmInit1 is now solely responsible for assigning addresses to each kernel region.
Added new debug routine to show the kernel regions mapped -- enabled by default for now to visually detect any problems (once ReactOS's drivers go over 6MB, there may be).

svn path=/trunk/; revision=32368

14 years agoThe system never considered "ReservedPages" as any different from "SystemPages",...
ReactOS Portable Systems Group [Thu, 14 Feb 2008 22:34:50 +0000 (22:34 +0000)]
The system never considered "ReservedPages" as any different from "SystemPages", other than to spend the accounting time to mark these pages differently. Removed the notion of a reserved pages and count them as system pages instead.

svn path=/trunk/; revision=32367

14 years agoreactivate kdbg.
Daniel Reimer [Thu, 14 Feb 2008 22:02:57 +0000 (22:02 +0000)]
reactivate kdbg.

svn path=/trunk/; revision=32366

14 years agoDon't allow code to access the PFN database directly -- instead, always go through...
ReactOS Portable Systems Group [Thu, 14 Feb 2008 21:19:30 +0000 (21:19 +0000)]
Don't allow code to access the PFN database directly -- instead, always go through MiGetPfnEntry to have a controlled path.
Add assertions to this function, to make sure PFN access is always valid (previous code would sometimes KEBUGCHECK(0) without a real explenation if such cases were encounted -- but developers randomly chose which functions would be protected).
Also, since PFNs are 0-based, do allow Pfn == MmPageArraySize if someone is reading the last PFN on the system.
Finally, protect some of the functions which were accessing the PFN entries outside the PFN list lock.

svn path=/trunk/; revision=32365

14 years agoOne would expect that a function called "MmIsUsablePage" would return whether a not...
ReactOS Portable Systems Group [Thu, 14 Feb 2008 20:30:31 +0000 (20:30 +0000)]
One would expect that a function called "MmIsUsablePage" would return whether a not a page is usable. In other words, we are making sure that the page is free/available, so that we may make use of it. Apparently not so -- MmIsUsable page returned if a page was NOT usable, but was instead "already used". The caller's wish was to ensure he was correctly using a used page, not to check if he could start using a usable page. This would just be an annoying gramatical/logic error (but makes "sense" in the way it's used), if it weren't for the fact that MmIsUsablePage also returned TRUE for BIOS pages (which meant, "yes, you are correctly using/overwriting memory we spent time ensuring to mark as reserved/BIOS").
Renamed the function to MmIsPageInUse, and only return TRUE if the page is in use. Like the name says.

svn path=/trunk/; revision=32364

14 years ago- Load drivers database (AppPatch/drvmain.sdb), so Windows could use it if needed.
Aleksey Bragin [Thu, 14 Feb 2008 20:27:59 +0000 (20:27 +0000)]
- Load drivers database (AppPatch/drvmain.sdb), so Windows could use it if needed.

svn path=/trunk/; revision=32363

14 years agoFix a couple of off-by-one bugs we recently introduced -- PFNs are one of the only...
ReactOS Portable Systems Group [Thu, 14 Feb 2008 20:20:44 +0000 (20:20 +0000)]
Fix a couple of off-by-one bugs we recently introduced -- PFNs are one of the only indexes which are actually 0-based, so you really want to loop from 0 to the last page, inclusive (unlike most loops where you would stop *before* the last element index).

svn path=/trunk/; revision=32362

14 years agoStop lying that the PCR, KUSER_SHARED_DATA, and PDEs are "BIOS" pages, they're USED...
ReactOS Portable Systems Group [Thu, 14 Feb 2008 20:03:33 +0000 (20:03 +0000)]
Stop lying that the PCR, KUSER_SHARED_DATA, and PDEs are "BIOS" pages, they're USED pages.
Stop initializing fields to 0 if we've already cleared the entire array!
Stop setting arbitrary values for MapCount and ReferenceCount -- both the KPCR, KUSER_SHARED_DATA and PDE are mapped!
Stop saying Video ROM has a reference count, it's the same as BIOS memory, except the MiIsPfnRam function doesn't detect it and we have a hack for it.

svn path=/trunk/; revision=32361

14 years agoPrepare for getting rid of the Freelist hacks and use memory descriptors instead...
ReactOS Portable Systems Group [Thu, 14 Feb 2008 19:24:02 +0000 (19:24 +0000)]
Prepare for getting rid of the Freelist hacks and use memory descriptors instead, by detecting the highest free memory descriptor, and allocating the page array PTEs from there (gets rid of the "LastPage" variable).

svn path=/trunk/; revision=32360

14 years agoWe were looping the memory descriptors in order to find the number of pages that...
ReactOS Portable Systems Group [Thu, 14 Feb 2008 18:33:38 +0000 (18:33 +0000)]
We were looping the memory descriptors in order to find the number of pages that are available to the system, that is to say, your RAM, minus pages that the BIOS said belong to it. This part is good. Next up, we were creating the page array for these pages, up to the highest entry, which we called, the number of pages on the system. This is the problem. Suppose we had 1000 pages somewhere in low memory that were used by the BIOS, we'd now call the total pages RAM - 1000 (correct). However, we'd also set the highest page array entry to RAM - 1000, which is wrong, because esssentially this eats up 10MB of memory, since the top 10MB (which are FREE, usable memory) are never entered into the database. So really, what we want to do is differentiate the TOTAL amount of usable RAM, versus the HIGHEST page that is usable (which is actually what should be the highest entry in the page array). This will reclaim the lost RAM ReactOS has been eating up all these days. But it gets better: eventually, someone noticed ReactOS was eating memory, and added 1MB more to the "total", making the highest entry "1mb higher". This ...kind of... fixes the problem above by giving you one more MB, but what if ReactOS was only eating up 150KB, as was more the case? Then ReactOS would believe that the other 850KB of memory are "Free physical memory", when actually, they're pages that don't even exist. Wow!
Fixed these bugs.

svn path=/trunk/; revision=32359

14 years agoWhy divide up the page array into chunks of 128 pages? Why have a nested loop to...
ReactOS Portable Systems Group [Thu, 14 Feb 2008 16:59:14 +0000 (16:59 +0000)]
Why divide up the page array into chunks of 128 pages? Why have a nested loop to initialize system memory in chunks of 128 pages? Why zero the array entries in chunks of 128? The page array is now initialized by simply iterating every page on the system, and filling out its entry in the array.
Moved out the division calculations even one more step out of the loop -- now they're really calculated once, instead of 1000 times (an improvement over the 400000 times they were calculated previously).

svn path=/trunk/; revision=32358

14 years agoDon't loop the page array list THREE times to set it up, ONCE is plenty enough!
ReactOS Portable Systems Group [Thu, 14 Feb 2008 16:40:32 +0000 (16:40 +0000)]
Don't loop the page array list THREE times to set it up, ONCE is plenty enough!
Remove the incomprehensible PFN allocation being done for the pages holding the page list array. We now: 1) Find the highest usable RAM page 2) Allocate the PTEs to hold the array from that point on and lower.
Don't do expensive divisions for every single page on the system being looped! Precompute the values ONCE.
Don't set the reference count for the KPCR and KUSER_SHARED_DATA to 0, these are LIVE pages!
Removed the hack which pre-initializes the balancer -- this isn't needed anymore since the initial PTEs are allocated always from RAM now.
Add some comments about the assumptions being made in this code regarding all PCs having the same kind of memory maps.

svn path=/trunk/; revision=32357

14 years agoThe Memory Manager design dictated that every page must be on a linked list, so that...
ReactOS Portable Systems Group [Thu, 14 Feb 2008 15:36:12 +0000 (15:36 +0000)]
The Memory Manager design dictated that every page must be on a linked list, so that it can be removed from that list when dereferenced, and inserted on the free list. This wasn't optimal, because the UsedPageListHead was actually not used for anything else than working set and user-page LRU. Nevertheless, every single page on the system would be on a list (such as the non-pool memory list), even if those lists were ignored. Those lists are all gone now, replaced by the UsedPageListHead. Likewise, the BIOS page list has also been removed.

svn path=/trunk/; revision=32356

14 years agoBug 3053: some slovak translations by Mario Kacmar -
Daniel Reimer [Thu, 14 Feb 2008 11:30:14 +0000 (11:30 +0000)]
Bug 3053: some slovak translations by Mario Kacmar -
Bug 3066: Recent usetup polish translation update by Olaf Siejka -

svn path=/trunk/; revision=32355

14 years agoRemove more dead code from MmInit1. This nugget was trying to free memory allocations...
ReactOS Portable Systems Group [Thu, 14 Feb 2008 04:44:51 +0000 (04:44 +0000)]
Remove more dead code from MmInit1. This nugget was trying to free memory allocations between 0x80F50000 and 0x80600000?
[FORMATTING] Make MmInitializePageList readable by human beings.
Remove code in MmInitializePageList which was just repeating what MmInit1 had already done (why?). Remove alignment code which was duplicated (why??).

svn path=/trunk/; revision=32354

14 years ago[FORMATTING] Reformat MmInit1.
ReactOS Portable Systems Group [Thu, 14 Feb 2008 04:28:41 +0000 (04:28 +0000)]
[FORMATTING] Reformat MmInit1.
Also, it seems someone added code to get the First/LastKernPhysAddrs without having them setup (they are setup by the FreeLDR hack-code in freeldr.c, not by "real" bootloaders)... so why set them up in the first place? The code now uses the nice memory-list based routines to get this information instead.
Re-factored some detection and debugging code, cleaned up comments.

svn path=/trunk/; revision=32353

14 years ago[FORMATTING] Remove dead code (#if 0) and re-organize the file to match kernel standa...
ReactOS Portable Systems Group [Thu, 14 Feb 2008 03:08:20 +0000 (03:08 +0000)]
[FORMATTING] Remove dead code (#if 0) and re-organize the file to match kernel standard layout/style.
Get rid of old debugging hacks introduced by ion (rmapready, pageopready, pagingready).

svn path=/trunk/; revision=32352

14 years agoDon't overwrite the stacks anymore -- set the right pointer in the ARM loader block...
ReactOS Portable Systems Group [Thu, 14 Feb 2008 02:33:42 +0000 (02:33 +0000)]
Don't overwrite the stacks anymore -- set the right pointer in the ARM loader block (remember that stacks are top-down!).
Make a specialized UNIMPLEMENTED for Mm code so we don't go too far into the boot with 100 failures hanging behind our backs, which makes it hard to debug progress.

svn path=/trunk/; revision=32351

14 years agoSay hello to 4KB pages! Removed bring-up 1MB page hacks all over FreeLDR, and setup...
ReactOS Portable Systems Group [Thu, 14 Feb 2008 02:25:25 +0000 (02:25 +0000)]
Say hello to 4KB pages! Removed bring-up 1MB page hacks all over FreeLDR, and setup the kernel pages the same way the x86 build does it -- 6MB from 0x80800000 to 0x80DFFFFF for kernel and drivers.
We still identity map the bottom 0MB of memory with a 1MB page, since this makes the most sense.
We now map the low 8MB of memory to 0x80000000-0x807FFFFF, also with 4KB pages. This area will be discardable after early-init, and contains the early boot structures allocated by FreeLDR.
The Loader Parameter Block and its Extension are now dynamically allocated, instead of being static inside FreeLDR.
Fixed some bugs in the ARM_PTE structure.

svn path=/trunk/; revision=32350

14 years ago-'win32csr' and 'access' localizations by Javier Ramacha
Marc Piulachs [Wed, 13 Feb 2008 21:00:33 +0000 (21:00 +0000)]
-'win32csr' and 'access' localizations by Javier Ramacha

See issue #3028 for more details.

svn path=/trunk/; revision=32349

14 years ago- use tchar
Johannes Anderwald [Wed, 13 Feb 2008 17:51:41 +0000 (17:51 +0000)]
- use tchar
- rename dialog to win xp sp2+ name

svn path=/trunk/; revision=32348

14 years ago- Fix build
Dmitry Chapyshev [Wed, 13 Feb 2008 17:09:51 +0000 (17:09 +0000)]
- Fix build

svn path=/trunk/; revision=32347

14 years ago- Add winhttp.dll from Wine
Dmitry Chapyshev [Wed, 13 Feb 2008 16:46:28 +0000 (16:46 +0000)]
- Add winhttp.dll from Wine
- Add winhttp.h from Wine
- Add rbuild file for winfax.dll
- Add winhttp and winfax to bootcd

svn path=/trunk/; revision=32346

14 years ago- Update Russian translation
Dmitry Chapyshev [Wed, 13 Feb 2008 15:38:05 +0000 (15:38 +0000)]
- Update Russian translation

svn path=/trunk/; revision=32345

14 years ago- Synced wine head
Dmitry Chapyshev [Wed, 13 Feb 2008 15:37:13 +0000 (15:37 +0000)]
- Synced wine head

svn path=/trunk/; revision=32344

14 years ago- Update Russian translation
Dmitry Chapyshev [Wed, 13 Feb 2008 15:34:50 +0000 (15:34 +0000)]
- Update Russian translation
- Fix typos

svn path=/trunk/; revision=32343

14 years agoConvert all Mm ASM stubs to C stubs in mm/arm/stubs.c. Now we can see what functions...
ReactOS Portable Systems Group [Wed, 13 Feb 2008 06:43:36 +0000 (06:43 +0000)]
Convert all Mm ASM stubs to C stubs in mm/arm/stubs.c. Now we can see what functions are called.

svn path=/trunk/; revision=32342

14 years agoAdd /arm tree for Memory Manager and stub MmUpdatePageDir in C.
ReactOS Portable Systems Group [Wed, 13 Feb 2008 05:16:14 +0000 (05:16 +0000)]
Add /arm tree for Memory Manager and stub MmUpdatePageDir in C.
Add exp.c for ARM. Stub out KeContextToTrapFrame in C.
Add thrdini.c for ARM and implement KeArmInitThreadWithContext -- may require changes if the exception frame structure isn't preserving all we need. Stub out KiThreadStartup in C.

svn path=/trunk/; revision=32341

14 years agoHalInitializeProcessor has no work to do on ARM
ReactOS Portable Systems Group [Wed, 13 Feb 2008 05:11:35 +0000 (05:11 +0000)]
HalInitializeProcessor has no work to do on ARM

svn path=/trunk/; revision=32340

14 years agoKill PSEH on ARM
ReactOS Portable Systems Group [Wed, 13 Feb 2008 05:11:12 +0000 (05:11 +0000)]
Kill PSEH on ARM

svn path=/trunk/; revision=32339

14 years agoFirst attempt at ARM Exception Frame structure definition
ReactOS Portable Systems Group [Wed, 13 Feb 2008 05:10:45 +0000 (05:10 +0000)]
First attempt at ARM Exception Frame structure definition

svn path=/trunk/; revision=32338

14 years agoJust return FALSE in KDCOM on ARM, instead of freezing.
ReactOS Portable Systems Group [Wed, 13 Feb 2008 04:58:43 +0000 (04:58 +0000)]
Just return FALSE in KDCOM on ARM, instead of freezing.

svn path=/trunk/; revision=32337

14 years agoBig ntuser fix:
Timo Kreuzer [Wed, 13 Feb 2008 00:46:23 +0000 (00:46 +0000)]
Big ntuser fix:
- rename ObmXxx functions to UserXxx functions
- remove some macros
- move prototypes to object.h
- implement UserreferenceObjectByHandle creating a reference to the object, used for cursoricon stuff so far
- rewrite object manager functions to reasonably handle references
- dereference cursoricons correctly, so they will really get deleted -> fixes a cursoricon leak
- destroy submenus in NtUserDestroyMenu -> fixes a big menu leak
- free the buffer of the menu text -> fixes a mem leak
- delete old bitmaps in NtUserSetCursorContent -> fixes a bitmap leak
- delete monitor object on failure
Now taskmgr doesn't leak memory anymore. we still leak some user handles here and there even after terminating a process, but it's much better now.

svn path=/trunk/; revision=32336

14 years agoBITMAPOBJ_CopyBitmap:
Timo Kreuzer [Tue, 12 Feb 2008 23:14:07 +0000 (23:14 +0000)]
- release lock on failure
- delete created bitmap on failure
- copy flags, fixes a memory leak

svn path=/trunk/; revision=32335

14 years agoWe now have a good initialization routine for ARM. We call HalInitializeProcessor...
ReactOS Portable Systems Group [Tue, 12 Feb 2008 22:50:54 +0000 (22:50 +0000)]
We now have a good initialization routine for ARM. We call HalInitializeProcessor (TBD) to setup the board, then we configure the PRCB and PCR. We also setup some global CPU variables and setup minimal interrupt support. The rest of the code follows the x86 design (Create initial thread/process).
There's now a cpu.c for ARM as well, and the cache routines are now there.
KDCOM APIs were marked as kernel stubs, so the kernel was never linking with kdcom. This has been fixed, and boot now stops in kdcom!KdPortInitializeEx since there's no ARM-compatible code.

svn path=/trunk/; revision=32334

14 years agoAdded cache sweeping code into the HAL, for ARM926EJ-S and ARM1026EJ-S CPUs.
ReactOS Portable Systems Group [Tue, 12 Feb 2008 20:32:23 +0000 (20:32 +0000)]
Added cache sweeping code into the HAL, for ARM926EJ-S and ARM1026EJ-S CPUs.
Finished implementation of KiSystemStartup.
Copied KiInitializeKernel from x86 to ARM, removing irrelevant parts. This is our current checkpoint.

svn path=/trunk/; revision=32333