executables. I received permission from Anthony Williams to distribute
a modified version for use in ReactOS.
Thanks to him, we're able to use better-supported elf tools for most of
the things we do.
svn path=/branches/powerpc/; revision=25300
- there are several improvements to freeldr for which ion and fireball are responsible.
- also here is filip's cmlib.
- my changes to freeldr mostly centered around managing the kernel slab and transitioning to the kernel memory
map. the new map is built in a new area and installed once we have every page set up. this is a bit safer
than the old method.
- the video planes are handed off to ntoskrnl, and some trace macros using the frame buffer are available.
- some hacks are removed.
- current status: LdrInitModuleManagement tries to get the header from hal.dll but fails for some reason. i
need to look into it.
- this is a checkpoint, since there's been some interest in seeing how things are progressing.
- you can put any pe-coff powerpc exe (based at 0x80000000) in place of ntoskrnl to test various aspects of
the boot handoff. this will be useful for testing our trap handlers and such.
- the toolchain didn't produce correct executables in all cases before, and didn't differentiate rva32 and
rel32, causing some things to be linked wrong. so far, the current toolchain (20061231) links correctly,
using R_PPC_UADDR32 as a surrogate for rva32, since it's never produced by gcc.
- some earlyboot video tracing is in ntoskrnl so i can peek around a bit.
svn path=/branches/powerpc/; revision=25259
- Query NLS file names from registry instead of hardcoding
- Move loading of NLS data to WinLdrLoadAndScanSystemHive()
svn path=/trunk/; revision=24429
- Add KdCom.dll loading along with ntoskrnl.exe and hal.dll
- Move registry-related code to a new file wlregistry.c
- WinLdrLoadAndScanSystemHive() is going to combine loading, initializing and parsing registry. NLS / OEM font data loading is marked with FIXMEs now, since it needs going into that routine (because registry tells the file names, not hardcoding them)
svn path=/trunk/; revision=24427
- Fix HvInitialize definition to match more closely NT's since I need some of the extra parameters for the cm rewrite.
- Implement ExInitializePushLock and ExConvertPushLockSharedToExclusive macros.
svn path=/trunk/; revision=24426
- Make ExpInitNls responsible for NLS initialization in Phase 0 as well, to clean up the code in ExpInitailizeExecutive a bit.
- Initialize the system time/clock in Phase 1, not in Phase 0.
- Do HAL Phase1 initialization as the first step in Phase 1 initialization, then initialize the system clock (since the HAL's RTC is now configured).
- Do Ob Phase 1 init in Phase 1 initialization, not in phase 0.
- Do Ke Phase 1 init after HAL, Ob and Ex phase 1 inits.
- Initialize NLS for Phase 1 after Ke Phase 1, instead of much later.
svn path=/trunk/; revision=24414
- Promote the Phase 1 initialization thread by jumping directly into the zero-page thread, and remove manual zero-page thread initialization code since we simply jump into its main routine.
- 100 less lines of code :)
svn path=/trunk/; revision=24413
- This optimizes booting as well as gets use the differnet SESSIONY_INITIALIZATION_FAILED, where Y is a number representing which step of the process parameter/envieonment creation failed.
svn path=/trunk/; revision=24411
- Get rid of the CACHED_MODULE array and associated structures and stop using them, get rid of ParseAndCacheLoadedModules. Stop using KeLoadedModules and KeLoadedModuleCount outside of freeldr.c.
- Except for MmInit1, the kernel should now be totally isolated from FreeLDR-specific data.
svn path=/trunk/; revision=24409
- Delete rtl/nls.c and all the associated deprecated code.
- Do MmInit1 and SharedUserData stuff *after* initializing the initial thread, to avoid an ASSERT during bootup.
svn path=/trunk/; revision=24408
- FIXME: Since FreeLdr doesn't really keep track of which memory is of which type, this code has a massive hack for guessing the memory type, which is incorrect for future usage
svn path=/trunk/; revision=24405
- Implement WinLdrAllocateDataTableEntry() used for allocating and initializing the DTE
- Implement WinLdrLoadImage(), which uses LdrRelocateImageWithBias() from RTL, calling it with loader name "FLx86" (RTL should treat it differently -- ROS/WinLdr-specific behavior)
svn path=/trunk/; revision=24402
- Change debugging checkpoint to online-asm (all this is temporary), since any code after while(1){}; seems to be just optimized away by gcc
- Uncomment NDEBUG for now
svn path=/trunk/; revision=24401
- Tag the Device ID onto the treeview items and provide functionality to tear it down
- Remove/change some code which wasn't needed to speed up opening time3
- We now have a pretty functional device manager. However it's heavily reliant on devmgr.dll, therefore functionality per device will rely on how complete this lib is.
svn path=/trunk/; revision=24396
- Someone (FILIP!) please fix LdrGetProcedureAddress. It's broken and I had to rename an ntdll export to make it work (see comments).
- Make sure you REBUILD CLEAN. This commit changes NCITool!!!
- Setup some NPX-related CPU features in SharedUserData during KiInitializeKernel.
- Remove some now-deprecated initialization functions.
svn path=/trunk/; revision=24395
- Change installation logic when installing to a NTLDR's boot.ini: Firstly freeldr.ini is checked for existence, and either created or updated, then boot.ini is checked for having a proper entry, and if needed - entry is added. Fixes related bugs (having more and more ReactOS entries, no entry added if freeldr.ini already exists in the root folder)
svn path=/trunk/; revision=24392
- Include a font containing some characters we can use with boot video.
- Copy in a description of the boot framebuffer.
- Add a small ad-hoc number writing function.
- Display our progress building the initial page table.
- We don't necessarily have space in the boot-time page table so just kill
off boot-time paging.
- Pass ntoskrnl the address of the boot slab. It contains the boot font, a
description of the boot video device and all active page table entries.
- Next, well be able to use this in early ntoskrnl space to display our
progress etc. Since we're using phyiscal addresses to write to the boot
framebuffer, the page table needn't include it. This simplifies things
compared to linux, but it's expensive.
svn path=/branches/powerpc/; revision=24390
2. fixed sub languages on allot languages rc files
3. add LMH1 Norwegian translations.
See issue #1698 for more details.
svn path=/trunk/; revision=24389