reactos.git
16 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

16 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

16 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

16 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

16 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

16 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

16 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

16 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

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

svn path=/trunk/; revision=32366

16 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

16 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

16 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

16 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

16 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

16 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

16 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

16 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

16 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

16 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

16 years agoBug 3053: some slovak translations by Mario Kacmar - kario@szm.sk
Daniel Reimer [Thu, 14 Feb 2008 11:30:14 +0000 (11:30 +0000)]
Bug 3053: some slovak translations by Mario Kacmar - kario@szm.sk
Bug 3066: Recent usetup polish translation update by Olaf Siejka - olaf_siejka@o2.pl

svn path=/trunk/; revision=32355

16 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

16 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

16 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

16 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

16 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

16 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

16 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

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

svn path=/trunk/; revision=32347

16 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

16 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

16 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

16 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

16 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

16 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

16 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

16 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

16 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

16 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

16 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

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

svn path=/trunk/; revision=32335

16 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

16 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

16 years agoQEMU doesn't support TLB Lockdown, so we now use a hack for QEMU and broken CPUs...
ReactOS Portable Systems Group [Tue, 12 Feb 2008 19:01:48 +0000 (19:01 +0000)]
QEMU doesn't support TLB Lockdown, so we now use a hack for QEMU and broken CPUs [albeit a portable one ;-)]. PCR access in usermode/kernelmode works.
We now have HalSweepI/Dcache APIs exported and stubbed in the ARM HAL (great, since UNIMPLEMENTED macro now works).
We now setup more of the PCR, including all the cache values required, then we call the HAL sweep functions (TBD).

svn path=/trunk/; revision=32330

16 years agofix some memory and resource leaks
Christoph von Wittich [Tue, 12 Feb 2008 18:49:20 +0000 (18:49 +0000)]
fix some memory and resource leaks
fixes by janderwald and myself

svn path=/trunk/; revision=32329

16 years agoFixed some bugs in KeFillFixedEntryTb -- we actually needed to map the PTE into memor...
ReactOS Portable Systems Group [Tue, 12 Feb 2008 18:34:33 +0000 (18:34 +0000)]
Fixed some bugs in KeFillFixedEntryTb -- we actually needed to map the PTE into memory (then we can umap it).
We were doing the initial PCR/PDR page allocation completely wrong since we're using 1MB section pages, not 4KB pages (this needs to be fixed later).
Piggyhack arm_kprintf on top of DebugService which we now define. DPRINT1 and ASSERT now work!
Send ARC paths and normalized command-line in the loader parameter block.
Current state:
FreeLoader v3.0 for ARM
Bootargs: rdbase=0x2000000 rdsize=0x1400000
Detecting Hardware...
Loading...
Reading NTOSKRNL.EXE
Reading BOOTVID.DLL
Reading HAL.DLL
Reading HAL.DLL
Reading c_1252.nls
Reading c_437.nls
Reading l_intl.nls
Reading scsiport.sys
Reading atapi.sys
Reading buslogic.sys
Reading pci.sys
Reading class2.sys
Reading disk.sys
Reading vfatfs.sys
Reading ndis.sys
Mapped serial port to 0xc00f1000
(ntoskrnl/ke/arm/kiinit.c:135) -----------------------------------------------------
(ntoskrnl/ke/arm/kiinit.c:136) ReactOS 0.4-SVN (Build 20080207-r32151)
(ntoskrnl/ke/arm/kiinit.c:137) Command Line: DEBUG  DEBUGPORT=COM1  BAUDRATE=115200  SOS
(ntoskrnl/ke/arm/kiinit.c:138) ARC Paths: ramdisk(0) \ ramdisk(0) \ReactOS\

svn path=/trunk/; revision=32328

16 years agoAdded arm_kprintf() for early kernel debugging (ARM bringup).
ReactOS Portable Systems Group [Tue, 12 Feb 2008 17:45:58 +0000 (17:45 +0000)]
Added arm_kprintf() for early kernel debugging (ARM bringup).
Freeldr maps the "Versatile"'s serial port into virtual
memory now, and C code can just use arm_kprintf().
This is not code that is supposed to remain in the kernel,
it's only needed for bringup, until enough is working so
that standard serial DbgPrint() works through the original
code path.

svn path=/trunk/; revision=32327

