summaryrefslogtreecommitdiff
path: root/src/arch/instruction-int.h
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2016-04-20 12:07:19 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2016-04-20 12:07:19 (GMT)
commit59f319d9a6961a7424c7b32f49aa7ac1045a1d4c (patch)
treee9d62c684dd8d8f5e141b9332994041bd2371f9a /src/arch/instruction-int.h
parent8962a4e61411c8362d5f4be63496977164b886a8 (diff)
Protected all concurrent accesses to sources and destinations of instructions.
Diffstat (limited to 'src/arch/instruction-int.h')
-rw-r--r--src/arch/instruction-int.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/arch/instruction-int.h b/src/arch/instruction-int.h
index eca2807..69cdc8a 100644
--- a/src/arch/instruction-int.h
+++ b/src/arch/instruction-int.h
@@ -80,10 +80,19 @@ struct _GArchInstruction
GArchInstruction **from; /* Origines des références */
InstructionLinkType *from_types; /* Type des liens de dest. */
size_t from_count; /* Nombre de ces origines */
+ GRWLock from_access; /* Verrou de protection */
+#ifndef NDEBUG
+ gint hold_from_access; /* Suivi des verrouillages */
+#endif
+
GArchInstruction **to; /* Eventuelles lignes visées */
InstructionLinkType *to_types; /* Type des liens de dest. */
link_extra_info *links_info; /* Informations complémentaires*/
size_t to_count; /* Nombre de ces destinations */
+ GRWLock to_access; /* Verrou de protection */
+#ifndef NDEBUG
+ gint hold_to_access; /* Suivi des verrouillages */
+#endif
get_instruction_rw_regs_fc get_rw_regs; /* Liste des registres liés */
//print_instruction_fc print; /* Imprime l'ensemble */
@@ -91,7 +100,7 @@ struct _GArchInstruction
//is_instruction_return_fc is_return; /* Retour de fonction ou pas ? */
decomp_instr_fc decomp; /* Procédure de décompilation */
- bool is_return; /* Retour de fonction ou pas ? */
+ bool is_return; /* Retour de fonction ou pas ? */ // FIXME : à virer
};