summaryrefslogtreecommitdiff
path: root/src/format/exe_format.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/format/exe_format.c')
-rw-r--r--src/format/exe_format.c136
1 files changed, 136 insertions, 0 deletions
diff --git a/src/format/exe_format.c b/src/format/exe_format.c
index 1481d22..bc6cfff 100644
--- a/src/format/exe_format.c
+++ b/src/format/exe_format.c
@@ -24,10 +24,146 @@
#include "exe_format.h"
+#include <malloc.h>
+#include <string.h>
+
+
#include "exe_format-int.h"
+/* ---------------------------------------------------------------------------------- */
+/* MANIPULATION DES PARTIES DE CODE */
+/* ---------------------------------------------------------------------------------- */
+
+
+/******************************************************************************
+* *
+* Paramètres : - *
+* *
+* Description : Crée une description de partie de code vierge. *
+* *
+* Retour : - *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+bin_part *create_bin_part(void)
+{
+ bin_part *result; /* Structure à renvoyer */
+
+ result = (bin_part *)calloc(1, sizeof(bin_part));
+
+ return result;
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : part = description de partie à mettre à jour. *
+* name = nom à donner à la partie. *
+* *
+* Description : Attribue une description humaine à une partie de code. *
+* *
+* Retour : - *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+void set_bin_part_name(bin_part *part, const char *name)
+{
+ if (part->name != NULL) free(part->name);
+
+ part->name = strdup(name);
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : part = description de partie à mettre à jour. *
+* offset = position de la section à conserver. *
+* size = taille de la section à conserver. *
+* voffset = adresse virtuelle de la section à conserver. *
+* *
+* Description : Définit les valeurs utiles d'une partie de code. *
+* *
+* Retour : - *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+void set_bin_part_values(bin_part *part, off_t offset, off_t size, uint64_t voffset)
+{
+ part->offset = offset;
+ part->size = size;
+ part->voffset = voffset;
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : part = description de partie à mettre à jour. *
+* offset = position de la section à donner. [OUT] *
+* size = taille de la section à donner. [OUT] *
+* voffset = adresse virtuelle de la section à donner. [OUT] *
+* *
+* Description : Fournit les valeurs utiles d'une partie de code. *
+* *
+* Retour : - *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+void get_bin_part_values(const bin_part *part, off_t *offset, off_t *size, uint64_t *voffset)
+{
+ *offset = part->offset;
+ *size = part->size;
+ *voffset = part->voffset;
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : part = description de partie à effacer. *
+* *
+* Description : Supprime de la mémoire une description de partie de code. *
+* *
+* Retour : - *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+void delete_bin_part(bin_part *part)
+{
+ if (part->name != NULL) free(part->name);
+
+ free(part);
+
+}
+
+
+
+
+
+
+
+
+
+
+
+
+/* ---------------------------------------------------------------------------------- */
+/* MANIPULATION DES PARTIES DE CODE */
+/* ---------------------------------------------------------------------------------- */
/******************************************************************************