summaryrefslogtreecommitdiff
path: root/src/arch
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch')
-rw-r--r--src/arch/artificial.c4
-rw-r--r--src/arch/immediate.c27
-rw-r--r--src/arch/instruction-int.h2
-rw-r--r--src/arch/instruction.c2
-rw-r--r--src/arch/instruction.h4
-rw-r--r--src/arch/jvm/instruction.c4
-rw-r--r--src/arch/jvm/operand.c4
-rw-r--r--src/arch/mips/instruction.c4
-rw-r--r--src/arch/mips/operand.c12
-rw-r--r--src/arch/operand-int.h2
-rw-r--r--src/arch/operand.c2
-rw-r--r--src/arch/operand.h4
-rw-r--r--src/arch/processor.c4
-rw-r--r--src/arch/processor.h2
-rw-r--r--src/arch/x86/instruction.c4
-rw-r--r--src/arch/x86/operand.c16
16 files changed, 50 insertions, 47 deletions
diff --git a/src/arch/artificial.c b/src/arch/artificial.c
index 6783579..a1fa56e 100644
--- a/src/arch/artificial.c
+++ b/src/arch/artificial.c
@@ -54,7 +54,7 @@ static void g_db_instruction_class_init(GDbInstructionClass *);
static void g_db_instruction_init(GDbInstruction *);
/* Traduit une instruction en version humainement lisible. */
-static const char *g_db_instruction_get_text(const GDbInstruction *, const exe_format *, AsmSyntax);
+static const char *g_db_instruction_get_text(const GDbInstruction *, const GExeFormat *, AsmSyntax);
/* Informe sur une éventuelle référence à une autre instruction. */
static InstructionLinkType g_db_instruction_get_link(const GDbInstruction *, vmpa_t *);
@@ -166,7 +166,7 @@ GArchInstruction *g_db_instruction_new_from_data(const bin_t *data, off_t *pos,
* *
******************************************************************************/
-static const char *g_db_instruction_get_text(const GDbInstruction *instr, const exe_format *format, AsmSyntax syntax)
+static const char *g_db_instruction_get_text(const GDbInstruction *instr, const GExeFormat *format, AsmSyntax syntax)
{
return "db";
diff --git a/src/arch/immediate.c b/src/arch/immediate.c
index c57919f..f8bba35 100644
--- a/src/arch/immediate.c
+++ b/src/arch/immediate.c
@@ -31,6 +31,7 @@
#include "operand-int.h"
#include "../common/extstr.h"
+#include "../format/format.h"
@@ -83,7 +84,7 @@ static void g_imm_operand_class_init(GImmOperandClass *);
static void g_imm_operand_init(GImmOperand *);
/* Traduit un opérande en version humainement lisible. */
-static char *g_imm_operand_get_text(const GImmOperand *, const exe_format *, AsmSyntax);
+static char *g_imm_operand_get_text(const GImmOperand *, const GExeFormat *, AsmSyntax);
/* Indique le type défini pour un opérande de valeur numérique. */
@@ -337,12 +338,13 @@ bool g_imm_operand_is_negative(const GImmOperand *operand)
* *
******************************************************************************/
-static char *g_imm_operand_get_text(const GImmOperand *operand, const exe_format *format, AsmSyntax syntax)
+static char *g_imm_operand_get_text(const GImmOperand *operand, const GExeFormat *format, AsmSyntax syntax)
{
char *result; /* Chaîne à retourner */
- char *label; /* Etiquette de symbole */
- SymbolType symtype; /* Type de symbole */
vmpa_t address; /* Décallage final constaté */
+ const char *label; /* Etiquette de symbole */
+ SymbolType symtype; /* Type de symbole */
+ char *printable; /* Version texte présentable */
char buffer[256]; /* Complément d'information */
/* Valeur brute */
@@ -437,28 +439,29 @@ static char *g_imm_operand_get_text(const GImmOperand *operand, const exe_format
{
address = operand->unsigned_imm.val32; /* FIXME !!! */
- if (resolve_exe_symbol(format, &label, &symtype, &address))
+ if (g_binary_format_resolve_symbol(G_BIN_FORMAT(format), &label, &symtype, &address))
{
switch (symtype)
{
- case STP_SECTION:
+ case STP_OBJECT:
+ case STP_FUNCTION:
if (address == 0) snprintf(buffer, 256, " <%s>", label);
else snprintf(buffer, 256, " <%s+0x%llx>", label, address);
result = stradd(result, buffer);
break;
case STP_STRING:
- label = escape_crlf(label);
- label = strrpl(label, "<", "&lt;");
- label = strrpl(label, ">", "&gt;");
- snprintf(buffer, 256, " \"%s\"", label);
+ printable = strdup(label);
+ printable = escape_crlf(printable);
+ printable = strrpl(printable, "<", "&lt;");
+ printable = strrpl(printable, ">", "&gt;");
+ snprintf(buffer, 256, " \"%s\"", printable);
result = stradd(result, buffer);
+ free(printable);
break;
}
- free(label);
-
}
}
diff --git a/src/arch/instruction-int.h b/src/arch/instruction-int.h
index db6a3bf..ab37d62 100644
--- a/src/arch/instruction-int.h
+++ b/src/arch/instruction-int.h
@@ -31,7 +31,7 @@
/* Traduit une instruction en version humainement lisible. */
-typedef const char * (* get_instruction_text_fc) (const GArchInstruction *, const exe_format *, AsmSyntax);
+typedef const char * (* get_instruction_text_fc) (const GArchInstruction *, const GExeFormat *, AsmSyntax);
/* Informe sur une éventuelle référence à une autre instruction. */
typedef InstructionLinkType (* get_instruction_link_fc) (const GArchInstruction *, vmpa_t *);
diff --git a/src/arch/instruction.c b/src/arch/instruction.c
index 37b2147..338f496 100644
--- a/src/arch/instruction.c
+++ b/src/arch/instruction.c
@@ -317,7 +317,7 @@ void g_arch_instruction_detach_operand(GArchInstruction *instr, GArchOperand *op
* *
******************************************************************************/
-char *g_arch_instruction_get_text(const GArchInstruction *instr, const exe_format *format, AsmSyntax syntax)
+char *g_arch_instruction_get_text(const GArchInstruction *instr, const GExeFormat *format, AsmSyntax syntax)
{
char *result; /* Chaîne à retourner */
size_t i; /* Boucle de parcours */
diff --git a/src/arch/instruction.h b/src/arch/instruction.h
index 0e6444b..accaed6 100644
--- a/src/arch/instruction.h
+++ b/src/arch/instruction.h
@@ -32,7 +32,7 @@
#include "archbase.h"
#include "operand.h"
-#include "../format/exe_format.h"
+#include "../format/executable.h"
@@ -92,7 +92,7 @@ void g_arch_instruction_replace_operand(GArchInstruction *, GArchOperand *, cons
void g_arch_instruction_detach_operand(GArchInstruction *, GArchOperand *);
/* Traduit une instruction en version humainement lisible. */
-char *g_arch_instruction_get_text(const GArchInstruction *, const exe_format *, AsmSyntax);
+char *g_arch_instruction_get_text(const GArchInstruction *, const GExeFormat *, AsmSyntax);
/* Informe sur une éventuelle référence à une autre instruction. */
InstructionLinkType g_arch_instruction_get_link(const GArchInstruction *, vmpa_t *);
diff --git a/src/arch/jvm/instruction.c b/src/arch/jvm/instruction.c
index 9ada8f0..1b927e5 100644
--- a/src/arch/jvm/instruction.c
+++ b/src/arch/jvm/instruction.c
@@ -151,7 +151,7 @@ static jvm_instruction _instructions[JOP_COUNT] = {
/* Traduit une instruction en version humainement lisible. */
-static const char *jvm_get_instruction_text(const GJvmInstruction *, const exe_format *, AsmSyntax);
+static const char *jvm_get_instruction_text(const GJvmInstruction *, const GExeFormat *, AsmSyntax);
@@ -293,7 +293,7 @@ JvmOpcodes jvm_guess_next_instruction(const bin_t *data, off_t pos, off_t len, b
* *
******************************************************************************/
-static const char *jvm_get_instruction_text(const GJvmInstruction *instr, const exe_format *format, AsmSyntax syntax)
+static const char *jvm_get_instruction_text(const GJvmInstruction *instr, const GExeFormat *format, AsmSyntax syntax)
{
return _instructions[instr->type].keyword;
diff --git a/src/arch/jvm/operand.c b/src/arch/jvm/operand.c
index da95101..429516a 100644
--- a/src/arch/jvm/operand.c
+++ b/src/arch/jvm/operand.c
@@ -255,10 +255,10 @@ static char *g_jvm_ref_operand_get_text(const GJvmRefOperand *operand, const exe
switch (operand->type)
{
case JOT_FIELD_REF:
- result = build_reference_from_java_pool((const java_format *)format, operand->index, JRT_FIELD);
+ result = NULL;//build_reference_from_java_pool((const java_format *)format, operand->index, JRT_FIELD);
break;
case JOT_METHOD_REF:
- result = build_reference_from_java_pool((const java_format *)format, operand->index, JRT_METHOD);
+ result = NULL;//build_reference_from_java_pool((const java_format *)format, operand->index, JRT_METHOD);
break;
default:
result = NULL;
diff --git a/src/arch/mips/instruction.c b/src/arch/mips/instruction.c
index 54999a1..fd39d5c 100644
--- a/src/arch/mips/instruction.c
+++ b/src/arch/mips/instruction.c
@@ -126,7 +126,7 @@ static mips_instruction _instructions[MOP_COUNT] = {
/* Traduit une instruction en version humainement lisible. */
-static const char *mips_get_instruction_text(const GMipsInstruction *, const exe_format *, AsmSyntax);
+static const char *mips_get_instruction_text(const GMipsInstruction *, const GExeFormat *, AsmSyntax);
@@ -274,7 +274,7 @@ MipsOpcodes mips_guess_next_instruction(const bin_t *data, off_t pos, off_t len)
* *
******************************************************************************/
-static const char *mips_get_instruction_text(const GMipsInstruction *instr, const exe_format *format, AsmSyntax syntax)
+static const char *mips_get_instruction_text(const GMipsInstruction *instr, const GExeFormat *format, AsmSyntax syntax)
{
const char *result; /* Chaîne à retourner */
diff --git a/src/arch/mips/operand.c b/src/arch/mips/operand.c
index 68599a4..4021cf6 100644
--- a/src/arch/mips/operand.c
+++ b/src/arch/mips/operand.c
@@ -89,7 +89,7 @@ static void g_mips_register_operand_class_init(GMipsRegisterOperandClass *);
static void g_mips_register_operand_init(GMipsRegisterOperand *);
/* Traduit un opérande en version humainement lisible. */
-static char *g_mips_register_operand_get_text(const GMipsRegisterOperand *, const exe_format *, AsmSyntax);
+static char *g_mips_register_operand_get_text(const GMipsRegisterOperand *, const GExeFormat *, AsmSyntax);
@@ -122,7 +122,7 @@ static void g_mips_mem_content_operand_class_init(GMipsMemContentOperandClass *)
static void g_mips_mem_content_operand_init(GMipsMemContentOperand *);
/* Traduit un opérande en version humainement lisible. */
-static char *g_mips_mem_content_operand_get_text(const GMipsMemContentOperand *, const exe_format *, AsmSyntax);
+static char *g_mips_mem_content_operand_get_text(const GMipsMemContentOperand *, const GExeFormat *, AsmSyntax);
@@ -154,7 +154,7 @@ static void g_mips_offset_operand_class_init(GMipsOffsetOperandClass *);
static void g_mips_offset_operand_init(GMipsOffsetOperand *);
/* Traduit un opérande en version humainement lisible. */
-static char *g_mips_offset_operand_get_text(const GMipsOffsetOperand *, const exe_format *, AsmSyntax);
+static char *g_mips_offset_operand_get_text(const GMipsOffsetOperand *, const GExeFormat *, AsmSyntax);
@@ -301,7 +301,7 @@ GArchOperand *g_mips_register_operand_new(bin_t index)
* *
******************************************************************************/
-static char *g_mips_register_operand_get_text(const GMipsRegisterOperand *operand, const exe_format *format, AsmSyntax syntax)
+static char *g_mips_register_operand_get_text(const GMipsRegisterOperand *operand, const GExeFormat *format, AsmSyntax syntax)
{
char *result; /* Chaîne à retourner */
@@ -431,7 +431,7 @@ GArchOperand *g_mips_mem_content_operand_new(bin_t index, int16_t offset)
* *
******************************************************************************/
-static char *g_mips_mem_content_operand_get_text(const GMipsMemContentOperand *operand, const exe_format *format, AsmSyntax syntax)
+static char *g_mips_mem_content_operand_get_text(const GMipsMemContentOperand *operand, const GExeFormat *format, AsmSyntax syntax)
{
char *result; /* Chaîne à retourner */
char *tmp; /* Déplacement */
@@ -544,7 +544,7 @@ GArchOperand *g_mips_offset_operand_new(int16_t offset)
* *
******************************************************************************/
-static char *g_mips_offset_operand_get_text(const GMipsOffsetOperand *operand, const exe_format *format, AsmSyntax syntax)
+static char *g_mips_offset_operand_get_text(const GMipsOffsetOperand *operand, const GExeFormat *format, AsmSyntax syntax)
{
return g_arch_operand_get_text(G_ARCH_OPERAND(operand->offset), format, syntax);
diff --git a/src/arch/operand-int.h b/src/arch/operand-int.h
index 8048548..90e3e06 100644
--- a/src/arch/operand-int.h
+++ b/src/arch/operand-int.h
@@ -30,7 +30,7 @@
/* Traduit un opérande en version humainement lisible. */
-typedef char * (* get_operand_text_fc) (const GArchOperand *, const exe_format *, AsmSyntax);
+typedef char * (* get_operand_text_fc) (const GArchOperand *, const GExeFormat *, AsmSyntax);
/* Définition générique d'un opérande d'architecture (instance) */
diff --git a/src/arch/operand.c b/src/arch/operand.c
index 0f488b3..724f3c0 100644
--- a/src/arch/operand.c
+++ b/src/arch/operand.c
@@ -91,7 +91,7 @@ static void g_arch_operand_init(GArchOperand *operand)
* *
******************************************************************************/
-char *g_arch_operand_get_text(const GArchOperand *operand, const exe_format *format, AsmSyntax syntax)
+char *g_arch_operand_get_text(const GArchOperand *operand, const GExeFormat *format, AsmSyntax syntax)
{
return operand->get_text(operand, format, syntax);
diff --git a/src/arch/operand.h b/src/arch/operand.h
index cd7b213..c84c7fb 100644
--- a/src/arch/operand.h
+++ b/src/arch/operand.h
@@ -62,7 +62,7 @@ typedef enum _AsmOperandSize
#include <glib-object.h>
-#include "../format/exe_format.h"
+#include "../format/executable.h"
@@ -83,7 +83,7 @@ typedef struct _GArchOperandClass GArchOperandClass;
GType g_arch_operand_get_type(void);
/* Traduit un opérande en version humainement lisible. */
-char *g_arch_operand_get_text(const GArchOperand *, const exe_format *, AsmSyntax);
+char *g_arch_operand_get_text(const GArchOperand *, const GExeFormat *, AsmSyntax);
diff --git a/src/arch/processor.c b/src/arch/processor.c
index c8630d7..103296a 100644
--- a/src/arch/processor.c
+++ b/src/arch/processor.c
@@ -249,11 +249,11 @@ GArchProcessor *get_arch_processor_for_type(ArchProcessorType type)
* *
******************************************************************************/
-GArchProcessor *get_arch_processor_from_format(const exe_format *format)
+GArchProcessor *get_arch_processor_from_format(const GExeFormat *format)
{
GArchProcessor *result; /* Conversion à retourner */
- switch (get_exe_target_machine(format))
+ switch (g_exe_format_get_target_machine(format))
{
case FTM_JVM:
result = get_arch_processor_for_type(APT_JVM);
diff --git a/src/arch/processor.h b/src/arch/processor.h
index 8529d50..ea954cc 100644
--- a/src/arch/processor.h
+++ b/src/arch/processor.h
@@ -82,7 +82,7 @@ bool init_all_processors(void);
GArchProcessor *get_arch_processor_for_type(ArchProcessorType);
/* Fournit le processeur d'architecture lié à un format. */
-GArchProcessor *get_arch_processor_from_format(const exe_format *);
+GArchProcessor *get_arch_processor_from_format(const GExeFormat *);
diff --git a/src/arch/x86/instruction.c b/src/arch/x86/instruction.c
index 0af29c1..65be263 100644
--- a/src/arch/x86/instruction.c
+++ b/src/arch/x86/instruction.c
@@ -321,7 +321,7 @@ static x86_instruction _instructions[XOP_COUNT] = {
/* Traduit une instruction en version humainement lisible. */
-static const char *x86_get_instruction_text(const GX86Instruction *, const exe_format *, AsmSyntax);
+static const char *x86_get_instruction_text(const GX86Instruction *, const GExeFormat *, AsmSyntax);
/* Informe sur une éventuelle référence à une autre instruction. */
static InstructionLinkType x86_get_instruction_link(const GX86Instruction *, vmpa_t *);
@@ -537,7 +537,7 @@ X86Opcodes x86_guess_next_instruction(const bin_t *data, off_t pos, off_t len, X
* *
******************************************************************************/
-static const char *x86_get_instruction_text(const GX86Instruction *instr, const exe_format *format, AsmSyntax syntax)
+static const char *x86_get_instruction_text(const GX86Instruction *instr, const GExeFormat *format, AsmSyntax syntax)
{
const char *result; /* Chaîne à retourner */
diff --git a/src/arch/x86/operand.c b/src/arch/x86/operand.c
index 24613cf..69c08dc 100644
--- a/src/arch/x86/operand.c
+++ b/src/arch/x86/operand.c
@@ -90,7 +90,7 @@ static void g_x86_register_operand_class_init(GX86RegisterOperandClass *);
static void g_x86_register_operand_init(GX86RegisterOperand *);
/* Traduit un opérande en version humainement lisible. */
-static char *g_x86_register_operand_get_text(const GX86RegisterOperand *, const exe_format *, AsmSyntax);
+static char *g_x86_register_operand_get_text(const GX86RegisterOperand *, const GExeFormat *, AsmSyntax);
@@ -125,7 +125,7 @@ static void g_x86_mod_rm_operand_class_init(GX86ModRMOperandClass *);
static void g_x86_mod_rm_operand_init(GX86ModRMOperand *);
/* Traduit un opérande en version humainement lisible. */
-static char *g_x86_mod_rm_operand_get_text(const GX86ModRMOperand *, const exe_format *, AsmSyntax);
+static char *g_x86_mod_rm_operand_get_text(const GX86ModRMOperand *, const GExeFormat *, AsmSyntax);
@@ -156,7 +156,7 @@ static void g_x86_relative_operand_class_init(GX86RelativeOperandClass *);
static void g_x86_relative_operand_init(GX86RelativeOperand *);
/* Traduit un opérande en version humainement lisible. */
-static char *g_x86_relative_operand_get_text(const GX86RelativeOperand *, const exe_format *, AsmSyntax);
+static char *g_x86_relative_operand_get_text(const GX86RelativeOperand *, const GExeFormat *, AsmSyntax);
@@ -187,7 +187,7 @@ static void g_x86_moffs_operand_class_init(GX86MOffsOperandClass *);
static void g_x86_moffs_operand_init(GX86MOffsOperand *);
/* Traduit un opérande en version humainement lisible. */
-static char *g_x86_moffs_operand_get_text(const GX86MOffsOperand *, const exe_format *, AsmSyntax);
+static char *g_x86_moffs_operand_get_text(const GX86MOffsOperand *, const GExeFormat *, AsmSyntax);
@@ -417,7 +417,7 @@ GArchOperand *g_x86_register_operand_new_from_index(bin_t index, AsmOperandSize
* *
******************************************************************************/
-static char *g_x86_register_operand_get_text(const GX86RegisterOperand *operand, const exe_format *format, AsmSyntax syntax)
+static char *g_x86_register_operand_get_text(const GX86RegisterOperand *operand, const GExeFormat *format, AsmSyntax syntax)
{
char *result; /* Chaîne à retourner */
@@ -596,7 +596,7 @@ GArchOperand *g_x86_mod_rm_operand_new(const bin_t *data, off_t *pos, off_t len,
* *
******************************************************************************/
-static char *g_x86_mod_rm_operand_get_text(const GX86ModRMOperand *operand, const exe_format *format, AsmSyntax syntax)
+static char *g_x86_mod_rm_operand_get_text(const GX86ModRMOperand *operand, const GExeFormat *format, AsmSyntax syntax)
{
char *result; /* Chaîne à retourner */
char *tmp; /* Chaîne de registre */
@@ -834,7 +834,7 @@ GArchOperand *g_x86_relative_operand_new(const bin_t *data, off_t *pos, off_t le
* *
******************************************************************************/
-static char *g_x86_relative_operand_get_text(const GX86RelativeOperand *operand, const exe_format *format, AsmSyntax syntax)
+static char *g_x86_relative_operand_get_text(const GX86RelativeOperand *operand, const GExeFormat *format, AsmSyntax syntax)
{
char *result; /* Chaîne à retourner */
@@ -964,7 +964,7 @@ GArchOperand *g_x86_moffs_operand_new(const bin_t *data, off_t *pos, off_t len,
* *
******************************************************************************/
-static char *g_x86_moffs_operand_get_text(const GX86MOffsOperand *operand, const exe_format *format, AsmSyntax syntax)
+static char *g_x86_moffs_operand_get_text(const GX86MOffsOperand *operand, const GExeFormat *format, AsmSyntax syntax)
{
char *result; /* Chaîne à retourner */