Commit Graph
22704 Commits
Author SHA1 Message Date
Art Yerkes 674fbb117a Checkpoint. HalDisplayString is working and hooked up to DbgPrint.
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
2007-01-15 09:54:16 +00:00
Art Yerkes e4aa183ac9 Remove some spam and add options to make ntoskrnl a bit smaller and easier to process.
svn path=/branches/powerpc/; revision=25462
2007-01-15 09:43:12 +00:00
Art Yerkes ea981c38bb Some additions for relocatable ppc dlls.
svn path=/branches/powerpc/; revision=25446
2007-01-14 03:02:43 +00:00
Art Yerkes 58bde26065 Zero other BSS type sections where applicable.
svn path=/branches/powerpc/; revision=25424
2007-01-11 09:00:30 +00:00
Art Yerkes 483d900bfb Update address of hal before performing imports, add page.c
svn path=/branches/powerpc/; revision=25377
2007-01-08 10:12:22 +00:00
Art Yerkes e9873af4fc HAL display implementation based on openfirmware framebuffer.
svn path=/branches/powerpc/; revision=25376
2007-01-08 09:30:17 +00:00
Art Yerkes fbaf823a61 Start of an implementation of page.c
svn path=/branches/powerpc/; revision=25375
2007-01-08 09:28:39 +00:00
Art Yerkes c6f96d6493 Add needed reloc types.
svn path=/branches/powerpc/; revision=25374
2007-01-08 09:27:30 +00:00
Art Yerkes 9e8cec3b58 Hal stubs. Build halppc.
svn path=/branches/powerpc/; revision=25335
2007-01-06 22:31:50 +00:00
Art Yerkes 40d233d877 Make this allow POWERPC as well.
svn path=/branches/powerpc/; revision=25333
2007-01-06 20:01:20 +00:00
Art Yerkes 0c8a94de76 Allow PowerPC too.
svn path=/branches/powerpc/; revision=25325
2007-01-06 02:44:40 +00:00
Art Yerkes 49cba5d4e3 Pre-transformed, modified headers suitable for use with -isystem when building
reactos-ppc code.

svn path=/branches/powerpc/; revision=25304
2007-01-05 06:02:56 +00:00
Art Yerkes 81a8d71a9d Compiler driver wrapper for building pe-powerpcle executables. Expects access
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
2007-01-05 05:56:26 +00:00
Art Yerkes fb9f4b89c9 A test to see if things are mostly working. You can build it and then load
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
2007-01-05 05:50:55 +00:00
Art Yerkes 036f2c1f6c ldscript used to link reactos ppc executables.
svn path=/branches/powerpc/; revision=25301
2007-01-05 05:45:52 +00:00
Art Yerkes 3bae2c0ecd This is the modified version of alink used to produce pe-coff powerpc
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
2007-01-05 05:42:00 +00:00
Art Yerkes 9c3817045b - Reserve and map a page for Pcr
- Some stubs (KeInitExceptions, KeInitInterrupts, ...)
- Normalize segments and bats

svn path=/branches/powerpc/; revision=25280
2007-01-03 09:31:26 +00:00
Art Yerkes 87541c1edb Removed tracking.
svn path=/branches/powerpc/; revision=25274
2007-01-02 08:32:52 +00:00
Art Yerkes 2d0a9e6ffa Removed now unneeded-tracing, added hal address. We can see hal from here.
svn path=/branches/powerpc/; revision=25273
2007-01-02 08:31:10 +00:00
Art Yerkes aeea011c59 - most of the churn here is from code and headers imported from trunk.
- 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
2007-01-01 11:32:44 +00:00
Art Yerkes 8268d67594 Build an entirely new page table.
svn path=/branches/powerpc/; revision=24597
2006-10-22 07:24:21 +00:00
Art Yerkes 6dae10c682 Simplify this since we now have intrin.h
svn path=/branches/powerpc/; revision=24450
2006-10-08 10:50:50 +00:00
Art Yerkes 884712c2ba Also added for merge.
svn path=/branches/powerpc/; revision=24449
2006-10-08 10:31:52 +00:00
Art Yerkes d56f62106c Move mmu.h to make it more generally accessible since we need translation
functions in windows subdir.

svn path=/branches/powerpc/; revision=24448
2006-10-08 10:27:42 +00:00
Art Yerkes d908957c65 Really fix font.h
svn path=/branches/powerpc/; revision=24447
2006-10-08 10:18:28 +00:00
Art Yerkes 9c051d65f9 Fix silly error: missing digit.
svn path=/branches/powerpc/; revision=24446
2006-10-08 10:14:01 +00:00
Art Yerkes 4b55d29dd3 Straggler. Early boot video font.
svn path=/branches/powerpc/; revision=24445
2006-10-08 10:11:51 +00:00
Art Yerkes 6cbdc0d820 Partially fixed up tree after merge from HEAD. More to do.
Fixing ICE in gcc is no fun.