16 years agoImplemented IDirect3D9::GetAdapterDisplayMode()
Gregor Brunmar [Tue, 12 Feb 2008 17:30:32 +0000 (17:30 +0000)]
Implemented IDirect3D9::GetAdapterDisplayMode()

svn path=/trunk/; revision=32326

16 years agoHopefully the last String. Translators. Your turn.
Daniel Reimer [Tue, 12 Feb 2008 17:00:09 +0000 (17:00 +0000)]
Hopefully the last String. Translators. Your turn.

svn path=/trunk/; revision=32325

16 years agoFix comments in ksarm.h -- they must be C89.
ReactOS Portable Systems Group [Tue, 12 Feb 2008 16:32:13 +0000 (16:32 +0000)]
Fix comments in ksarm.h -- they must be C89.

svn path=/trunk/; revision=32324

16 years agoWrite initialization code in assembly -- we load the kernel stack from FreeLDR and...
ReactOS Portable Systems Group [Tue, 12 Feb 2008 16:22:01 +0000 (16:22 +0000)]
Write initialization code in assembly -- we load the kernel stack from FreeLDR and jump to C code.
We now have a file for C-code initialization (no reason to use assembly).
We now have some basic TLB routines and intrinsics (not tested).
We also detect if we are running on V4 or V6, and set the TLB and ASID counts respectively.

svn path=/trunk/; revision=32323

16 years agoBeginnings to allow to translate all other Strings. Translators, PLEEASE wait until...
Daniel Reimer [Tue, 12 Feb 2008 14:52:36 +0000 (14:52 +0000)]
Beginnings to allow to translate all other Strings. Translators, PLEEASE wait until I am ready before you file Bugs, you can already start to translate, but do not post Bugreports until I am ready adding the last hidden ones.
Thanks to Johannes Anderwald for explaining me why it made more Problems than fix stuff to translate some strings and how to fix it.

svn path=/trunk/; revision=32322

16 years ago- Kernel's entrypoint is called NtProcessStartup right now, for ReactOS. If this...
Aleksey Bragin [Tue, 12 Feb 2008 13:34:33 +0000 (13:34 +0000)]
- Kernel's entrypoint is called NtProcessStartup right now, for ReactOS. If this is to be changed, it should be changed for all archs, not only for ARM.

svn path=/trunk/; revision=32321

16 years ago- pass the correct path to _strip_gcc_deffile
Johannes Anderwald [Tue, 12 Feb 2008 12:18:23 +0000 (12:18 +0000)]
- pass the correct path to _strip_gcc_deffile
- automatically create directories for converted def files
- fixes auto-def file generation

svn path=/trunk/; revision=32320

16 years agoFix assertion is pci/fdo.c
Hervé Poussineau [Tue, 12 Feb 2008 11:16:05 +0000 (11:16 +0000)]
Fix assertion is pci/fdo.c

svn path=/trunk/; revision=32319

16 years agoWe now define the cache and id registers in CP15 (C0 Opcode 0 and 1).
ReactOS Portable Systems Group [Tue, 12 Feb 2008 09:41:21 +0000 (09:41 +0000)]
We now define the cache and id registers in CP15 (C0 Opcode 0 and 1).
We now setup ARM cache information in the loader block.
We now allocate the kernel, interrupt and abort stacks, as well as the idle thread and process, and boot PRCB.
We now allocate the PCR and PDR pages.
We now send the command line to the kernel in the LoaderBlock's load options.

svn path=/trunk/; revision=32318

16 years agoBug 3053: some slovak translations by Mario Kacmar, kario@szm.sk
Daniel Reimer [Tue, 12 Feb 2008 08:44:41 +0000 (08:44 +0000)]
Bug 3053: some slovak translations by Mario Kacmar, kario@szm.sk
Bug 3051: Italian resources update by Paolo Devoti, devotip@tiscali.it

svn path=/trunk/; revision=32317

16 years agoReal fix, this time, hopefully.
ReactOS Portable Systems Group [Tue, 12 Feb 2008 06:51:39 +0000 (06:51 +0000)]
Real fix, this time, hopefully.

svn path=/trunk/; revision=32316

16 years agoFix for x86 build.
ReactOS Portable Systems Group [Tue, 12 Feb 2008 06:38:41 +0000 (06:38 +0000)]
Fix for x86 build.

