Add machineType to arch specific info.

Fixup module locations that are not PE coff.

svn path=/trunk/; revision=30106
This commit is contained in:
Art Yerkes
2007-11-04 11:59:52 +00:00
parent 66aabe3049
commit ff02c3ff0f
5 changed files with 16 additions and 1 deletions
@@ -476,6 +476,8 @@ VOID PpcRTCGetCurrentDateTime( PULONG Hear, PULONG Month, PULONG Day,
VOID PpcHwDetect() {
printf("PpcHwDetect\n");
/* Almost all PowerPC boxen use PCI */
BootInfo.machineType = PCIBus;
}
BOOLEAN PpcDiskNormalizeSystemPath(char *SystemPath, unsigned Size) {
@@ -184,6 +184,11 @@ FrLdrStartup(ULONG Magic)
LdrPEFixupImports
((PVOID)reactos_modules[i].ModStart,
(PCHAR)reactos_modules[i].String);
else /* Make RVA */
{
reactos_modules[i].ModStart -= (ULONG_PTR)KernelMemory;
reactos_modules[i].ModEnd -= (ULONG_PTR)KernelMemory;
}
}
/* We don't use long longs, but longs for the addresses in the
@@ -680,6 +685,7 @@ FrLdrLoadModule(FILE *ModuleImage,
} while(TempName);
NameBuffer = reactos_module_strings[LoaderBlock.ModsCount];
/* Get Module Size */
LocalModuleSize = FsGetFileSize(ModuleImage);
@@ -723,8 +729,9 @@ FrLdrMapImage(IN FILE *Image, IN PCHAR ShortName, IN ULONG ImageType)
else
{
PVOID ModuleBase = (PVOID)NextModuleBase;
if(FrLdrMapModule(Image, ShortName, 0, 0))
Result = ModuleBase;
Result = ModuleBase;
}
return Result;
}
@@ -1,8 +1,10 @@
#include "freeldr.h"
#include "machine.h"
#include "ppcboot.h"
#include "ppcmmu/mmu.h"
#include "prep.h"
extern boot_infos_t BootInfo;
int prep_serial = 0x800003f8;
void sync() { __asm__("eieio\n\tsync"); }
@@ -63,6 +65,8 @@ void PpcPrepVideoGetDisplaySize( PULONG Width, PULONG Height, PULONG Depth )
void PpcPrepVideoPrepareForReactOS(BOOLEAN setup)
{
/* Prep boxen are PCI */
BootInfo.machineType = PCIBus;
pci_setup(&pci1_desc);
}
+1
View File
@@ -342,6 +342,7 @@ typedef struct _I386_LOADER_BLOCK
typedef struct _PPC_LOADER_BLOCK
{
PVOID BootInfo;
ULONG MachineType;
} PPC_LOADER_BLOCK, *PPPC_LOADER_BLOCK;
//
+1
View File
@@ -4,6 +4,7 @@
typedef char font_char[57];
typedef struct _boot_infos_t {
void *loaderBlock;
int machineType;
int dispDeviceRect[4];
int dispDeviceRowBytes;
int dispDeviceDepth;