summaryrefslogtreecommitdiff
path: root/src/analysis
diff options
context:
space:
mode:
Diffstat (limited to 'src/analysis')
-rwxr-xr-xsrc/analysis/Makefile.am7
-rw-r--r--src/analysis/binary.h1
-rw-r--r--src/analysis/exporter-int.h70
-rw-r--r--src/analysis/exporter.c281
-rw-r--r--src/analysis/exporter.h70
-rw-r--r--src/analysis/line-int.h86
-rw-r--r--src/analysis/line.c717
-rw-r--r--src/analysis/line.h151
-rw-r--r--src/analysis/line_code.c334
-rw-r--r--src/analysis/line_code.h62
-rw-r--r--src/analysis/line_comment.c248
-rw-r--r--src/analysis/line_comment.h58
-rw-r--r--src/analysis/line_prologue.c202
-rw-r--r--src/analysis/line_prologue.h60
14 files changed, 0 insertions, 2347 deletions
diff --git a/src/analysis/Makefile.am b/src/analysis/Makefile.am
index 1c3950f..f58ddca 100755
--- a/src/analysis/Makefile.am
+++ b/src/analysis/Makefile.am
@@ -3,13 +3,6 @@ noinst_LTLIBRARIES = libanalysis.la
libanalysis_la_SOURCES = \
binary.h binary.c \
- exporter-int.h \
- exporter.h exporter.c \
- line-int.h \
- line.h line.c \
- line_code.h line_code.c \
- line_comment.h line_comment.c \
- line_prologue.h line_prologue.c \
roptions.h roptions.c \
routine.h routine.c \
type-int.h \
diff --git a/src/analysis/binary.h b/src/analysis/binary.h
index eb042c6..073c546 100644
--- a/src/analysis/binary.h
+++ b/src/analysis/binary.h
@@ -29,7 +29,6 @@
#include <stdbool.h>
-#include "line.h"
#include "../arch/processor.h"
#include "../common/xml.h"
#include "../format/executable.h"
diff --git a/src/analysis/exporter-int.h b/src/analysis/exporter-int.h
deleted file mode 100644
index ec75bcc..0000000
--- a/src/analysis/exporter-int.h
+++ /dev/null
@@ -1,70 +0,0 @@
-
-/* OpenIDA - Outil d'analyse de fichiers binaires
- * exporter-int.h - prototypes pour la traduction humaine des lignes de rendus
- *
- * Copyright (C) 2009-2010 Cyrille Bagard
- *
- * This file is part of OpenIDA.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#ifndef _ANALYSIS_EXPORTER_INT_H
-#define _ANALYSIS_EXPORTER_INT_H
-
-
-#include "exporter.h"
-
-
-
-/* Ajoute du texte simple à un fichier ouvert en écriture. */
-typedef void (* add_text_fc) (GContentExporter *, GRenderingOptions *, MainRendering, FILE *);
-
-/* Ajoute à un texte GTK le contenu de la ligne de rendu. */
-typedef void (* export_buffer_fc) (GContentExporter *, GBufferLine *, GRenderingOptions *);
-
-
-
-/* Exportation de contenu (instance) */
-struct _GContentExporter
-{
- GObject parent; /* A laisser en premier */
-
- add_text_fc add_text; /* Remplissage simple */
- export_buffer_fc export_buffer; /* Constitution du texte GLib */
-
-};
-
-
-/* Exportation de contenu (classe) */
-struct _GContentExporterClass
-{
- GObjectClass parent; /* A laisser en premier */
-
- PangoContext *context; /* Contexte graphique Pango */
- PangoAttrList *attribs[RTT_COUNT]; /* Décorateurs pour tampons */
-
-};
-
-
-/* Ajoute du texte simple à un fichier ouvert en écriture. */
-void g_content_exporter_insert_text(GContentExporter *, FILE *, const char *, size_t, RenderingTagType);
-
-/* Ajoute du texte à un tampon de code via l'instance spécifiée. */
-void g_content_exporter_insert_into_buffer(GContentExporter *, GBufferLine *, BufferLineColumn, const char *, size_t, RenderingTagType);
-
-
-
-#endif /* _ANALYSIS_EXPORTER_INT_H */
diff --git a/src/analysis/exporter.c b/src/analysis/exporter.c
deleted file mode 100644
index 40e9fe1..0000000
--- a/src/analysis/exporter.c
+++ /dev/null
@@ -1,281 +0,0 @@
-
-/* OpenIDA - Outil d'analyse de fichiers binaires
- * exporter.c - traduction humaine des lignes de rendus
- *
- * Copyright (C) 2009-2010 Cyrille Bagard
- *
- * This file is part of OpenIDA.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "exporter.h"
-
-
-#include "exporter-int.h"
-
-
-
-/* Indique le type défini pour une exportation de contenu. */
-G_DEFINE_TYPE(GContentExporter, g_content_exporter, G_TYPE_OBJECT);
-
-
-/******************************************************************************
-* *
-* Paramètres : klass = classe à initialiser. *
-* *
-* Description : Initialise la classe des lignes de représentation. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-static void g_content_exporter_class_init(GContentExporterClass *klass)
-{
- GdkScreen *screen; /* Ecran pour GDK */
- PangoFontDescription *font_desc; /* Police de caractère */
- PangoAttribute *attrib; /* Propriété de rendu */
-
- /* Exportation vers un tampon de code */
-
- screen = gdk_screen_get_default();
-
- font_desc = pango_font_description_from_string("mono 10");
-
- klass->context = gdk_pango_context_get_for_screen(screen);
-
- pango_context_set_font_description(klass->context, font_desc);
- pango_context_set_base_dir(klass->context, PANGO_DIRECTION_LTR);
- pango_context_set_language(klass->context, gtk_get_default_language());
-
- /* RTT_RAW */
-
- klass->attribs[RTT_RAW] = pango_attr_list_new();
-
- attrib = pango_attr_foreground_new(0, 0, 0);
- pango_attr_list_insert(klass->attribs[RTT_RAW], attrib);
-
- /* RTT_COMMENT */
-
- klass->attribs[RTT_COMMENT] = pango_attr_list_new();
-
- attrib = pango_attr_foreground_new(14335, 45311, 23551);
- pango_attr_list_insert(klass->attribs[RTT_COMMENT], attrib);
-
- /* RTT_RAW_CODE */
-
- klass->attribs[RTT_RAW_CODE] = pango_attr_list_new();
-
- attrib = pango_attr_foreground_new(48895, 48895, 48895);
- pango_attr_list_insert(klass->attribs[RTT_RAW_CODE], attrib);
-
- /* RTT_INSTRUCTION */
-
- klass->attribs[RTT_INSTRUCTION] = pango_attr_list_new();
-
- attrib = pango_attr_foreground_new(0, 0, 0);
- pango_attr_list_insert(klass->attribs[RTT_INSTRUCTION], attrib);
-
- /* RTT_IMMEDIATE */
-
- klass->attribs[RTT_IMMEDIATE] = pango_attr_list_new();
-
- attrib = pango_attr_foreground_new(41215, 8447, 61695);
- pango_attr_list_insert(klass->attribs[RTT_IMMEDIATE], attrib);
-
- /* RTT_REGISTER */
-
- klass->attribs[RTT_REGISTER] = pango_attr_list_new();
-
- //attrib = pango_attr_foreground_new(23551, 23551, 51455);
- attrib = pango_attr_foreground_new(16895, 16895, 53759);
- pango_attr_list_insert(klass->attribs[RTT_REGISTER], attrib);
-
- /* RTT_HOOK */
-
- klass->attribs[RTT_HOOK] = pango_attr_list_new();
-
- attrib = pango_attr_foreground_new(0, 0, 0);
- pango_attr_list_insert(klass->attribs[RTT_HOOK], attrib);
-
- attrib = pango_attr_weight_new(PANGO_WEIGHT_BOLD);
- pango_attr_list_insert(klass->attribs[RTT_HOOK], attrib);
-
- /* RTT_SIGNS */
-
- klass->attribs[RTT_SIGNS] = pango_attr_list_new();
-
- attrib = pango_attr_foreground_new(0, 0, 0);
- pango_attr_list_insert(klass->attribs[RTT_SIGNS], attrib);
-
- attrib = pango_attr_weight_new(PANGO_WEIGHT_SEMIBOLD);
- pango_attr_list_insert(klass->attribs[RTT_SIGNS], attrib);
-
- /* RTT_LTGT */
-
- klass->attribs[RTT_LTGT] = pango_attr_list_new();
-
- /* RTT_SECTION */
-
- klass->attribs[RTT_SECTION] = pango_attr_list_new();
-
- attrib = pango_attr_foreground_new(51200, 2560, 2560);
- pango_attr_list_insert(klass->attribs[RTT_SECTION], attrib);
-
- /*
- attrib = pango_attr_foreground_new(56832, 26880, 43008);
- pango_attr_list_insert(klass->attribs[RTT_SECTION], attrib);
-
- attrib = pango_attr_weight_new(PANGO_WEIGHT_BOLD);
- pango_attr_list_insert(klass->attribs[RTT_SECTION], attrib);
- */
-
- /* RTT_SEGMENT */
-
- klass->attribs[RTT_SEGMENT] = pango_attr_list_new();
-
- /* RTT_STRING */
-
- klass->attribs[RTT_STRING] = pango_attr_list_new();
-
- attrib = pango_attr_foreground_new(52224, 32256, 0);
- pango_attr_list_insert(klass->attribs[RTT_STRING], attrib);
-
- /* RTT_VAR_NAME */
-
- klass->attribs[RTT_VAR_NAME] = pango_attr_list_new();
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : exporter = instance à initialiser. *
-* *
-* Description : Initialise une instance de ligne de représentation. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-static void g_content_exporter_init(GContentExporter *exporter)
-{
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : exporter = instance sachant exporter son contenu. *
-* stream = flux ouvert en écriture. *
-* text = texte à insérer dans l'existant. *
-* length = taille du texte à traiter. *
-* tag = type de décorateur à utiliser. *
-* *
-* Description : Ajoute du texte simple à un fichier ouvert en écriture. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-void g_content_exporter_insert_text(GContentExporter *exporter, FILE *stream, const char *text, size_t length, RenderingTagType tag)
-{
- size_t ret; /* Quantité d'octets écrite */
-
- ret = fwrite(text, sizeof(char), length, stream);
- if (ret != length) perror("fwrite");
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : exporter = instance sachant exporter son contenu. *
-* buffer = espace où placer ledit contenu. *
-* column = colonne de la ligne visée par l'insertion. *
-* text = texte à insérer dans l'existant. *
-* length = taille du texte à traiter. *
-* type = type de décorateur à utiliser. *
-* *
-* Description : Ajoute du texte à un tampon de code via l'instance spécifiée.*
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-void g_content_exporter_insert_into_buffer(GContentExporter *exporter, GBufferLine *buffer, BufferLineColumn column, const char *text, size_t length, RenderingTagType type)
-{
- GContentExporterClass *class; /* Stockage de briques de base */
- GBufferSegment *segment; /* Portion de texte à ajouter */
-
- class = G_CONTENT_EXPORTER_GET_CLASS(exporter);
-
- segment = g_buffer_segment_new(class->context, class->attribs[type], text, length);
- g_buffer_line_add_segment(buffer, column, segment);
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : exporter = instance sachant exporter son contenu. *
-* options = options de rendu. *
-* rendering = support effectif final des lignes de code. *
-* stream = flux ouvert en écriture. *
-* *
-* Description : Ajoute du texte simple à un fichier ouvert en écriture. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-void g_content_exporter_add_text(GContentExporter *exporter, GRenderingOptions *options, MainRendering rendering, FILE *stream)
-{
- if (exporter->add_text != NULL)
- exporter->add_text(exporter, options, rendering, stream);
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : exporter = instance sachant exporter son contenu. *
-* line = espace où placer ledit contenu. *
-* options = options de rendu. *
-* *
-* Description : Ajoute à un tampon GLib le contenu de l'instance spécifiée. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-void g_content_exporter_to_buffer(GContentExporter *exporter, GBufferLine *line, GRenderingOptions *options)
-{
- if (exporter->export_buffer != NULL)
- exporter->export_buffer(exporter, line, options);
-
-}
diff --git a/src/analysis/exporter.h b/src/analysis/exporter.h
deleted file mode 100644
index 1c87c2d..0000000
--- a/src/analysis/exporter.h
+++ /dev/null
@@ -1,70 +0,0 @@
-
-/* OpenIDA - Outil d'analyse de fichiers binaires
- * exporter.h - prototypes pour la traduction humaine des lignes de rendus
- *
- * Copyright (C) 2009-2010 Cyrille Bagard
- *
- * This file is part of OpenIDA.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#ifndef _ANALYSIS_EXPORTER_H
-#define _ANALYSIS_EXPORTER_H
-
-
-#include <glib-object.h>
-#include <stdio.h>
-#include <gtk/gtktextbuffer.h>
-
-
-#include "roptions.h"
-#include "../glibext/gbufferline.h"
-
-
-
-#define G_TYPE_CONTENT_EXPORTER g_content_exporter_get_type()
-#define G_CONTENT_EXPORTER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), g_content_exporter_get_type(), GContentExporter))
-#define G_IS_CONTENT_EXPORTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), g_content_exporter_get_type()))
-#define G_CONTENT_EXPORTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), G_TYPE_CONTENT_EXPORTER, GContentExporterClass))
-#define G_IS_CONTENT_EXPORTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), G_TYPE_CONTENT_EXPORTER))
-#define G_CONTENT_EXPORTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), G_TYPE_CONTENT_EXPORTER, GContentExporterClass))
-
-
-/* Exportation de contenu (instance) */
-typedef struct _GContentExporter GContentExporter;
-
-/* Exportation de contenu (classe) */
-typedef struct _GContentExporterClass GContentExporterClass;
-
-
-
-/* Indique le type défini pour une exportation de contenu. */
-GType g_content_exporter_get_type(void);
-
-/* Définit et/ou renvoie le singleton pour les marques de texte. */
-GtkTextTagTable *_get_gtk_tag_table(GtkTextTagTable *);
-
-#define get_gtk_tag_table() _get_gtk_tag_table(NULL)
-
-/* Ajoute du texte simple à un fichier ouvert en écriture. */
-void g_content_exporter_add_text(GContentExporter *, GRenderingOptions *, MainRendering, FILE *);
-
-/* Ajoute à un tampon GLib le contenu de l'instance spécifiée. */
-void g_content_exporter_to_buffer(GContentExporter *, GBufferLine *, GRenderingOptions *);
-
-
-
-#endif /* _ANALYSIS_EXPORTER_H */
diff --git a/src/analysis/line-int.h b/src/analysis/line-int.h
deleted file mode 100644
index 5027a1a..0000000
--- a/src/analysis/line-int.h
+++ /dev/null
@@ -1,86 +0,0 @@
-
-/* OpenIDA - Outil d'analyse de fichiers binaires
- * line-int.h - prototypes pour l'interface des représentations des lignes de rendu
- *
- * Copyright (C) 2009-2010 Cyrille Bagard
- *
- * This file is part of OpenIDA.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#ifndef _ANALYSIS_LINE_INT_H
-#define _ANALYSIS_LINE_INT_H
-
-
-#include "line.h"
-
-
-#include "exporter-int.h"
-#include "../common/dllist.h"
-
-
-
-/* Ligne de représentation générique (instance) */
-struct _GRenderingLine
-{
- GContentExporter parent; /* A laisser en premier */
-
- DL_LIST_ITEM(link); /* Maillon de liste chaînée */
-
- vmpa_t offset; /* Position en mémoire/physique*/
- off_t length; /* Nombre d'adresses associées */
-
- char *comment; /* Texte à afficher */
-
- RenderingLineType type; /* Type de représentation */
- RenderingLineFlag flags; /* Extension d'informations */
-
- GRenderingLine **from; /* Origines des références */
- size_t from_count; /* Nombre de ces origines */
- GRenderingLine **to; /* Eventuelles lignes visées */
- InstructionLinkType *links_type; /* Type des liens de dest. */
- size_t to_count; /* Nombre de ces destinations */
-
-};
-
-
-#define lines_list_last(head) dl_list_last(head, GRenderingLine, link)
-#define lines_list_next_iter(iter, head) dl_list_next_iter(iter, head, GRenderingLine, link)
-#define lines_list_prev_iter(iter, head) dl_list_prev_iter(iter, head, GRenderingLine, link)
-#define lines_list_add_before(new, head, pos) dl_list_add_before(new, head, pos, link)
-#define lines_list_add_tail(new, head) dl_list_add_tail(new, head, GRenderingLine, link)
-#define lines_list_del(item, head) dl_list_del(item, head, GRenderingLine, link)
-#define lines_list_merge(head1, head2) dl_list_merge(head1, head2, GRenderingLine, link)
-#define lines_list_for_each(pos, head) dl_list_for_each(pos, head, GRenderingLine, link)
-#define lines_list_for_each_safe(pos, head, next) dl_list_for_each_safe(pos, head, next, GRenderingLine, link)
-
-
-/* Ligne de représentation générique (classe) */
-struct _GRenderingLineClass
-{
- GContentExporterClass parent; /* A laisser en premier */
-
- GtkStyle *style; /* Style GTK commun aux lignes */
-
- /* Signaux */
-
- void (* rendering_line_flags_changed) (GRenderingLine *);
-
-};
-
-
-
-#endif /* _ANALYSIS_LINE_INT_H */
diff --git a/src/analysis/line.c b/src/analysis/line.c
deleted file mode 100644
index 560b683..0000000
--- a/src/analysis/line.c
+++ /dev/null
@@ -1,717 +0,0 @@
-
-/* OpenIDA - Outil d'analyse de fichiers binaires
- * line.c - représentation des lignes de rendu
- *
- * Copyright (C) 2009-2010 Cyrille Bagard
- *
- * This file is part of OpenIDA.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "line.h"
-
-
-#include "line-int.h"
-
-
-
-#include <malloc.h>
-#include <stdio.h>
-#include <string.h>
-#include <sys/param.h>
-
-
-#include "line_code.h"
-#include "../common/dllist.h"
-
-
-
-/* ------------------------ TRAITEMENT INDIVIDUEL DES LIGNES ------------------------ */
-
-
-/* Initialise la classe des lignes de représentation. */
-static void g_rendering_line_class_init(GRenderingLineClass *);
-
-/* Initialise une instance de ligne de représentation. */
-static void g_rendering_line_init(GRenderingLine *);
-
-/* Etablit un lien entre deux lignes de représentation. */
-static void g_rendering_line_add_link_reference(GRenderingLine *, GRenderingLine *);
-
-
-
-/* ---------------------------------------------------------------------------------- */
-/* TRAITEMENT INDIVIDUEL DES LIGNES */
-/* ---------------------------------------------------------------------------------- */
-
-
-/* Indique le type définit pour une ligne de représentation. */
-G_DEFINE_TYPE(GRenderingLine, g_rendering_line, G_TYPE_CONTENT_EXPORTER);
-
-
-/******************************************************************************
-* *
-* Paramètres : klass = classe à initialiser. *
-* *
-* Description : Initialise la classe des lignes de représentation. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-static void g_rendering_line_class_init(GRenderingLineClass *klass)
-{
- klass->style = gtk_style_new();
-
- g_signal_new("rendering-line-flags-changed",
- G_TYPE_RENDERING_LINE,
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET(GRenderingLineClass, rendering_line_flags_changed),
- NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE, 0, NULL);
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : line = instance à initialiser. *
-* *
-* Description : Initialise une instance de ligne de représentation. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-static void g_rendering_line_init(GRenderingLine *line)
-{
- DL_LIST_ITEM_INIT(&line->link);
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : line = ligne dont les informations sont à consulter. *
-* *
-* Description : Fournit l'adresse physique ou en mémoire d'une ligne. *
-* *
-* Retour : Position physique ou en mémoire associée à la ligne. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-vmpa_t get_rendering_line_address(const GRenderingLine *line)
-{
- return line->offset;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : line = ligne dont les informations sont à consulter. *
-* *
-* Description : Fournit la longueur du code représenté par une ligne. *
-* *
-* Retour : Taille du code représenté (0 si aucun). *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-off_t get_rendering_line_length(const GRenderingLine *line)
-{
- return line->length;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : line = ligne dont les informations sont à consulter. *
-* *
-* Description : Fournit le commentaire associé à la ligne s'il existe. *
-* *
-* Retour : Chaîne de caractères ou NULL. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-const char *get_rendering_line_comment(const GRenderingLine *line)
-{
- return line->comment;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : line = ligne dont les informations sont à consulter. *
-* comment = nouveau commentaire à insérer ou NULL. *
-* *
-* Description : Définit ou supprime un commentaire pour la ligne indiquée. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-void set_rendering_line_comment(GRenderingLine *line, const char *comment)
-{
- if (line->comment != NULL)
- free(line->comment);
-
- if (comment == NULL) line->comment = NULL;
- else line->comment = strdup(comment);
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : line = ligne dont les informations sont à consulter. *
-* *
-* Description : Fournit le type d'une ligne. *
-* *
-* Retour : Type de la ligne fournie. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-RenderingLineType get_rendering_line_type(const GRenderingLine *line)
-{
- return line->type;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : line = ligne dont les informations sont à mettre à jour. *
-* flag = extension d'information à ajouter. *
-* *
-* Description : Ajoute une information supplémentaire à une ligne. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-void g_rendering_line_add_flag(GRenderingLine *line, RenderingLineFlag flag)
-{
- line->flags |= flag;
-
- g_signal_emit_by_name(line, "rendering-line-flags-changed");
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : line = ligne dont les informations sont à mettre à jour. *
-* flag = extension d'information à retirer. *
-* *
-* Description : Retire une information supplémentaire sur d'une ligne. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-void g_rendering_line_remove_flag(GRenderingLine *line, RenderingLineFlag flag)
-{
- line->flags &= ~flag;
-
- g_signal_emit_by_name(line, "rendering-line-flags-changed");
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : line = ligne dont les informations sont à mettre à jour. *
-* flag = extension d'information à ajouter ou retirer. *
-* *
-* Description : Bascule l'état d'une information sur d'une ligne. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-void g_rendering_line_toggle_flag(GRenderingLine *line, RenderingLineFlag flag)
-{
- line->flags = (line->flags & ~flag) | (line->flags ^ flag);
-
- g_signal_emit_by_name(line, "rendering-line-flags-changed");
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : line = ligne dont les informations sont à consulter. *
-* *
-* Description : Fournit les informations supplémentaires d'une ligne. *
-* *
-* Retour : Extensions d'informations courantes. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-RenderingLineFlag g_rendering_line_get_flags(const GRenderingLine *line)
-{
- return line->flags;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : line = ligne dont les informations sont à consulter. *
-* src = ligne visée par la liaison (côté origine). *
-* *
-* Description : Etablit un lien entre deux lignes de représentation. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-void g_rendering_line_add_link_reference(GRenderingLine *line, GRenderingLine *src)
-{
- line->from = (GRenderingLine **)realloc(line->from, ++line->from_count * sizeof(GRenderingLine *));
-
- line->from[line->from_count - 1] = src;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : line = ligne dont les informations sont à consulter. *
-* dest = ligne visée par la liaison (côté destination). *
-* type = type de lien à construire. *
-* *
-* Description : Etablit un lien entre deux lignes de représentation. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-void g_rendering_line_link_with(GRenderingLine *line, GRenderingLine *dest, InstructionLinkType type)
-{
- g_rendering_line_add_link_reference(dest, line);
-
- line->to_count++;
-
- line->to = (GRenderingLine **)realloc(line->to, line->to_count * sizeof(GRenderingLine *));
- line->links_type = (InstructionLinkType *)realloc(line->links_type, line->to_count * sizeof(InstructionLinkType));
-
- line->to[line->to_count - 1] = dest;
- line->links_type[line->to_count - 1] = type;
-
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : line = ligne dont les informations sont à consulter. *
-* *
-* Description : Indique si la ligne a une ou plusieurs origines. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-bool g_rendering_line_has_sources(const GRenderingLine *line)
-{
- return (line->from_count > 0);
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : line = ligne dont les informations sont à consulter. *
-* *
-* Description : Indique si la ligne a une suite autre que la ligne suivante. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-bool g_rendering_line_has_destinations(const GRenderingLine *line)
-{
- return (line->to_count > 1 || (line->to_count == 1 && line->links_type[0] != ILT_CALL));
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : line = ligne dont les informations sont à consulter. *
-* lines = liste des lignes de destination. [OUT] *
-* types = liste des types de liens présents. [OUT] *
-* *
-* Description : Fournit la ligne de code de destination du lien de la ligne. *
-* *
-* Retour : Ligne à l'autre extrémité du lien. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-size_t g_rendering_line_get_destinations(const GRenderingLine *line, GRenderingLine ***lines, InstructionLinkType **types)
-{
- *lines = line->to;
- *types = line->links_type;
-
- return line->to_count;
-
-}
-
-
-
-/* ---------------------------------------------------------------------------------- */
-/* TRAITEMENT DES LIGNES PAR GROUPE */
-/* ---------------------------------------------------------------------------------- */
-
-
-/******************************************************************************
-* *
-* Paramètres : lines = liste de lignes à compléter, ou NULL. *
-* line = nouvelle ligne à intégrer à l'ensemble. *
-* *
-* Description : Ajoute une ligne à un ensemble existant. *
-* *
-* Retour : - *
-* *
-* Remarques : La ligne est considérée comme étant insérée au bon endroit. *
-* *
-******************************************************************************/
-
-void g_rendering_line_add_to_lines(GRenderingLine **lines, GRenderingLine *line)
-{
- lines_list_add_tail(line, lines);
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : lines = liste de lignes à compléter, ou NULL. *
-* line = nouvelle ligne à intégrer à l'ensemble. *
-* first = position de la ligne en cas d'adresse partagée. *
-* *
-* Description : Insère une ligne dans un ensemble existant. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-void g_rendering_line_insert_into_lines(GRenderingLine **lines, GRenderingLine *line, bool first)
-{
- GRenderingLine *iter; /* Boucle de parcours */
-
- lines_list_for_each(iter, *lines)
- {
- if (first && iter->offset >= line->offset) break;
- else if (!first)
- {
- /* TODO */;
- }
-
- }
-
- if (iter == NULL)
- lines_list_add_tail(line, lines);
-
- else
- {
- if (first)
- lines_list_add_before(line, lines, iter);
- else
- /* TODO */;
- }
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : lines = liste de lignes à compléter, ou NULL. *
-* new = nouvelles lignes à intégrer à l'ensemble. *
-* *
-* Description : Insère des lignes dans un ensemble existant. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-void g_rendering_line_insert_lines(GRenderingLine **lines, GRenderingLine **new)
-{
- GRenderingLine *iter; /* Boucle de parcours */
- GRenderingLine *next; /* Ligne suivante à traiter */
-
- lines_list_for_each_safe(iter, new, next)
- {
- lines_list_del(iter, new);
- g_rendering_line_insert_into_lines(lines, iter, true);
- }
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : lines = liste de lignes à traiter. *
-* start = borne inférieure de l'intervalle (incluse). *
-* end = borne supérieure de l'intervalle (incluse). *
-* *
-* Description : Supprime une série de lignes comprises dans un intervalle. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-void g_rendering_line_remove_range(GRenderingLine **lines, vmpa_t start, vmpa_t end)
-{
- GRenderingLine *first; /* Première ligne à traiter */
- GRenderingLine *last; /* Dernière ligne à traiter */
- GRenderingLine *iter; /* Boucle de parcours */
- GRenderingLine *next; /* Ligne suivante à traiter */
-
- first = g_rendering_line_find_by_address(*lines, NULL, start);
- last = g_rendering_line_find_by_address(*lines, NULL, end);
-
- for (iter = first; iter != NULL; iter = next)
- {
- next = g_rendering_line_get_next_iter(*lines, iter, last);
-
- lines_list_del(iter, lines);
- g_object_unref(G_OBJECT(iter));
-
- }
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : lines1 = première liste à fusionner. *
-* lines2 = seconde liste à intégrer à la première. *
-* *
-* Description : Fusionne deux listes de lignes de rendu. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-void g_rendering_line_merge(GRenderingLine **lines1, GRenderingLine **lines2)
-{
- lines_list_merge(lines1, lines2);
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : lines = liste de lignes de représentation à actualiser. *
-* : iter = position actuelle dans la liste. *
-* last = dernière élément imposé du parcours ou NULL. *
-* *
-* Description : Fournit l'élement suivant un autre pour un parcours. *
-* *
-* Retour : Elément suivant ou NULL si aucun. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GRenderingLine *g_rendering_line_get_next_iter(GRenderingLine *lines, const GRenderingLine *iter, const GRenderingLine *last)
-{
- GRenderingLine *result; /* Elément suivant à renvoyer */
-
- if (iter == NULL) iter = lines;
-
- if (iter == last) result = NULL;
- else result = lines_list_next_iter(iter, lines);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : lines = liste de lignes de représentation à actualiser. *
-* : iter = position actuelle dans la liste. *
-* last = dernière élément imposé du parcours ou NULL. *
-* *
-* Description : Fournit l'élement précédant un autre pour un parcours. *
-* *
-* Retour : Elément suivant ou NULL si aucun. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GRenderingLine *g_rendering_line_get_prev_iter(GRenderingLine *lines, const GRenderingLine *iter, const GRenderingLine *last)
-{
- GRenderingLine *result; /* Elément suivant à renvoyer */
-
- if (iter == NULL)
- {
- if (last != NULL) iter = last;
- else iter = lines_list_last(lines);
- }
-
- if (iter == lines) result = NULL;
- else result = lines_list_prev_iter(iter, lines);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : lines = liste de lignes de représentation à actualiser. *
-* last = dernière élément imposé du parcours ou NULL. *
-* *
-* Description : Fournit le dernier élément d'une liste de lignes. *
-* *
-* Retour : Dernier élément de la liste. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GRenderingLine *g_rendering_line_get_last_iter(GRenderingLine *lines, GRenderingLine *last)
-{
- return (last != NULL ? last : lines_list_last(lines));
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : lines = liste de lignes à parcourir. *
-* last = dernière élément imposé du parcours ou NULL. *
-* addr = position en mémoire ou physique à chercher. *
-* *
-* Description : Recherche une ligne d'après sa position en mémoire/physique. *
-* *
-* Retour : Ligne représentant l'adresse donnée, NULL si aucune trouvée. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GRenderingLine *g_rendering_line_find_by_address(GRenderingLine *lines, const GRenderingLine *last, vmpa_t addr)
-{
- GRenderingLine *result; /* Trouvaille à retourner */
-
- lines_list_for_each(result, lines)
- {
- if (result->offset <= addr && addr < (result->offset + result->length)) break;
-
- if (result == last)
- {
- result = NULL;
- break;
- }
-
- }
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : start = première ligne de l'ensemble à parcourir. *
-* last = dernière élément imposé du parcours ou NULL. *
-* *
-* Description : Donne la première ligne de code correspondant à une adresse. *
-* *
-* Retour : Ligne de code pour l'adresse donnée, NULL si aucune trouvée. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GRenderingLine *g_rendering_line_loop_for_code(GRenderingLine *start, const GRenderingLine *last)
-{
- GRenderingLine *result; /* Trouvaille à retourner */
- vmpa_t reference; /* Adresse à conserver */
-
- result = start;
- reference = start->offset;
-
- lines_list_for_each(result, start)
- {
- if (G_IS_CODE_LINE(result)) break;
-
- if (result->offset != reference)
- {
- result = NULL;
- break;
- }
-
- if (result == last)
- {
- result = NULL;
- break;
- }
-
- }
-
- return result;
-
-}
diff --git a/src/analysis/line.h b/src/analysis/line.h
deleted file mode 100644
index 39b3f24..0000000
--- a/src/analysis/line.h
+++ /dev/null
@@ -1,151 +0,0 @@
-
-/* OpenIDA - Outil d'analyse de fichiers binaires
- * line.h - prototypes pour la représentation des lignes de rendu
- *
- * Copyright (C) 2009-2010 Cyrille Bagard
- *
- * This file is part of OpenIDA.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#ifndef _ANALYSIS_LINE_H
-#define _ANALYSIS_LINE_H
-
-
-#include <gtk/gtk.h>
-
-
-#include "roptions.h"
-
-
-
-/* ------------------------ TRAITEMENT INDIVIDUEL DES LIGNES ------------------------ */
-
-
-/* Définitions des types de ligne */
-typedef enum _RenderingLineType
-{
- RLT_PROLOGUE, /* Description de l'analyse */
- RLT_PROTOTYPE, /* Prototype de fonction */
- RLT_CODE /* Code en langage machine */
-
-} RenderingLineType;
-
-/* Image à afficher en marge de ligne */
-typedef enum _RenderingLineFlag
-{
- RLF_NONE = (0 << 0), /* Ligne commune */
- RLF_ENTRY_POINT = (1 << 0), /* Point d'entrée du prgm. */
- RLF_BREAK_POINT = (1 << 1), /* Point d'arrêt */
- RLF_RUNNING_BP = (1 << 2) /* Point d'arrêt activé */
-
-} RenderingLineFlag;
-
-
-#define G_TYPE_RENDERING_LINE g_rendering_line_get_type()
-#define G_RENDERING_LINE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), g_rendering_line_get_type(), GRenderingLine))
-#define G_IS_RENDERING_LINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), g_rendering_line_get_type()))
-#define G_RENDERING_LINE_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE((inst), g_rendering_line_get_type(), GRenderingLineIface))
-#define G_RENDERING_LINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), G_TYPE_RENDERING_LINE, GRenderingLineClass))
-
-
-/* Ligne de représentation générique (instance) */
-typedef struct _GRenderingLine GRenderingLine;
-
-/* Ligne de représentation générique (classe) */
-typedef struct _GRenderingLineClass GRenderingLineClass;
-
-
-/* Indique le type définit pour une ligne de représentation. */
-GType g_rendering_line_get_type(void);
-
-/* Fournit l'adresse physique ou en mémoire d'une ligne. */
-vmpa_t get_rendering_line_address(const GRenderingLine *);
-
-/* Fournit la longueur du code représenté par une ligne. */
-off_t get_rendering_line_length(const GRenderingLine *);
-
-/* Fournit le commentaire associé à la ligne s'il existe. */
-const char *get_rendering_line_comment(const GRenderingLine *);
-
-/* Définit ou supprime un commentaire pour la ligne indiquée. */
-void set_rendering_line_comment(GRenderingLine *, const char *);
-
-/* Fournit le type d'une ligne. */
-RenderingLineType get_rendering_line_type(const GRenderingLine *);
-
-/* Ajoute une information supplémentaire à une ligne. */
-void g_rendering_line_add_flag(GRenderingLine *, RenderingLineFlag);
-
-/* Retire une information supplémentaire d'une ligne. */
-void g_rendering_line_remove_flag(GRenderingLine *, RenderingLineFlag);
-
-/* Bascule l'état d'une information sur d'une ligne. */
-void g_rendering_line_toggle_flag(GRenderingLine *, RenderingLineFlag);
-
-/* Fournit les informations supplémentaires d'une ligne. */
-RenderingLineFlag g_rendering_line_get_flags(const GRenderingLine *);
-
-/* Etablit un lien entre deux lignes de représentation. */
-void g_rendering_line_link_with(GRenderingLine *, GRenderingLine *, InstructionLinkType);
-
-/* Indique si la ligne a une ou plusieurs origines. */
-bool g_rendering_line_has_sources(const GRenderingLine *);
-
-/* Indique si la ligne a une suite autre que la ligne suivante. */
-bool g_rendering_line_has_destinations(const GRenderingLine *);
-
-/* Fournit la ligne de code de destination du lien de la ligne. */
-size_t g_rendering_line_get_destinations(const GRenderingLine *, GRenderingLine ***, InstructionLinkType **);
-
-
-
-/* ------------------------ TRAITEMENT DES LIGNES PAR GROUPE ------------------------ */
-
-
-/* Ajoute une ligne à un ensemble existant. */
-void g_rendering_line_add_to_lines(GRenderingLine **, GRenderingLine *);
-
-/* Insère une ligne dans un ensemble existant. */
-void g_rendering_line_insert_into_lines(GRenderingLine **, GRenderingLine *, bool);
-
-/* Insère des lignes dans un ensemble existant. */
-void g_rendering_line_insert_lines(GRenderingLine **, GRenderingLine **);
-
-/* Supprime une série de lignes comprises dans un intervalle. */
-void g_rendering_line_remove_range(GRenderingLine **, vmpa_t, vmpa_t);
-
-/* Fusionne deux listes de lignes de rendu. */
-void g_rendering_line_merge(GRenderingLine **, GRenderingLine **);
-
-/* Fournit l'élement suivant un autre pour un parcours. */
-GRenderingLine *g_rendering_line_get_next_iter(GRenderingLine *, const GRenderingLine *, const GRenderingLine *);
-
-/* Fournit l'élement précédant un autre pour un parcours. */
-GRenderingLine *g_rendering_line_get_prev_iter(GRenderingLine *, const GRenderingLine *, const GRenderingLine *);
-
-/* Fournit le dernier élément d'une liste de lignes. */
-GRenderingLine *g_rendering_line_get_last_iter(GRenderingLine *, GRenderingLine *);
-
-/* Recherche une ligne d'après sa position en mémoire/physique. */
-GRenderingLine *g_rendering_line_find_by_address(GRenderingLine *, const GRenderingLine *, vmpa_t);
-
-/* Donne la première ligne de code correspondant à une adresse. */
-GRenderingLine *g_rendering_line_loop_for_code(GRenderingLine *, const GRenderingLine *);
-
-
-
-#endif /* _ANALYSIS_LINE_H */
diff --git a/src/analysis/line_code.c b/src/analysis/line_code.c
deleted file mode 100644
index 6a1ed51..0000000
--- a/src/analysis/line_code.c
+++ /dev/null
@@ -1,334 +0,0 @@
-
-/* OpenIDA - Outil d'analyse de fichiers binaires
- * line_code.c - représentation des lignes de code binaire.
- *
- * Copyright (C) 2009-2010 Cyrille Bagard
- *
- * This file is part of OpenIDA.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "line_code.h"
-
-
-#include <malloc.h>
-#include <string.h>
-
-
-#include "line-int.h"
-#include "../format/format.h"
-
-
-
-/* Ligne de représentation de code binaire (instance) */
-struct _GCodeLine
-{
- GRenderingLine parent; /* Instance parente */
-
- GArchInstruction *instr; /* Instruction représentée */
- const GRenderingOptions *options; /* Options de représentation */
-
-};
-
-
-/* Ligne de représentation de code binaire (classe) */
-struct _GCodeLineClass
-{
- GRenderingLineClass parent; /* Classe parente */
-
-};
-
-
-/* Initialise la classe des lignes de code binaire. */
-static void g_code_line_class_init(GCodeLineClass *);
-
-/* Initialise la classe des lignes de code binaire. */
-static void g_code_line_init(GCodeLine *);
-
-/* Ajoute du texte simple à un fichier ouvert en écriture. */
-static void g_code_line_add_text(GCodeLine *, GRenderingOptions *, MainRendering, FILE *);
-
-/* Ajoute à un tampon GLib le contenu de l'instance spécifiée. */
-static void g_code_line_to_buffer(GCodeLine *, GBufferLine *, GRenderingOptions *);
-
-
-
-/* Indique le type définit par la GLib pour la ligne. */
-G_DEFINE_TYPE(GCodeLine, g_code_line, G_TYPE_RENDERING_LINE);
-
-
-
-/******************************************************************************
-* *
-* Paramètres : klass = classe à initialiser. *
-* *
-* Description : Initialise la classe des lignes de code binaire. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-static void g_code_line_class_init(GCodeLineClass *klass)
-{
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : line = instance à initialiser. *
-* *
-* Description : Initialise la classe des lignes de code binaire. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-static void g_code_line_init(GCodeLine *line)
-{
- GContentExporter *exporter_parent; /* Instance parente #1 */
- GRenderingLine *line_parent; /* Instance parente #2 */
-
- exporter_parent = G_CONTENT_EXPORTER(line);
-
- exporter_parent->add_text = (add_text_fc)g_code_line_add_text;
- exporter_parent->export_buffer = (export_buffer_fc)g_code_line_to_buffer;
-
- line_parent = G_RENDERING_LINE(line);
-
- line_parent->type = RLT_CODE;
-
-}
-
-
-
-/******************************************************************************
-* *
-* Paramètres : line = ligne de représentation à représenter. *
-* options = options de rendu. *
-* rendering = support effectif final des lignes de code. *
-* stream = flux ouvert en écriture. *
-* *
-* Description : Ajoute du texte simple à un fichier ouvert en écriture. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-static void g_code_line_add_text(GCodeLine *line, GRenderingOptions *options, MainRendering rendering, FILE *stream)
-{
- GContentExporter *exporter; /* Autre vision de la ligne #1 */
- GRenderingLine *basic; /* Autre vision de la ligne #2 */
- bool show_address; /* Affichage de l'adresse ? */
- bool show_code; /* Affichage du code brut ? */
- MemoryDataSize msize; /* Taille du bus d'adresses */
- char address[VMPA_MAX_SIZE]; /* Adresse au format texte */
- size_t len; /* Taille de l'élément inséré */
- const bin_t *content; /* Contenu binaire global */
- off_t bin_offset; /* Début de l'instruction */
- off_t bin_len; /* Taille d'instruction */
- char *bin_code; /* Tampon du code binaire */
- off_t i; /* Boucle de parcours */
-
- exporter = G_CONTENT_EXPORTER(line);
- basic = G_RENDERING_LINE(line);
-
- show_address = g_rendering_options_has_to_show_address(options, rendering);
- show_code = g_rendering_options_has_to_show_code(options, rendering);
-
- /* Eventuelle adresse virtuelle ou physique */
-
- if (show_address)
- {
- msize = g_arch_processor_get_memory_size(g_rendering_options_get_processor(options));
-
- len = vmpa_to_string(G_RENDERING_LINE(line)->offset, msize, address);
-
- g_content_exporter_insert_text(exporter, stream, address, len, RTT_NONE);
- g_content_exporter_insert_text(exporter, stream, "\t", 1, RTT_NONE);
-
- }
-
- /* Eventuel code brut */
-
- if (show_code)
- {
- content = g_binary_format_get_content(G_BIN_FORMAT(g_rendering_options_get_format(options)), NULL);
- g_arch_instruction_get_location(line->instr, &bin_offset, &bin_len, NULL);
-
- bin_code = (char *)calloc(bin_len * 3, sizeof(char));
-
- for (i = 0; i < bin_len; i++)
- {
- if ((i + 1) < bin_len)
- snprintf(&bin_code[i * (2 + 1)], 4, "%02hhx ", content[bin_offset + i]);
- else
- snprintf(&bin_code[i * (2 + 1)], 3, "%02hhx", content[bin_offset + i]);
- }
-
- g_content_exporter_insert_text(exporter, stream, bin_code, bin_len * 3 - 1, RTT_RAW_CODE);
-
- free(bin_code);
-
- g_content_exporter_insert_text(exporter, stream, "\t", 1, RTT_NONE);
-
- }
-
- /* Instruction proprement dite */
-
- g_content_exporter_add_text(G_CONTENT_EXPORTER(line->instr), options, rendering, stream);
-
- /* Commentaire ? */
-
- if (basic->comment != NULL)
- {
- g_content_exporter_insert_text(exporter, stream, "\t", 1, RTT_NONE);
- g_content_exporter_insert_text(exporter, stream, "; ", 2, RTT_COMMENT);
- g_content_exporter_insert_text(exporter, stream, basic->comment,
- strlen(basic->comment), RTT_COMMENT);
- }
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : line = ligne de représentation à représenter. *
-* buffer = espace où placer ledit contenu. *
-* options = options de rendu. *
-* *
-* Description : Ajoute à un tampon GLib le contenu de l'instance spécifiée. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-static void g_code_line_to_buffer(GCodeLine *line, GBufferLine *buffer, GRenderingOptions *options)
-{
- GContentExporter *exporter; /* Autre vision de la ligne #1 */
- GRenderingLine *basic; /* Autre vision de la ligne #2 */
- MemoryDataSize msize; /* Taille du bus d'adresses */
- char address[VMPA_MAX_SIZE]; /* Adresse au format texte */
- size_t len; /* Taille de l'élément inséré */
- const bin_t *content; /* Contenu binaire global */
- off_t bin_offset; /* Début de l'instruction */
- off_t bin_len; /* Taille d'instruction */
- char *bin_code; /* Tampon du code binaire */
- off_t i; /* Boucle de parcours */
-
- exporter = G_CONTENT_EXPORTER(line);
- basic = G_RENDERING_LINE(line);
-
- /* Eventuelle adresse virtuelle ou physique */
-
- msize = g_arch_processor_get_memory_size(g_rendering_options_get_processor(line->options));
-
- len = vmpa_to_string(G_RENDERING_LINE(line)->offset, msize, address);
-
- g_content_exporter_insert_into_buffer(exporter, buffer, BLC_ADDRESS, address, len, RTT_RAW);
-
- /* Eventuel code brut */
-
- content = g_binary_format_get_content(G_BIN_FORMAT(g_rendering_options_get_format(line->options)), NULL);
- g_arch_instruction_get_location(line->instr, &bin_offset, &bin_len, NULL);
-
- bin_code = (char *)calloc(bin_len * 3, sizeof(char));
-
- for (i = 0; i < bin_len; i++)
- {
- if ((i + 1) < bin_len)
- snprintf(&bin_code[i * (2 + 1)], 4, "%02hhx ", content[bin_offset + i]);
- else
- snprintf(&bin_code[i * (2 + 1)], 3, "%02hhx", content[bin_offset + i]);
- }
-
- g_content_exporter_insert_into_buffer(exporter, buffer, BLC_BINARY,
- bin_code, bin_len * 3 - 1, RTT_RAW_CODE);
-
- free(bin_code);
-
- /* Instruction proprement dite */
-
- g_content_exporter_to_buffer(G_CONTENT_EXPORTER(line->instr), buffer, options);
-
- /* Commentaire ? */
-
- if (basic->comment != NULL)
- {
- g_content_exporter_insert_into_buffer(exporter, buffer, BLC_COMMENTS, "; ", 2, RTT_COMMENT);
- g_content_exporter_insert_into_buffer(exporter, buffer, BLC_COMMENTS,
- basic->comment, strlen(basic->comment), RTT_COMMENT);
- }
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : offset = emplacement physique ou en mémoire. *
-* instr = instruction à représenter. *
-* options = paramétrage du rendu. *
-* *
-* Description : Crée une ligne de code binaire. *
-* *
-* Retour : Adresse de la structure mise en place. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GRenderingLine *g_code_line_new(uint64_t offset, GArchInstruction *instr, const GRenderingOptions *options)
-{
- GCodeLine *result; /* Structure à retourner */
-
- result = g_object_new(G_TYPE_CODE_LINE, NULL);
-
- G_RENDERING_LINE(result)->offset = offset;
- g_arch_instruction_get_location(instr, NULL, &G_RENDERING_LINE(result)->length, NULL);
-
- result->instr = instr;
- result->options = options;
-
- return G_RENDERING_LINE(result);
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : line = line de rendu à consulter. *
-* *
-* Description : Fournit l'instruction associée à la ligne de code binaire. *
-* *
-* Retour : Adresse de l'instruction associée. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchInstruction *g_code_line_get_instruction(const GCodeLine *line)
-{
- return line->instr;
-
-}
diff --git a/src/analysis/line_code.h b/src/analysis/line_code.h
deleted file mode 100644
index 326d183..0000000
--- a/src/analysis/line_code.h
+++ /dev/null
@@ -1,62 +0,0 @@
-
-/* OpenIDA - Outil d'analyse de fichiers binaires
- * line_code.h - prototypes pour la représentation de code binaire
- *
- * Copyright (C) 2009 Cyrille Bagard
- *
- * This file is part of OpenIDA.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#ifndef _ANALYSIS_LINE_CODE_H
-#define _ANALYSIS_LINE_CODE_H
-
-
-#include <glib-object.h>
-
-
-#include "line.h"
-#include "../arch/processor.h"
-
-
-
-#define G_TYPE_CODE_LINE (g_code_line_get_type())
-#define G_CODE_LINE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), G_TYPE_CODE_LINE, GCodeLine))
-#define G_IS_CODE_LINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), G_TYPE_CODE_LINE))
-#define G_CODE_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), G_TYPE_CODE_LINE, GCodeLineClass))
-#define G_IS_CODE_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), G_TYPE_CODE_LINE))
-#define G_CODE_LINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), G_TYPE_CODE_LINE, GCodeLineClass))
-
-
-/* Ligne de représentation de code binaire (instance) */
-typedef struct _GCodeLine GCodeLine;
-
-/* Ligne de représentation de code binaire (classe) */
-typedef struct _GCodeLineClass GCodeLineClass;
-
-
-/* Indique le type définit par la GLib pour la ligne. */
-GType g_code_line_get_type(void);
-
-/* Crée une ligne de code binaire. */
-GRenderingLine *g_code_line_new(uint64_t, GArchInstruction *, const GRenderingOptions *);
-
-/* Fournit l'instruction associée à la ligne de code binaire. */
-GArchInstruction *g_code_line_get_instruction(const GCodeLine *);
-
-
-
-#endif /* _ANALYSIS_LINE_CODE_H */
diff --git a/src/analysis/line_comment.c b/src/analysis/line_comment.c
deleted file mode 100644
index 2156ce4..0000000
--- a/src/analysis/line_comment.c
+++ /dev/null
@@ -1,248 +0,0 @@
-
-/* OpenIDA - Outil d'analyse de fichiers binaires
- * line_comment.c - représentation des lignes commentaires entières
- *
- * Copyright (C) 2009-2010 Cyrille Bagard
- *
- * This file is part of OpenIDA.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "line_comment.h"
-
-
-#include <malloc.h>
-#include <string.h>
-
-
-#include "line-int.h"
-
-
-
-/* Ligne de représentation de commentaires entière (instance) */
-struct _GCommentLine
-{
- GRenderingLine parent; /* Instance parente */
-
- char *comment; /* Texte à afficher */
- const GRenderingOptions *options; /* Options de représentation */
-
-};
-
-
-/* Ligne de représentation de commentaires entière (classe) */
-struct _GCommentLineClass
-{
- GRenderingLineClass parent; /* Classe parente */
-
-};
-
-
-/* Initialise la classe des lignes de commentaires entière. */
-static void g_comment_line_class_init(GCommentLineClass *);
-
-/* Initialise la classe des lignes de commentaires entière. */
-static void g_comment_line_init(GCommentLine *);
-
-/* Ajoute du texte simple à un fichier ouvert en écriture. */
-static void g_comment_line_add_text(GCommentLine *, GRenderingOptions *, MainRendering, FILE *);
-
-/* Ajoute à un tampon GLib le contenu de l'instance spécifiée. */
-static void g_comment_line_to_buffer(GCommentLine *, GBufferLine *, GRenderingOptions *);
-
-
-/* Indique le type définit par la GLib pour la ligne. */
-G_DEFINE_TYPE(GCommentLine, g_comment_line, G_TYPE_RENDERING_LINE);
-
-
-
-/******************************************************************************
-* *
-* Paramètres : klass = classe à initialiser. *
-* *
-* Description : Initialise la classe des lignes de commentaires entière. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-static void g_comment_line_class_init(GCommentLineClass *klass)
-{
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : line = instance à initialiser. *
-* *
-* Description : Initialise la classe des lignes de commentaires entière. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-static void g_comment_line_init(GCommentLine *line)
-{
- GContentExporter *exporter_parent; /* Instance parente #1 */
- GRenderingLine *line_parent; /* Instance parente #2 */
-
- exporter_parent = G_CONTENT_EXPORTER(line);
-
- exporter_parent->add_text = (add_text_fc)g_comment_line_add_text;
- exporter_parent->export_buffer = (export_buffer_fc)g_comment_line_to_buffer;
-
- line_parent = G_RENDERING_LINE(line);
-
- line_parent->type = RLT_PROTOTYPE/* TODO */;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : line = ligne de représentation à actualiser. *
-* options = options de rendu. *
-* rendering = support effectif final des lignes de code. *
-* stream = flux ouvert en écriture. *
-* *
-* Description : Ajoute du texte simple à un fichier ouvert en écriture. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-static void g_comment_line_add_text(GCommentLine *line, GRenderingOptions *options, MainRendering rendering, FILE *stream)
-{
- GContentExporter *exporter; /* Autre vision de la ligne */
- bool show_address; /* Affichage de l'adresse ? */
- bool show_code; /* Affichage du code brut ? */
- MemoryDataSize msize; /* Taille du bus d'adresses */
- char address[VMPA_MAX_SIZE]; /* Adresse au format texte */
- size_t len; /* Taille de l'élément inséré */
-
- exporter = G_CONTENT_EXPORTER(line);
-
- show_address = g_rendering_options_has_to_show_address(options, rendering);
- show_code = g_rendering_options_has_to_show_code(options, rendering);
-
- /* Eventuelle adresse virtuelle ou physique */
-
- if (show_address)
- {
- msize = g_arch_processor_get_memory_size(g_rendering_options_get_processor(options));
-
- len = vmpa_to_string(G_RENDERING_LINE(line)->offset, msize, address);
-
- g_content_exporter_insert_text(exporter, stream, address, len, RTT_NONE);
- g_content_exporter_insert_text(exporter, stream, "\t", 1, RTT_NONE);
-
- }
-
- /* Eventuel code brut (sauté) */
-
- if (show_code)
- g_content_exporter_insert_text(exporter, stream, "\t", 1, RTT_NONE);
-
- /* Commentaire proprement dit */
-
- g_content_exporter_insert_text(exporter, stream, "; ", 2, RTT_COMMENT);
-
- len = strlen(line->comment);
-
- g_content_exporter_insert_text(exporter, stream, line->comment, len, RTT_COMMENT);
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : line = ligne de représentation à représenter. *
-* buffer = espace où placer ledit contenu. *
-* options = options de rendu. *
-* *
-* Description : Ajoute à un tampon GLib le contenu de l'instance spécifiée. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-static void g_comment_line_to_buffer(GCommentLine *line, GBufferLine *buffer, GRenderingOptions *options)
-{
- GContentExporter *exporter; /* Autre vision de la ligne */
- MemoryDataSize msize; /* Taille du bus d'adresses */
- char address[VMPA_MAX_SIZE]; /* Adresse au format texte */
- size_t len; /* Taille de l'élément inséré */
-
- exporter = G_CONTENT_EXPORTER(line);
-
- g_buffer_line_start_merge_at(buffer, BLC_ASSEMBLY_HEAD);
-
- /* Eventuelle adresse virtuelle ou physique */
-
- msize = g_arch_processor_get_memory_size(g_rendering_options_get_processor(line->options));
-
- len = vmpa_to_string(G_RENDERING_LINE(line)->offset, msize, address);
-
- g_content_exporter_insert_into_buffer(exporter, buffer, BLC_ADDRESS, address, len, RTT_RAW);
-
- /* Commentaire ? */
-
- len = strlen(line->comment);
-
- g_content_exporter_insert_into_buffer(exporter, buffer, BLC_COMMENTS, "; ", 2, RTT_COMMENT);
- g_content_exporter_insert_into_buffer(exporter, buffer, BLC_COMMENTS,
- line->comment, len, RTT_COMMENT);
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : offset = emplacement physique ou en mémoire. *
-* comment = texte à afficher au final. *
-* options = paramétrage du rendu. *
-* *
-* Description : Crée une ligne de commentaires entière. *
-* *
-* Retour : Adresse de la structure mise en place. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GRenderingLine *g_comment_line_new(uint64_t offset, const char *comment, const GRenderingOptions *options)
-{
- GCommentLine *result; /* Structure à retourner */
-
- result = g_object_new(G_TYPE_COMMENT_LINE, NULL);
-
- G_RENDERING_LINE(result)->offset = offset;
-
- result->comment = strdup(comment);
- result->options = options;
-
- return G_RENDERING_LINE(result);
-
-}
diff --git a/src/analysis/line_comment.h b/src/analysis/line_comment.h
deleted file mode 100644
index 20aa16f..0000000
--- a/src/analysis/line_comment.h
+++ /dev/null
@@ -1,58 +0,0 @@
-
-/* OpenIDA - Outil d'analyse de fichiers binaires
- * line_comment.h - prototypes pour la représentation des lignes commentaires entières
- *
- * Copyright (C) 2009 Cyrille Bagard
- *
- * This file is part of OpenIDA.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#ifndef _ANALYSIS_LINE_COMMENT_H
-#define _ANALYSIS_LINE_COMMENT_H
-
-
-#include <glib-object.h>
-
-
-#include "line.h"
-
-
-
-#define G_TYPE_COMMENT_LINE (g_comment_line_get_type())
-#define G_COMMENT_LINE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), G_TYPE_COMMENT_LINE, GCommentLine))
-#define G_IS_COMMENT_LINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), G_TYPE_COMMENT_LINE))
-#define G_COMMENT_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), G_TYPE_COMMENT_LINE, GCommentLineClass))
-#define G_IS_COMMENT_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), G_TYPE_COMMENT_LINE))
-#define G_COMMENT_LINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), G_TYPE_COMMENT_LINE, GCommentLineClass))
-
-
-/* Ligne de représentation de commentaires entière (instance) */
-typedef struct _GCommentLine GCommentLine;
-
-/* Ligne de représentation de commentaires entière (classe) */
-typedef struct _GCommentLineClass GCommentLineClass;
-
-
-/* Indique le type définit par la GLib pour la ligne. */
-GType g_comment_line_get_type(void);
-
-/* Crée une ligne de commentaires entière. */
-GRenderingLine *g_comment_line_new(uint64_t, const char *, const GRenderingOptions *);
-
-
-
-#endif /* _ANALYSIS_LINE_COMMENT_H */
diff --git a/src/analysis/line_prologue.c b/src/analysis/line_prologue.c
deleted file mode 100644
index 508ddfc..0000000
--- a/src/analysis/line_prologue.c
+++ /dev/null
@@ -1,202 +0,0 @@
-
-/* OpenIDA - Outil d'analyse de fichiers binaires
- * line_prologue.c - représentation des lignes d'en-tête de désassemblage
- *
- * Copyright (C) 2009-2010 Cyrille Bagard
- *
- * This file is part of OpenIDA.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "line_prologue.h"
-
-
-#include <malloc.h>
-#include <string.h>
-
-
-#include "line-int.h"
-
-
-
-/* Ligne de représentation de descriptions initiales (instance) */
-struct _GPrologueLine
-{
- GRenderingLine parent; /* Instance parente */
-
- char *comment; /* Texte à afficher */
-
-};
-
-
-/* Ligne de représentation de descriptions initiales (classe) */
-struct _GPrologueLineClass
-{
- GRenderingLineClass parent; /* Classe parente */
-
-};
-
-
-/* Initialise la classe des lignes de descriptions initiales. */
-static void g_prologue_line_class_init(GPrologueLineClass *);
-
-/* Initialise la classe des lignes de descriptions initiales. */
-static void g_prologue_line_init(GPrologueLine *);
-
-/* Ajoute du texte simple à un fichier ouvert en écriture. */
-static void g_prologue_line_add_text(GPrologueLine *, GRenderingOptions *, MainRendering, FILE *);
-
-/* Ajoute à un tampon GLib le contenu de l'instance spécifiée. */
-static void g_prologue_line_to_buffer(GPrologueLine *, GBufferLine *, GRenderingOptions *);
-
-
-/* Indique le type définit par la GLib pour la ligne. */
-G_DEFINE_TYPE(GPrologueLine, g_prologue_line, G_TYPE_RENDERING_LINE);
-
-
-
-/******************************************************************************
-* *
-* Paramètres : klass = classe à initialiser. *
-* *
-* Description : Initialise la classe des lignes de descriptions initiales. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-static void g_prologue_line_class_init(GPrologueLineClass *klass)
-{
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : line = instance à initialiser. *
-* *
-* Description : Initialise la classe des lignes de descriptions initiales. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-static void g_prologue_line_init(GPrologueLine *line)
-{
- GContentExporter *exporter_parent; /* Instance parente #1 */
- GRenderingLine *line_parent; /* Instance parente #2 */
-
- exporter_parent = G_CONTENT_EXPORTER(line);
-
- exporter_parent->add_text = (add_text_fc)g_prologue_line_add_text;
- exporter_parent->export_buffer = (export_buffer_fc)g_prologue_line_to_buffer;
-
- line_parent = G_RENDERING_LINE(line);
-
- line_parent->type = RLT_PROLOGUE;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : line = ligne de représentation à actualiser. *
-* options = options de rendu. *
-* rendering = support effectif final des lignes de code. *
-* stream = flux ouvert en écriture. *
-* *
-* Description : Ajoute du texte simple à un fichier ouvert en écriture. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-static void g_prologue_line_add_text(GPrologueLine *line, GRenderingOptions *options, MainRendering rendering, FILE *stream)
-{
- GContentExporter *exporter; /* Autre vision de la ligne */
- size_t len; /* Taille de l'élément inséré */
-
- exporter = G_CONTENT_EXPORTER(line);
-
- len = strlen(line->comment);
-
- g_content_exporter_insert_text(exporter, stream, "; ", 2, RTT_COMMENT);
- g_content_exporter_insert_text(exporter, stream, line->comment, len, RTT_COMMENT);
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : line = ligne de représentation à représenter. *
-* buffer = espace où placer ledit contenu. *
-* options = options de rendu. *
-* *
-* Description : Ajoute à un tampon GLib le contenu de l'instance spécifiée. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-static void g_prologue_line_to_buffer(GPrologueLine *line, GBufferLine *buffer, GRenderingOptions *options)
-{
- GContentExporter *exporter; /* Autre vision de la ligne */
- size_t len; /* Taille de l'élément inséré */
-
- exporter = G_CONTENT_EXPORTER(line);
-
- g_buffer_line_start_merge_at(buffer, BLC_ADDRESS);
-
- len = strlen(line->comment);
-
- g_content_exporter_insert_into_buffer(exporter, buffer, BLC_COMMENTS, "; ", 2, RTT_COMMENT);
- g_content_exporter_insert_into_buffer(exporter, buffer, BLC_COMMENTS,
- line->comment, len, RTT_COMMENT);
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : comment = texte à afficher au final. *
-* *
-* Description : Crée une des lignes de descriptions initiales. *
-* *
-* Retour : Adresse de la structure mise en place. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GRenderingLine *g_prologue_line_new(const char *comment)
-{
- GPrologueLine *result; /* Structure à retourner */
-
- result = g_object_new(G_TYPE_PROLOGUE_LINE, NULL);
-
- result->comment = strdup(comment);
-
- return G_RENDERING_LINE(result);
-
-}
diff --git a/src/analysis/line_prologue.h b/src/analysis/line_prologue.h
deleted file mode 100644
index c5ebb15..0000000
--- a/src/analysis/line_prologue.h
+++ /dev/null
@@ -1,60 +0,0 @@
-
-/* OpenIDA - Outil d'analyse de fichiers binaires
- * line_prologue.h - prototypes pour la représentation des lignes d'en-tête de désassemblage
- *
- * Copyright (C) 2009 Cyrille Bagard
- *
- * This file is part of OpenIDA.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#ifndef _ANALYSIS_LINE_PROLOGUE_H
-#define _ANALYSIS_LINE_PROLOGUE_H
-
-
-#include <glib-object.h>
-
-
-#include "line.h"
-
-
-
-#define G_TYPE_PROLOGUE_LINE (g_prologue_line_get_type())
-#define G_PROLOGUE_LINE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), G_TYPE_PROLOGUE_LINE, GPrologueLine))
-#define G_IS_PROLOGUE_LINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), G_TYPE_PROLOGUE_LINE))
-#define G_PROLOGUE_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), G_TYPE_PROLOGUE_LINE, GPrologueLineClass))
-#define G_IS_PROLOGUE_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), G_TYPE_PROLOGUE_LINE))
-#define G_PROLOGUE_LINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), G_TYPE_PROLOGUE_LINE, GPrologueLineClass))
-
-
-
-/* Ligne de représentation de descriptions initiales (instance) */
-typedef struct _GPrologueLine GPrologueLine;
-
-/* Ligne de représentation de descriptions initiales (classe) */
-typedef struct _GPrologueLineClass GPrologueLineClass;
-
-
-
-/* Indique le type définit par la GLib pour la ligne. */
-GType g_prologue_line_get_type(void);
-
-/* Crée une des lignes de descriptions initiales. */
-GRenderingLine *g_prologue_line_new(const char *);
-
-
-
-#endif /* _ANALYSIS_LINE_PROLOGUE_H */