We now return failed in FrLdrMapImage if the file could not be read.
authorReactOS Portable Systems Group <ros-arm-bringup@svn.reactos.org>
Thu, 7 Feb 2008 05:25:37 +0000 (05:25 +0000)
committerReactOS Portable Systems Group <ros-arm-bringup@svn.reactos.org>
Thu, 7 Feb 2008 05:25:37 +0000 (05:25 +0000)
FreeLDR ARM now loads properly, however, we need to start building the ARM kernel and ARM boot drivers, otherwise their relocations will have byte offsets which will lead to alignment errors (on ARM relocaitons are DWORD-aligned).
Next steps are to get the kernel building, then the HAL, then bootvid/kdcom.

svn path=/trunk/; revision=32176

reactos/boot/freeldr/freeldr/arch/arm/macharm.c
reactos/boot/freeldr/freeldr/reactos/imageldr.c

index da28a9b..160a300 100644 (file)
@@ -13,6 +13,7 @@
 /* GLOBALS ********************************************************************/
 
 PARM_BOARD_CONFIGURATION_BLOCK ArmBoardBlock;
+ULONG BootDrive, BootPartition;
 
 /* FUNCTIONS ******************************************************************/
 
index 94539f2..eb38128 100644 (file)
@@ -492,13 +492,18 @@ FrLdrMapImage(IN FILE *Image,
     
     /* Allocate a temporary buffer for the read */
     ReadBuffer = MmHeapAlloc(ImageSize);
-    
+
     /* Load the file image */
-    FsReadFile(Image, ImageSize, NULL, ReadBuffer);
-    
+    if (!FsReadFile(Image, ImageSize, NULL, ReadBuffer))
+    {
+        /* Fail */
+        DbgPrint("Failed to read image: %s\n", Name);
+        return NULL;
+    }
+
     /* Map it into virtual memory */
     ImageSize = FrLdrReMapImage(ReadBuffer, LoadBase);
-    
+
     /* Free the temporary buffer */
     MmHeapFree(ReadBuffer);