summaryrefslogtreecommitdiff
path: root/src/base
diff options
context:
space:
mode:
Diffstat (limited to 'src/base')
-rwxr-xr-xsrc/base/loader/hex_file.cc~162
1 files changed, 0 insertions, 162 deletions
diff --git a/src/base/loader/hex_file.cc~ b/src/base/loader/hex_file.cc~
deleted file mode 100755
index 54e3b1977..000000000
--- a/src/base/loader/hex_file.cc~
+++ /dev/null
@@ -1,162 +0,0 @@
- /*
- * Copyright (c) 2002, 2003, 2004
- * The Regents of The University of Michigan
- * All Rights Reserved
- *
- * This code is part of the M5 simulator.
- *
- * Permission is granted to use, copy, create derivative works and
- * redistribute this software and such derivative works for any
- * purpose, so long as the copyright notice above, this grant of
- * permission, and the disclaimer below appear in all copies made; and
- * so long as the name of The University of Michigan is not used in
- * any advertising or publicity pertaining to the use or distribution
- * of this software without specific, written prior authorization.
- *
- * THIS SOFTWARE IS PROVIDED AS IS, WITHOUT REPRESENTATION FROM THE
- * UNIVERSITY OF MICHIGAN AS TO ITS FITNESS FOR ANY PURPOSE, AND
- * WITHOUT WARRANTY BY THE UNIVERSITY OF MICHIGAN OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE. THE REGENTS OF THE UNIVERSITY OF MICHIGAN SHALL NOT BE
- * LIABLE FOR ANY DAMAGES, INCLUDING DIRECT, SPECIAL, INDIRECT,
- * INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WITH RESPECT TO ANY CLAIM
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OF THE SOFTWARE, EVEN
- * IF IT HAS BEEN OR IS HEREAFTER ADVISED OF THE POSSIBILITY OF SUCH
- * DAMAGES.
- *
- * Authors: Jaidev Patwardhan
- *
- */
-
-#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.
-*/
-HexFile::HexFile(const string _filename)
- : filename(_filename)
-{
- fp = fopen(filename.c_str(),"r");
- if(fp == NULL)
- {
- fatal("Unable to open %s\n",filename.c_str());
- }
-
-}
-
-HexFile::~HexFile()
-{
-}
-
-
-bool
-HexFile::loadSections(Port *memPort, Addr addrMask)
-{
- 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));
- }
- }
- return true;
-}
-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++;
-
- /* 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;
- }
- Number<<=4;
- Number+=Digit;
- i++;
-
- }
- if(Flag != true)
- {
- *A = 0;
- *D = 0;
- }
- else
- *D = Number;
-
-}
-
-
-
-void
-HexFile::close()
-{
- fclose(fp);
-}