svn path=/trunk/; revision=32315

16 years agoThe kernel entrypoint is called KiSystemStartup, not NtProcessStartup.
ReactOS Portable Systems Group [Tue, 12 Feb 2008 06:15:35 +0000 (06:15 +0000)]
The kernel entrypoint is called KiSystemStartup, not NtProcessStartup.
On ARM, don't prepend underscore to the kernel entrypoint.
We now correctly jump into the kernel entrypoint, instead of random code!

svn path=/trunk/; revision=32314

16 years agoMove the entrypoint and startup code in boot.s.
ReactOS Portable Systems Group [Tue, 12 Feb 2008 05:55:12 +0000 (05:55 +0000)]
Move the entrypoint and startup code in boot.s.
Write ksarm.h and kxarm.h headers, defining the ARM Assembly ABI.
Rewrite the ARM assembler files we currently have to match the ABI.

svn path=/trunk/; revision=32313

16 years agofixed math
ReactOS Portable Systems Group [Tue, 12 Feb 2008 05:07:08 +0000 (05:07 +0000)]
fixed math

svn path=/trunk/; revision=32312

16 years agoBetter organize FreeLDR ARM files -- there are no more stubs now. We have the ReactOS...
ReactOS Portable Systems Group [Tue, 12 Feb 2008 04:22:39 +0000 (04:22 +0000)]
Better organize FreeLDR ARM files -- there are no more stubs now. We have the ReactOS kernel loader in loader.c, just like on x86, and the ARM FreeLDR HAL/Mach routines in macharm.c

svn path=/trunk/; revision=32311

16 years agoWe now have the ARM defines/structures in stubs.c in FreeLDR in more appropriate...
ReactOS Portable Systems Group [Tue, 12 Feb 2008 04:15:53 +0000 (04:15 +0000)]
We now have the ARM defines/structures in stubs.c in FreeLDR in more appropriate kernel headers. This is just cleanup work.

svn path=/trunk/; revision=32310

16 years agoFix the build.
ReactOS Portable Systems Group [Tue, 12 Feb 2008 03:06:06 +0000 (03:06 +0000)]
Fix the build.
Your friendly ARM ninjas apologize.

svn path=/trunk/; revision=32309

16 years agoFix a couple of MMU bugs (incrementing the base address before writing the PTE and...
ReactOS Portable Systems Group [Mon, 11 Feb 2008 23:47:43 +0000 (23:47 +0000)]
Fix a couple of MMU bugs (incrementing the base address before writing the PTE and using the wrong start base address).
Virtual memory now works!
FreeLDR now boots into the kernel, at 0x80801000, in KiSystemStartup!

svn path=/trunk/; revision=32308

16 years agoWe define a region in FreeLDR where we store the initial TTB. We have to align it...
ReactOS Portable Systems Group [Mon, 11 Feb 2008 22:17:15 +0000 (22:17 +0000)]
We define a region in FreeLDR where we store the initial TTB. We have to align it at a 16KB boundary, and ld loves to crash with such big alignment, so wee manually define it to load at 0x50000. Pray FreeLDR never gets that big (you'd think LD would warn if that section is overwriting others).
Wrote a guideline for what ArmPrepareForReactOS should do and defined the initial ARM loader block and extension.
Wrote the initial MMU code. It's totally busted but after 3 hours of debugging, it doesn't abort anymore!
Cleanups TBD.

svn path=/trunk/; revision=32307

16 years agoFORCEINLINE is a lot more...forcefull... now ;-). Previous version didn't always...
ReactOS Portable Systems Group [Mon, 11 Feb 2008 22:13:35 +0000 (22:13 +0000)]
FORCEINLINE is a lot more...forcefull... now ;-). Previous version didn't always inline as requested.

svn path=/trunk/; revision=32306

16 years agoWe now support the ARM Versatile/PB platform, which means qemu-system-arm -M versatil...
ReactOS Portable Systems Group [Mon, 11 Feb 2008 20:15:16 +0000 (20:15 +0000)]
We now support the ARM Versatile/PB platform, which means qemu-system-arm -M versatilepb is now able to emulate the ARM build of ReactOS.
We now support the PL011 UART, required for console output on the Versatile.
We now define the ARM_LOADER_BLOCK structure, to be used later when FreeLDR passes control to the kernel.

