summaryrefslogtreecommitdiff
path: root/src/format/executable-int.h
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2024-11-15 10:01:42 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2024-11-15 10:01:42 (GMT)
commit671f61ec87f5e8d762ea890aabbc62c777e1c4f9 (patch)
tree1517f5fc5d00c8fd04872b35571556b021866f14 /src/format/executable-int.h
parent3e21278480a25552401644cd0dc168e3588508dd (diff)
Restore a skeleton of support for file formats.
Diffstat (limited to 'src/format/executable-int.h')
-rw-r--r--src/format/executable-int.h52
1 files changed, 33 insertions, 19 deletions
diff --git a/src/format/executable-int.h b/src/format/executable-int.h
index 8722795..73b647c 100644
--- a/src/format/executable-int.h
+++ b/src/format/executable-int.h
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* executable-int.h - prototypes de code utile aux formats d'exécutables
*
- * Copyright (C) 2009-2019 Cyrille Bagard
+ * Copyright (C) 2009-2024 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -28,34 +28,38 @@
#include "executable.h"
-#include "format-int.h"
+#include "program-int.h"
/* Indique le type d'architecture visée par le format. */
-typedef const char * (* get_target_machine_fc) (const GExeFormat *);
+typedef char * (* get_target_machine_fc) (const GExecutableFormat *);
+#if 0
/* Fournit l'adresse principale associée à un format. */
-typedef bool (* get_main_addr_fc) (GExeFormat *, vmpa2t *);
+typedef bool (* get_main_addr_fc) (GExecutableFormat *, vmpa2t *);
/* Etend la définition des portions au sein d'un binaire. */
-typedef void (* refine_portions_fc) (GExeFormat *);
+typedef void (* refine_portions_fc) (GExecutableFormat *);
/* Fournit l'emplacement correspondant à une position physique. */
-typedef bool (* translate_phys_fc) (GExeFormat *, phys_t, vmpa2t *);
+typedef bool (* translate_phys_fc) (GExecutableFormat *, phys_t, vmpa2t *);
/* Fournit l'emplacement correspondant à une adresse virtuelle. */
-typedef bool (* translate_virt_fc) (GExeFormat *, virt_t, vmpa2t *);
+typedef bool (* translate_virt_fc) (GExecutableFormat *, virt_t, vmpa2t *);
/* Fournit l'emplacement d'une section donnée. */
-typedef bool (* get_range_by_name_fc) (const GExeFormat *, const char *, mrange_t *);
+typedef bool (* get_range_by_name_fc) (const GExecutableFormat *, const char *, mrange_t *);
+#endif
/* Format d'exécutable générique (instance) */
-struct _GExeFormat
+struct _GExecutableFormat
{
- GBinFormat parent; /* A laisser en premier */
+ GProgramFormat parent; /* A laisser en premier */
+
+#if 0
GDbgFormat **debugs; /* Informations de débogage */
size_t debugs_count; /* Nombre de ces informations */
@@ -65,42 +69,52 @@ struct _GExeFormat
GBinPortion *portions; /* Couches de morceaux binaires*/
GMutex mutex; /* Accès à l'arborescence */
+#endif
+
};
/* Format d'exécutable générique (classe) */
-struct _GExeFormatClass
+struct _GExecutableFormatClass
{
- GBinFormatClass parent; /* A laisser en premier */
+ GProgramFormatClass parent; /* A laisser en premier */
get_target_machine_fc get_machine; /* Architecture ciblée */
+
+#if 0
get_main_addr_fc get_main_addr; /* Obtention d'adresse première*/
refine_portions_fc refine_portions; /* Décrit les portions binaires*/
translate_phys_fc translate_phys; /* Correspondance phys -> vmpa */
translate_virt_fc translate_virt; /* Correspondance virt -> vmpa */
- get_range_by_name_fc get_range_by_name; /* Emplacement de sections */
+ get_range_by_name_fc get_range_by_name; /* Emplacement de sections */
+
+#endif
};
+#if 0
+
/* Crée les portions potentiellement utiles aux traductions. */
-void g_executable_format_setup_portions(GExeFormat *, GtkStatusStack *);
+void g_executable_format_setup_portions(GExecutableFormat *, GtkStatusStack *);
/* Effectue les ultimes opérations de chargement d'un binaire. */
-bool g_executable_format_complete_loading(GExeFormat *, wgroup_id_t, GtkStatusStack *);
+bool g_executable_format_complete_loading(GExecutableFormat *, wgroup_id_t, GtkStatusStack *);
/* Fournit l'emplacement correspondant à une position physique. */
-bool g_exe_format_without_virt_translate_offset_into_vmpa(const GExeFormat *, phys_t, vmpa2t *);
+bool g_exe_format_without_virt_translate_offset_into_vmpa(const GExecutableFormat *, phys_t, vmpa2t *);
/* Fournit l'emplacement correspondant à une adresse virtuelle. */
-bool g_exe_format_without_virt_translate_address_into_vmpa(const GExeFormat *, virt_t, vmpa2t *);
+bool g_exe_format_without_virt_translate_address_into_vmpa(const GExecutableFormat *, virt_t, vmpa2t *);
/* Fournit l'emplacement correspondant à une position physique. */
-bool g_exe_format_translate_offset_into_vmpa_using_portions(GExeFormat *, phys_t, vmpa2t *);
+bool g_exe_format_translate_offset_into_vmpa_using_portions(GExecutableFormat *, phys_t, vmpa2t *);
/* Fournit l'emplacement correspondant à une adresse virtuelle. */
-bool g_exe_format_translate_address_into_vmpa_using_portions(GExeFormat *, virt_t, vmpa2t *);
+bool g_exe_format_translate_address_into_vmpa_using_portions(GExecutableFormat *, virt_t, vmpa2t *);
+
+#endif