changeset bb31ea8583d8 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=bb31ea8583d8
description:
        style: This file hugely violated the M5 style.
        Remove a bunch of unused cruft from the interface while we're at it

diffstat:

2 files changed, 20 insertions(+), 40 deletions(-)
src/base/loader/hex_file.cc |   51 ++++++++++++++-----------------------------
src/base/loader/hex_file.hh |    9 ++-----

diffs (269 lines):

diff -r bf358d99eff7 -r bb31ea8583d8 src/base/loader/hex_file.cc
--- a/src/base/loader/hex_file.cc       Wed Sep 03 00:52:54 2008 -0400
+++ b/src/base/loader/hex_file.cc       Mon Sep 08 18:03:52 2008 -0700
@@ -28,134 +28,109 @@
  * Authors: Jaidev Patwardhan
  */
 
+#include <cctype>
+#include <cstdio>
 #include <list>
 #include <string>
-
-#include <sys/types.h>
-#include <sys/mman.h>
-#include <fcntl.h>
-#include <stdio.h>
-#include <unistd.h>
 
 #include "base/cprintf.hh"
 #include "base/loader/hex_file.hh"
 #include "base/loader/symtab.hh"
-
-
 #include "mem/translating_port.hh"
 
 using namespace std;
-/* Load a Hex File into memory.
-   Currently only used with MIPS BARE_IRON mode.
-   A hex file consists of [Address Data] tuples that get directly loaded into
-   physical memory. The address specified is a word address (i.e., to get the 
byte address, shift left by 2)
-   The data is a full 32-bit hex value.
+/*
+ * Load a Hex File into memory. Currently only used with MIPS
+ * BARE_IRON mode. A hex file consists of [Address Data] tuples that
+ * get directly loaded into physical memory. The address specified is
+ * a word address (i.e., to get the byte address, shift left by 2) The
+ * data is a full 32-bit hex value.
 */
 HexFile::HexFile(const string _filename)
     : filename(_filename)
 {
-  fp = fopen(filename.c_str(),"r");
-  if(fp == NULL)
-    {
-      panic("Unable to open %s\n",filename.c_str());
-    }
-
+    fp = fopen(filename.c_str(), "r");
+    if (fp == NULL)
+        panic("Unable to open %s\n", filename.c_str());
 }
 
 HexFile::~HexFile()
 {
 }
 
-
 bool