svn path=/trunk/; revision=32305

16 years agofix some warnings in msvc build
Christoph von Wittich [Mon, 11 Feb 2008 19:16:02 +0000 (19:16 +0000)]
fix some warnings in msvc build

svn path=/trunk/; revision=32304

16 years ago- Minor cleanup.
Aleksey Bragin [Mon, 11 Feb 2008 17:45:56 +0000 (17:45 +0000)]
- Minor cleanup.
See issue #3054 for more details.

svn path=/trunk/; revision=32302

16 years agoUse dynamic traces
Hervé Poussineau [Mon, 11 Feb 2008 16:54:05 +0000 (16:54 +0000)]
Use dynamic traces
Some cleanup

svn path=/trunk/; revision=32301

16 years agoAdd support for EXT2 partitions (STILL DISABLED ATM!)
Hervé Poussineau [Mon, 11 Feb 2008 16:52:49 +0000 (16:52 +0000)]
Add support for EXT2 partitions (STILL DISABLED ATM!)

svn path=/trunk/; revision=32300

16 years agoDisplay message only if dmDriverExtra != 0
Hervé Poussineau [Mon, 11 Feb 2008 16:51:26 +0000 (16:51 +0000)]
Display message only if dmDriverExtra != 0

svn path=/trunk/; revision=32299

16 years agoAdd Ext2Chkdsk() method (unimplemented at the moment)
Hervé Poussineau [Mon, 11 Feb 2008 16:50:10 +0000 (16:50 +0000)]
Add Ext2Chkdsk() method (unimplemented at the moment)

svn path=/trunk/; revision=32298

16 years agoBus number can also be stored in resource list header
Hervé Poussineau [Mon, 11 Feb 2008 16:49:05 +0000 (16:49 +0000)]
Bus number can also be stored in resource list header

svn path=/trunk/; revision=32297

16 years agoFix warnings
Hervé Poussineau [Mon, 11 Feb 2008 16:48:21 +0000 (16:48 +0000)]
Fix warnings

svn path=/trunk/; revision=32296

16 years agoAdd support for ext2.sys driver
Hervé Poussineau [Mon, 11 Feb 2008 16:47:21 +0000 (16:47 +0000)]
Add support for ext2.sys driver

svn path=/trunk/; revision=32295

16 years agoLoad ext2.sys driver too
Hervé Poussineau [Mon, 11 Feb 2008 16:46:24 +0000 (16:46 +0000)]
Load ext2.sys driver too

svn path=/trunk/; revision=32294

16 years agoFix ext2 driver compilation. NOT TESTED YET!
Hervé Poussineau [Mon, 11 Feb 2008 16:42:10 +0000 (16:42 +0000)]
Fix ext2 driver compilation. NOT TESTED YET!

svn path=/trunk/; revision=32293

16 years agoFix ext2 recognizer compilation, but let it disabled atm
Hervé Poussineau [Mon, 11 Feb 2008 16:41:25 +0000 (16:41 +0000)]
Fix ext2 recognizer compilation, but let it disabled atm

svn path=/trunk/; revision=32292

16 years agoThose a __stdcall functions
Hervé Poussineau [Mon, 11 Feb 2008 16:27:30 +0000 (16:27 +0000)]
Those a __stdcall functions

svn path=/trunk/; revision=32291

16 years agoDisplay a message when directories are created
Hervé Poussineau [Mon, 11 Feb 2008 14:06:37 +0000 (14:06 +0000)]
Display a message when directories are created

svn path=/trunk/; revision=32290

16 years agoFix case when $(TEMPORARY) is not the current directory. Fixed with the help of nanot...
Hervé Poussineau [Mon, 11 Feb 2008 13:43:27 +0000 (13:43 +0000)]
Fix case when $(TEMPORARY) is not the current directory. Fixed with the help of nanotonne (nanotonne at free.fr) on IRC

svn path=/trunk/; revision=32289

16 years agoFix return type
Hervé Poussineau [Mon, 11 Feb 2008 13:19:06 +0000 (13:19 +0000)]
Fix return type

svn path=/trunk/; revision=32288

16 years agoFix build
Hervé Poussineau [Mon, 11 Feb 2008 13:00:06 +0000 (13:00 +0000)]
Fix build

