diff options
| author | Cyrille Bagard <nocbos@gmail.com> | 2009-05-31 20:58:20 (GMT) | 
|---|---|---|
| committer | Cyrille Bagard <nocbos@gmail.com> | 2009-05-31 20:58:20 (GMT) | 
| commit | 8724afdc73e0ddad86f46de1a3fbe0254575a76e (patch) | |
| tree | de666b66e154c6c6453807d3fa4272efb6877a91 /src/format | |
| parent | 0b7d7f26c745ff0f52e9e483a0980351368ca824 (diff) | |
Supported a new architecture (MIPS).
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@67 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/format')
| -rw-r--r-- | src/format/elf/e_elf.c | 20 | ||||
| -rw-r--r-- | src/format/exe_format.c | 20 | ||||
| -rw-r--r-- | src/format/exe_format.h | 3 | 
3 files changed, 40 insertions, 3 deletions
| diff --git a/src/format/elf/e_elf.c b/src/format/elf/e_elf.c index dac0cd7..b5e3406 100644 --- a/src/format/elf/e_elf.c +++ b/src/format/elf/e_elf.c @@ -242,7 +242,25 @@ elf_format *load_elf(const uint8_t *content, off_t length)  FormatTargetMachine get_elf_target_machine(const elf_format *format)  { -    return FTM_386; +    FormatTargetMachine result;             /* Identifiant à retourner     */ + +    switch (format->header.e_machine) +    { +        case EM_MIPS: +            result = FTM_MIPS; +            break; + +        case EM_386: +            result = FTM_386; +            break; + +        default: +            /* FIXME */ +            break; + +    } + +    return result;  } diff --git a/src/format/exe_format.c b/src/format/exe_format.c index aeeaea3..5ddb934 100644 --- a/src/format/exe_format.c +++ b/src/format/exe_format.c @@ -360,7 +360,25 @@ const uint8_t *get_exe_content(const exe_format *format, off_t *length)  FormatTargetMachine get_exe_target_machine(const exe_format *format)  { -    return format->get_target_machine(format); +    FormatTargetMachine result;             /* Type à retourner            */ + +    result = format->get_target_machine(format); + +    switch (result) +    { +        case FTM_JVM: +            log_simple_message(LMT_INFO, _("Detected architecture: Java Virtual Machine")); +            break; +        case FTM_MIPS: +            log_simple_message(LMT_INFO, _("Detected architecture: Microprocessor without Interlocked Pipeline Stages")); +            break; +        case FTM_386: +            log_simple_message(LMT_INFO, _("Detected architecture: X386")); +            break; + +    } + +    return result;  } diff --git a/src/format/exe_format.h b/src/format/exe_format.h index 2c10d65..de9f025 100644 --- a/src/format/exe_format.h +++ b/src/format/exe_format.h @@ -92,8 +92,9 @@ exe_format *load_new_exe_format(const uint8_t *, off_t);  /* Architectures de destination des formats */  typedef enum _FormatTargetMachine  { -    FTM_386,                                /* Intel 80386                 */      FTM_JVM,                                /* Java Virtual Machine        */ +    FTM_MIPS,                               /* Mips 32 ou 64 bits          */ +    FTM_386,                                /* Intel 80386                 */      FTM_COUNT | 
