summaryrefslogtreecommitdiff
path: root/src/arch/processor.h
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2017-08-07 21:50:38 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2017-08-07 21:50:38 (GMT)
commita9328553fc558bca2e75f2c93b35acc5518d9568 (patch)
treece15e5259df278d386683dac217ec2b4a86e7c94 /src/arch/processor.h
parent5f55377ff6c014d513f13b76ec5faf56c31da478 (diff)
Stored all errors detected when loading and disassembling a binary file.
Diffstat (limited to 'src/arch/processor.h')
-rw-r--r--src/arch/processor.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/arch/processor.h b/src/arch/processor.h
index 2a8a8c1..87c0738 100644
--- a/src/arch/processor.h
+++ b/src/arch/processor.h
@@ -98,6 +98,35 @@ GArchInstruction *g_arch_processor_get_instruction(const GArchProcessor *, size_
+/* ------------------ CONSERVATION DES SOUCIS DURANT LE CHARGEMENT ------------------ */
+
+
+/* Types d'erreurs détectées */
+typedef enum _ArchProcessingError
+{
+ APE_DISASSEMBLY = ((0 << 2) | (1 << 0)),/* Code non reconnu */
+ APE_LABEL = ((1 << 2) | (1 << 0)) /* Etiquette non référencée */
+
+} ArchProcessingError;
+
+
+/* Protège ou lève la protection de l'accès aux erreurs. */
+void g_arch_processor_lock_unlock_errors(GArchProcessor *, bool);
+
+#define g_arch_processor_lock_errors(p) g_arch_processor_lock_unlock_errors(p, true)
+#define g_arch_processor_unlock_errors(p) g_arch_processor_lock_unlock_errors(p, false)
+
+/* Etend la liste des soucis détectés avec de nouvelles infos. */
+void g_arch_processor_add_error(GArchProcessor *, ArchProcessingError, const vmpa2t *, const char *);
+
+/* Indique le nombre d'erreurs relevées au niveau assembleur. */
+size_t g_arch_processor_count_errors(GArchProcessor *);
+
+/* Fournit les éléments concernant un soucis détecté. */
+bool g_arch_processor_get_error(GArchProcessor *, size_t, ArchProcessingError *, vmpa2t *, char **);
+
+
+
/* ------------------ MANIPULATIONS DES INSTRUCTIONS DESASSEMBLEES ------------------ */