We've now got reciprocal imports from hal working.
I've added a small hack, that being to relocate modules to 64k boundaries. This works around ABI issues for
now.
Some warning suppression re: uninitialized values.
KdInit: make it possible to use a subset of the x86 debug targets.
svn path=/branches/powerpc/; revision=25463
to a powerpc gcc and ld, as well as alink. The scripts in here are transformed
by sed ala GNU configure.
fork_win32 and fork_unix provide a uniform way of calling an external program
and reading stderr.
dlltool.cpp is a minimalist what-if about replacing binutils' dlltool. It's
not used by might be instructive.
svn path=/branches/powerpc/; revision=25303
them on a prep box. You'll see output on the serial port if they linked
and bound properly. I have a patch for gxemul that can load pecoff and bind
imports, that can be used for this purpose.
svn path=/branches/powerpc/; revision=25302
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