/[gxemul]/trunk/src/file/file_elf.c
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/src/file/file_elf.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 42 by dpavlin, Mon Oct 8 16:22:32 2007 UTC revision 46 by dpavlin, Wed Oct 10 21:07:01 2007 UTC
# Line 25  Line 25 
25   *  SUCH DAMAGE.   *  SUCH DAMAGE.
26   *   *
27   *   *
28   *  $Id: file_elf.c,v 1.5 2007/06/15 17:02:39 debug Exp $   *  $Id: file_elf.c,v 1.7 2007/07/20 09:03:33 debug Exp $
29   *   *
30   *  ELF file support.   *  COMMENT: ELF file support
31   */   */
32    
33  /*  Note: Included from file.c.  */  /*  Note: Included from file.c.  */
# Line 36  Line 36 
36  #include "exec_elf.h"  #include "exec_elf.h"
37    
38  /*  ELF machine types as strings: (same as exec_elf.h)  */  /*  ELF machine types as strings: (same as exec_elf.h)  */
39  #define N_ELF_MACHINE_TYPES     84  #define N_ELF_MACHINE_TYPES     89
40  static char *elf_machine_type[N_ELF_MACHINE_TYPES] = {  static char *elf_machine_type[N_ELF_MACHINE_TYPES] = {
41          "NONE", "M32", "SPARC", "386",                          /*  0..3  */          "NONE", "M32", "SPARC", "386",                          /*  0..3  */
42          "68K", "88K", "486", "860",                             /*  4..7  */            "68K", "88K", "486", "860",                             /*  4..7  */  
43          "MIPS", "S370", "MIPS_RS3_LE", "RS6000",                /*  8..11  */          "MIPS", "S370", "MIPS_RS3_LE", "RS6000",                /*  8..11  */
44          "unknown12", "unknown13", "unknown14", "PARISC",        /*  12..15  */          "unknown12", "unknown13", "unknown14", "PARISC",        /*  12..15  */
45          "NCUBE", "VPP500", "SPARC32PLUS", "960",                /*  16..19  */          "NCUBE", "VPP500", "SPARC32PLUS", "960",                /*  16..19  */
46          "PPC", "PPC64", "unknown22", "unknown23",               /*  20..23  */          "PPC", "PPC64", "unknown22", "unknown23",               /*  20..23  */
47          "unknown24", "unknown25", "unknown26", "unknown27",     /*  24..27  */          "unknown24", "unknown25", "unknown26", "unknown27",     /*  24..27  */
48          "unknown28", "unknown29", "unknown30", "unknown31",     /*  28..31  */          "unknown28", "unknown29", "unknown30", "unknown31",     /*  28..31  */
49          "unknown32", "unknown33", "unknown34", "unknown35",     /*  32..35  */          "unknown32", "unknown33", "unknown34", "unknown35",     /*  32..35  */
50          "V800", "FR20", "RH32", "RCE",                          /*  36..39  */          "V800", "FR20", "RH32", "RCE",                          /*  36..39  */
51          "ARM", "ALPHA", "SH", "SPARCV9",                        /*  40..43  */          "ARM", "ALPHA", "SH", "SPARCV9",                        /*  40..43  */
52          "TRICORE", "ARC", "H8_300", "H8_300H",                  /*  44..47  */          "TRICORE", "ARC", "H8_300", "H8_300H",                  /*  44..47  */
53          "H8S", "H8_500", "IA_64", "MIPS_X",                     /*  48..51  */          "H8S", "H8_500", "IA_64", "MIPS_X",                     /*  48..51  */
54          "COLDFIRE", "68HC12", "unknown54", "unknown55",         /*  52..55  */          "COLDFIRE", "68HC12", "unknown54", "unknown55",         /*  52..55  */
55          "unknown56", "unknown57", "unknown58", "unknown59",     /*  56..59  */          "unknown56", "unknown57", "unknown58", "unknown59",     /*  56..59  */
56          "unknown60", "unknown61", "AMD64", "unknown63",         /*  60..63  */          "unknown60", "unknown61", "AMD64", "unknown63",         /*  60..63  */
57          "unknown64", "unknown65", "unknown66", "unknown67",     /*  64..67  */          "unknown64", "unknown65", "unknown66", "unknown67",     /*  64..67  */
58          "unknown68", "unknown69", "unknown70", "unknown71",     /*  68..71  */          "unknown68", "unknown69", "unknown70", "unknown71",     /*  68..71  */
59          "unknown72", "unknown73", "unknown74", "unknown75",     /*  72..75  */          "unknown72", "unknown73", "unknown74", "unknown75",     /*  72..75  */
60          "unknown76", "unknown77", "unknown78", "unknown79",     /*  76..79  */          "unknown76", "unknown77", "unknown78", "unknown79",     /*  76..79  */
61          "unknown80", "unknown81", "unknown82", "AVR"            /*  80..83  */          "unknown80", "unknown81", "unknown82", "AVR",           /*  80..83  */
62            "unknown84", "unknown85", "unknown86", "unknown87",     /*  84..87  */
63            "M32R"                                                  /*  88      */
64  };  };
65    
66    
# Line 244  static void file_load_elf(struct machine Line 246  static void file_load_elf(struct machine
246                  case EM_IA_64:                  case EM_IA_64:
247                          ok = 1;                          ok = 1;
248                  }                  }
249                  break;  */                  break;
250          /*  case ARCH_M68K:          case ARCH_M68K:
251                  switch (emachine) {                  switch (emachine) {
252                  case EM_68K:                  case EM_68K:
253                          ok = 1;                          ok = 1;
254                  }                  }
255                  break;  */                  break;  */
256            case ARCH_M32R:
257                    switch (emachine) {
258                    case EM_M32R:
259                            ok = 1;
260                    }
261                    break;
262          case ARCH_MIPS:          case ARCH_MIPS:
263                  switch (emachine) {                  switch (emachine) {
264                  case EM_MIPS:                  case EM_MIPS:
# Line 311  static void file_load_elf(struct machine Line 319  static void file_load_elf(struct machine
319          debug("ELF%i %s, %s 0x", elf64? 64 : 32,          debug("ELF%i %s, %s 0x", elf64? 64 : 32,
320              encoding == ELFDATA2LSB? "LSB (LE)" : "MSB (BE)", s);              encoding == ELFDATA2LSB? "LSB (LE)" : "MSB (BE)", s);
321    
322            // XXX force load address to 0
323            eentry -= 0xc0000000;
324    
325          if (elf64)          if (elf64)
326                  debug("%016"PRIx64"\n", (uint64_t) eentry);                  debug("%016"PRIx64"\n", (uint64_t) eentry);
327          else          else

Legend:
Removed from v.42  
changed lines
  Added in v.46

  ViewVC Help
Powered by ViewVC 1.1.26