svn path=/trunk/; revision=32287

16 years agoForgot to add this file...
Hervé Poussineau [Mon, 11 Feb 2008 12:54:30 +0000 (12:54 +0000)]
Forgot to add this file...

svn path=/trunk/; revision=32286

16 years agoFix ext2lib compilation
Hervé Poussineau [Mon, 11 Feb 2008 12:49:51 +0000 (12:49 +0000)]
Fix ext2lib compilation

svn path=/trunk/; revision=32285

16 years agoAdd RtlTimeToSecondsSince1970() prototype
Hervé Poussineau [Mon, 11 Feb 2008 12:49:21 +0000 (12:49 +0000)]
Add RtlTimeToSecondsSince1970() prototype

svn path=/trunk/; revision=32284

16 years agoBring back ext2 code from branch
Hervé Poussineau [Mon, 11 Feb 2008 12:10:35 +0000 (12:10 +0000)]
Bring back ext2 code from branch
It does not compile yet

svn path=/trunk/; revision=32283

16 years agoDeleted ext2 driver
Pierre Schweitzer [Mon, 11 Feb 2008 11:29:54 +0000 (11:29 +0000)]
Deleted ext2 driver
Another one will be merged

svn path=/trunk/; revision=32282

16 years agoUse Rule class to generate instructions for .idl files
Hervé Poussineau [Mon, 11 Feb 2008 10:55:33 +0000 (10:55 +0000)]
Use Rule class to generate instructions for .idl files

svn path=/trunk/; revision=32281

16 years agotranslate some GreatLordish comments into something more similar to English
Christoph von Wittich [Sun, 10 Feb 2008 20:45:56 +0000 (20:45 +0000)]
translate some GreatLordish comments into something more similar to English

svn path=/trunk/; revision=32279

16 years ago- Revert 32276, since the include guard convention has been changed by 32274.
Aleksey Bragin [Sun, 10 Feb 2008 20:09:06 +0000 (20:09 +0000)]
- Revert 32276, since the include guard convention has been changed by 32274.

svn path=/trunk/; revision=32277

16 years agofix unknown.h back as it was
Magnus Olsen [Sun, 10 Feb 2008 20:02:26 +0000 (20:02 +0000)]
fix unknown.h back as it was
correct fix is to fix ksfilter

svn path=/trunk/; revision=32276

16 years agoTry to fix build
Hervé Poussineau [Sun, 10 Feb 2008 20:00:45 +0000 (20:00 +0000)]
Try to fix build

svn path=/trunk/; revision=32275

16 years agoUse the same include guard in WIDL generated files and MIDL generated files
Hervé Poussineau [Sun, 10 Feb 2008 19:47:42 +0000 (19:47 +0000)]
Use the same include guard in WIDL generated files and MIDL generated files

svn path=/trunk/; revision=32274

16 years agoRevert r32271 ; I thought we decided to remove hacks instead of adding new ones!
Hervé Poussineau [Sun, 10 Feb 2008 19:43:05 +0000 (19:43 +0000)]
Revert r32271 ; I thought we decided to remove hacks instead of adding new ones!
Correct fix will follow.

svn path=/trunk/; revision=32273

16 years agoremove my hack in wtype.ldl I should not coding when i start fall into sleep
Magnus Olsen [Sun, 10 Feb 2008 19:40:36 +0000 (19:40 +0000)]
remove my hack in wtype.ldl I should not coding when i start fall into sleep
sorry and thx fireball

svn path=/trunk/; revision=32272

16 years agosome case psdk unknown.h being include when it should be ddk version
Magnus Olsen [Sun, 10 Feb 2008 19:25:42 +0000 (19:25 +0000)]
some case psdk unknown.h being include when it should be ddk version
for now we do not double inlcude the ddk version for ksfilter.

svn path=/trunk/; revision=32271

16 years agoFix a comptaible issue with dxsdk and vc, our dxsdk want the name #define __wtypes_h...
Magnus Olsen [Sun, 10 Feb 2008 18:35:20 +0000 (18:35 +0000)]
Fix a comptaible issue with dxsdk and vc, our dxsdk want the name  #define __wtypes_h__  (same as windows psdk)
this fix a comptiable issue with vc as well, wine ldl can not name a idl correct so I hardcode in this name

svn path=/trunk/; revision=32269