summaryrefslogtreecommitdiff
path: root/src/analysis/line.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/analysis/line.h')
-rw-r--r--src/analysis/line.h82
1 files changed, 36 insertions, 46 deletions
diff --git a/src/analysis/line.h b/src/analysis/line.h
index abb2757..0213cab 100644
--- a/src/analysis/line.h
+++ b/src/analysis/line.h
@@ -48,7 +48,8 @@ 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_BREAK_POINT = (1 << 1), /* Point d'arrêt */
+ RLF_RUNNING_BP = (1 << 2) /* Point d'arrêt activé */
} RenderingLineFlag;
@@ -65,76 +66,65 @@ typedef struct _disass_options
-/* Ligne de représentation générique */
-typedef struct _rendering_line rendering_line;
+#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))
-/* Ajoute une information supplémentaire à une ligne. */
-void add_rendering_line_flag(rendering_line *, RenderingLineFlag);
-
-/* Retire une information supplémentaire d'une ligne. */
-void remove_rendering_line_flag(rendering_line *, RenderingLineFlag);
-
-/* Fournit les informations supplémentaires d'une ligne. */
-RenderingLineFlag get_rendering_line_flags(const rendering_line *);
+/* 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);
-/* Ajoute une ligne à un ensemble existant. */
-void add_line_to_rendering_lines(rendering_line **, rendering_line *);
+/* Fournit le type d'une ligne. */
+RenderingLineType get_rendering_line_type(const GRenderingLine *);
-/* Insère une ligne dans un ensemble existant. */
-void insert_line_into_rendering_lines(rendering_line **, rendering_line *, bool);
+/* Ajoute une information supplémentaire à une ligne. */
+void g_rendering_line_add_flag(GRenderingLine *, RenderingLineFlag);
-/* Recherche une ligne d'après sa position en mémoire/physique. */
-rendering_line *find_offset_in_rendering_lines(rendering_line *, uint64_t);
+/* 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 *);
/* Procède à l'initialisation des bases d'une représentation. */
-void draw_rendering_line(rendering_line *, GdkDrawable *, GdkGC *, gint, gint, gint, gint);
+void g_rendering_line_draw(GRenderingLine *, GdkDrawable *, GdkGC *, gint, gint, gint, gint);
/* ------------------------ 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);
+
/* Fournit l'élement suivant un autre pour un parcours. */
-rendering_line *g_rendering_line_get_next_iter(rendering_line *, const rendering_line *);
+GRenderingLine *g_rendering_line_get_next_iter(GRenderingLine *, const GRenderingLine *);
/* Met à jour le nombre d'octets maximal par instruction. */
-void g_rendering_lines_update_bin_len(rendering_line *);
+void g_rendering_line_update_bin_len(GRenderingLine *);
/* Fournit les dimensions de lignes de représentation. */
-void g_rendering_lines_get_size(rendering_line *, int *, int *, int *);
-
-
-
-/* ------------------------- LIGNE EN TETE DE DESASSEMBLAGE ------------------------- */
-
-
-/* Crée une des lignes de description initiales. */
-rendering_line *create_prologue_line(const char *);
-
-
-
-/* ----------------------- COMMENTAIRES SUR UNE LIGNE ENTIERE ----------------------- */
-
-
-/* Crée une ligne de commentaires entière. */
-rendering_line *create_comment_line(uint64_t, RenderingLineType, const char *, const disass_options *);
-
-
-
-/* ------------------------ LIGNE DE CODE EN LANGAGE MACHINE ------------------------ */
-
-
-/* Crée une ligne de représentation de code binaire. */
-rendering_line *create_code_line(asm_instr *, uint64_t, const disass_options *);
-
+void g_rendering_line_get_size(GRenderingLine *, int *, int *, int *);
+/* Recherche une ligne d'après sa position à l'écran. */
+GRenderingLine *g_rendering_line_find_by_y(GRenderingLine *, gdouble *);
+/* Recherche une ligne d'après sa position en mémoire/physique. */
+GRenderingLine *g_rendering_line_find_by_offset(GRenderingLine *, uint64_t);