summaryrefslogtreecommitdiff
path: root/plugins/mobicore/mclf.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/mobicore/mclf.c')
-rw-r--r--plugins/mobicore/mclf.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/plugins/mobicore/mclf.c b/plugins/mobicore/mclf.c
index 245508f..829a488 100644
--- a/plugins/mobicore/mclf.c
+++ b/plugins/mobicore/mclf.c
@@ -55,26 +55,30 @@ static void g_mclf_format_refine_portions(const GMCLFFormat *, GBinPortion *);
/******************************************************************************
* *
* Paramètres : content = contenu binaire à parcourir. *
+* parent = éventuel format exécutable déjà chargé. *
* *
* Description : Indique si le format peut être pris en charge ici. *
* *
-* Retour : true si la réponse est positive, false sinon. *
+* Retour : Désignation du format reconnu ou NULL si aucun. *
* *
* Remarques : - *
* *
******************************************************************************/
-bool mclf_is_matching(GBinContent *content)
+const char *mclf_is_matching(GBinContent *content, GExeFormat *parent)
{
- bool result; /* Bilan à faire connaître */
+ const char *result; /* Format détecté à renvoyer */
vmpa2t addr; /* Tête de lecture initiale */
+ bool status; /* Bilan des accès mémoire */
char magic[4]; /* Idenfiant standard */
init_vmpa(&addr, 0, VMPA_NO_VIRTUAL);
- result = g_binary_content_get_raw(content, &addr, 4, (bin_t *)magic);
+ status = g_binary_content_get_raw(content, &addr, 4, (bin_t *)magic);
- result &= (memcmp(magic, MC_SERVICE_HEADER_MAGIC_STR, 4) == 0);
+ status &= (memcmp(magic, MC_SERVICE_HEADER_MAGIC_STR, 4) == 0);
+
+ result = status ? "mclf" : NULL;
return result;
@@ -130,6 +134,7 @@ static void g_mclf_format_init(GMCLFFormat *format)
/******************************************************************************
* *
* Paramètres : content = contenu binaire à parcourir. *
+* parent = éventuel format exécutable déjà chargé. *
* *
* Description : Prend en charge un nouveau format MCLF. *
* *
@@ -139,7 +144,7 @@ static void g_mclf_format_init(GMCLFFormat *format)
* *
******************************************************************************/
-GBinFormat *g_mclf_format_new(GBinContent *content)
+GBinFormat *g_mclf_format_new(GBinContent *content, GExeFormat *parent)
{
GMCLFFormat *result; /* Structure à retourner */