diff options
Diffstat (limited to 'src/analysis/line.h')
-rw-r--r-- | src/analysis/line.h | 82 |
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); |