1/* 2 * Copyright (c) 2002-2004 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 31 unchanged lines hidden (view full) --- 40 41#include "base/cprintf.hh" 42#include "base/loader/object_file.hh" 43#include "base/loader/symtab.hh" 44 45#include "base/loader/ecoff_object.hh" 46#include "base/loader/aout_object.hh" 47#include "base/loader/elf_object.hh" |
48#include "base/loader/raw_object.hh" |
49 50#include "mem/translating_port.hh" 51 52using namespace std; 53 54ObjectFile::ObjectFile(const string &_filename, int _fd, 55 size_t _len, uint8_t *_data, 56 Arch _arch, OpSys _opSys) --- 46 unchanged lines hidden (view full) --- 103 if (fileData) { 104 ::munmap(fileData, len); 105 fileData = NULL; 106 } 107} 108 109 110ObjectFile * |
111createObjectFile(const string &fname, bool raw) |
112{ 113 // open the file 114 int fd = open(fname.c_str(), O_RDONLY); 115 if (fd < 0) { 116 return NULL; 117 } 118 119 // find the length of the file by seeking to the end --- 17 unchanged lines hidden (view full) --- 137 if ((fileObj = AoutObject::tryFile(fname, fd, len, fileData)) != NULL) { 138 return fileObj; 139 } 140 141 if ((fileObj = ElfObject::tryFile(fname, fd, len, fileData)) != NULL) { 142 return fileObj; 143 } 144 |
145 if (raw) 146 return RawObject::tryFile(fname, fd, len, fileData); 147 |
148 // don't know what it is 149 close(fd); 150 munmap(fileData, len); 151 return NULL; 152} |