svn path=/branches/powerpc/; revision=24443
2006-10-08 10:01:27 +00:00
Aleksey Bragin a40bc5ff5f - Add structure for describing boot-loaded drivers
svn path=/trunk/; revision=24432
2006-10-07 13:07:25 +00:00
Alex Ionescu b53f179583 - Fix calls to HvInitializeHive
svn path=/trunk/; revision=24431
2006-10-06 23:11:49 +00:00
Magnus Olsen 2db2156bb3 Fixed control apps windows, Let me known if it create any regress.
svn path=/trunk/; revision=24430
2006-10-06 21:59:42 +00:00
Aleksey Bragin 41c8741041 - Load and initialize in-memory registry
- Query NLS file names from registry instead of hardcoding
- Move loading of NLS data to WinLdrLoadAndScanSystemHive()

svn path=/trunk/; revision=24429
2006-10-06 21:20:36 +00:00
Alex Ionescu e2295b6e85 - Fix calls to HvInitializeHive due to my last patch. Proof that Fireball doesn't properly test his commits... I broke Freeldr building before his commit, yet he commited it anyway even though freeldr couldn't build ;). Just kidding.
svn path=/trunk/; revision=24428
2006-10-06 20:52:50 +00:00
Aleksey Bragin 0b9fa0e21a - Make arc-path passed to the kernel look a bit more correct (still a hack of course)
- 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
2006-10-06 20:28:55 +00:00
Alex Ionescu 9bfa61479f - Add PROFILE_ACPI_DOCKING_STATE.
- 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
2006-10-06 19:29:25 +00:00
Ged Murphy 6318f42ad0 fix a TCHAR brain lapse...
svn path=/trunk/; revision=24425
2006-10-06 17:10:57 +00:00
Ged Murphy 2380e7bb33 implemented DeviceProperties_RunDLLW and DeviceProperties_RunDLLA
svn path=/trunk/; revision=24424
2006-10-06 16:08:54 +00:00
Alex Ionescu a4c366b659 - Add internal EX_CALLBACK Object to NDK. (Callback blocks are a new NT 5.2 kernel mechanism much like RunOncs blocks in Vista user-mode). They're managed by rundown protection and fast-referencing through interlocked calls to push/pop/sychrnonize system callbacks.
- Add ObOpenObjectByName to NDK, since this API is not documented in official headers.

svn path=/trunk/; revision=24422
2006-10-06 06:36:35 +00:00
Alex Ionescu 45d84c9668 - Guard some current cmlib includes against new cm branch
- Remove NTSYSAPI from NtBuildNumber definition in NDK.

svn path=/trunk/; revision=24416
2006-10-05 23:01:38 +00:00
Alex Ionescu 8859463623 - Remove SMSS's code for signaling the "init" event.
- 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
2006-10-05 16:38:58 +00:00
Alex Ionescu 093d1a3aba - Get rid of the completely convoluted way that Phase 1 initialization was being ended, with umpteen events and waits and timeouts all synchronized from user-mode and do a simple 5-second wait to determine if smss started OK or not.
- 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
2006-10-05 16:14:28 +00:00
Alex Ionescu eb8c705ce9 - Put all Phase 1 Ex* Initialization in ExpInitSystemPhase1 and clean up associated deprecated calls.
- Call ExpInitializePushLocks since we weren't doing this before.

svn path=/trunk/; revision=24412
2006-10-05 15:13:59 +00:00
Alex Ionescu 3f66fcf605 - Rewrite ExpLoadInitialProcess by inlining and simplifying what the call to RtlCreateProcsesParameters should do, and also create our own custom environment with the same arguments that NT's smss gets.
- 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
2006-10-05 14:49:20 +00:00
Aleksey Bragin 3727f8fc7d - Add #ifdef DEBUG / #endif to fix compile. FreeLdr's debug macros needs some improvement in the future...
svn path=/trunk/; revision=24410
2006-10-05 09:15:44 +00:00
Alex Ionescu 5162751ab3 - Use KeLoaderBlock for registry hive loading.
- 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
2006-10-05 02:02:27 +00:00
Alex Ionescu 0bfcd77883 - Implement ExpInitNls to initialize the NLS Section using the new semantics recently implemented. Works pretty much like the previous code in rtl/nls.c except it uses the new variable names as well as maps a view of the NLS Table into the system process.c
- 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
2006-10-05 01:44:54 +00:00
Ged Murphy 52d60b023b add a few more icons to the device imagelist
svn path=/trunk/; revision=24407
2006-10-04 22:29:18 +00:00
Christoph von Wittich a387e6f9f8 -removed unused var
svn path=/trunk/; revision=24406
2006-10-04 22:06:00 +00:00
Aleksey Bragin b103aa1ece - Add most needed memory-manipulating functions. Some places are really crappy (like WinLdrSetProcessorContext's IDT filling), will be fixed soon.
- 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
2006-10-04 21:58:36 +00:00
Christoph von Wittich a361366988 -support debugging of control panel applets
svn path=/trunk/; revision=24404
2006-10-04 21:47:43 +00:00