-HexFile::loadSections(Port *memPort, Addr addrMask)
+HexFile::loadSections(Port *memPort)
 {
-  char Line[64];
-  Addr MemAddr;
-  uint32_t Data;
-  while(!feof(fp))
-    {
-      fgets(Line,64,fp);
-      parseLine(Line,&MemAddr,&Data);
-      //      printf("Hex:%u\n",Data);
-
-      if(MemAddr != 0)
-        {
-          // Now, write to memory
-          memPort->writeBlob(MemAddr<<2,(uint8_t *)&Data,sizeof(Data));
+    char Line[64];
+    Addr MemAddr;
+    uint32_t Data;
+    while (!feof(fp)) {
+        fgets(Line, 64, fp);
+        parseLine(Line, &MemAddr, &Data);
+        if (MemAddr != 0) {
+            // Now, write to memory
+            memPort->writeBlob(MemAddr << 2, (uint8_t *)&Data, sizeof(Data));
         }
     }
     return true;
 }
-void HexFile::parseLine(char *Str,Addr *A, uint32_t *D)
+
+void
+HexFile::parseLine(char *Str, Addr *A, uint32_t *D)
 {
-  int i=0;
-  bool Flag = false;
-  *A = 0;
-  *D = 0;
-  int Digit = 0;
-  unsigned Number = 0;
-  /* Skip white spaces */
-  while(Str[i] != '\0' && Str[i]==' ')
-    i++;
+    int i = 0;
+    bool Flag = false;
+    *A = 0;
+    *D = 0;
+    int Digit = 0;
+    unsigned Number = 0;
 
-  /* Ok, we're at some character...process things */
-  while(Str[i] != '\0')
-    {
-      if(Str[i]>='0' && Str[i]<='9')
-        {
-          Digit=Str[i]-'0';
+    /* Skip white spaces */
+    while (Str[i] != '\0' && Str[i]==' ')
+        i++;
+
+    /* Ok, we're at some character...process things */
+    while (Str[i] != '\0') {
+        if (Str[i] >= '0' && Str[i] <= '9') {
+            Digit = Str[i] - '0';
+        } else if (Str[i] >= 'a' && Str[i] <= 'f') {
+            Digit = Str[i] - 'a' + 10;
+        } else if (Str[i] >= 'A' && Str[i] <= 'F') {
+          Digit=Str[i]-'A'+10;
+        } else if (Str[i] == ' ' || Str[i] == '\n') {
+            if (Number == 0)
+                return;
+            if (Flag == false) {
+                *A = Number;
+                Number = 0;
+                Flag = true;
+            } else {
+                *D = Number;
+                return;
+            }
+        } else {
+            // Ok, we've encountered a non-hex character, cannot be a
+            // valid line, skip and return 0's
+            *A = 0;
+            *D = 0;
+            return;
         }
-      else if(Str[i]>='a' && Str[i]<='f')
-        {
-          Digit=Str[i]-'a'+10;
-        }
-      else if(Str[i]>='A' && Str[i]<='F')
-        {
-          Digit=Str[i]-'A'+10;
-        }
-      else if(Str[i] == ' ' || Str[i]=='\n')
-        {
-          if(Number == 0)
-            return;
-          if(Flag == false)
-            {
-              *A = Number;
-              Number = 0;
-              Flag = true;
-            }
-          else
-            {
-              *D = Number;
-              return;
-            }
-        }
-      else
-        {
-          // Ok, we've encountered a non-hex character, cannot be a valid 
line, skip and return 0's
-          *A = 0;
-          *D = 0;
-          return;
-        }
-      Number<<=4;
-      Number+=Digit;
-      i++;
 
+        Number <<= 4;
+        Number += Digit;
+        i++;
     }
-  if(Flag != true)
-    {
-      *A = 0;
-      *D = 0;
+
+    if (Flag != true) {
+        *A = 0;
+        *D = 0;
+    } else {
+        *D = Number;
     }
-  else
-    *D = Number;
-
 }
-
-
 
 void
 HexFile::close()
 {
-  fclose(fp);
+    fclose(fp);
 }
diff -r bf358d99eff7 -r bb31ea8583d8 src/base/loader/hex_file.hh
--- a/src/base/loader/hex_file.hh       Wed Sep 03 00:52:54 2008 -0400
+++ b/src/base/loader/hex_file.hh       Mon Sep 08 18:03:52 2008 -0700
@@ -28,50 +28,31 @@
  * Authors: Jaidev Patwardhan
  */
 
-#ifndef __HEX_FILE_HH__
-#define __HEX_FILE_HH__
+#ifndef __BASE_LOADER_HEX_FILE_HH__
+#define __BASE_LOADER_HEX_FILE_HH__
 
+#include <cstdio>
 #include <limits>
 #include <string>
 
 #include "sim/host.hh" // for Addr
-#include <fstream>
 
 class Port;
 
 class HexFile
 {
-  public:
-
-
   protected:
     const std::string filename;
     FILE *fp;
 
+    void parseLine(char *, Addr *, uint32_t *);
+
   public:
+    HexFile(const std::string _filename);
     virtual ~HexFile();
-    HexFile(const std::string _filename);
 
     void close();
-
-    bool loadSections(Port *memPort, Addr addrMask =
-            std::numeric_limits<Addr>::max());
-
-  protected:
-
-  typedef struct {
-    Addr MemAddr;
-    uint32_t Data;
-  } HexLine;
-
-    Addr entry;
-    Addr globalPtr;
-
-  public:
-    void parseLine(char *,Addr *,uint32_t *);
-    Addr entryPoint() const { return entry; }
-    Addr globalPointer() const { return globalPtr; }
-
+    bool loadSections(Port *memPort);
 };
 
-#endif // __HEX_FILE_HH__
+#endif // __BASE_LOADER_HEX_FILE_HH__
_______________________________________________
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to