summaryrefslogtreecommitdiff
path: root/plugins/pychrysalide
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2018-06-19 18:19:56 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2018-06-19 18:19:56 (GMT)
commitceeba88cafc4c7d2c625e53fb175b763e480f6ba (patch)
treef362ff9063a0733d7388ed6eacb3019a150a271d /plugins/pychrysalide
parent9b7924c7c5d97f83f589f4e185cfabe971f72bc4 (diff)
Provided instruction unique identifiers as requested.
Diffstat (limited to 'plugins/pychrysalide')
-rw-r--r--plugins/pychrysalide/arch/instruction.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/plugins/pychrysalide/arch/instruction.c b/plugins/pychrysalide/arch/instruction.c
index bb977ce..7d5462d 100644
--- a/plugins/pychrysalide/arch/instruction.c
+++ b/plugins/pychrysalide/arch/instruction.c
@@ -49,6 +49,9 @@
+/* Fournit l'identifiant unique pour un ensemble d'instructions. */
+static PyObject *py_arch_instruction_get_unique_id(PyObject *, void *);
+
/* Fournit la place mémoire d'une instruction. */
static PyObject *py_arch_instruction_get_range(PyObject *, void *);
@@ -207,6 +210,36 @@ static PyObject *py_arch_instruction_get_destinations(PyObject *self, void *unus
* Paramètres : self = classe représentant une instruction. *
* closure = adresse non utilisée ici. *
* *
+* Description : Fournit l'identifiant unique pour un ensemble d'instructions.*
+* *
+* Retour : Identifiant unique par type d'instruction et architecture. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+static PyObject *py_arch_instruction_get_unique_id(PyObject *self, void *closure)
+{
+ PyObject *result; /* Conversion à retourner */
+ GArchInstruction *instr; /* Version native */
+ itid_t uid; /* Identifiant unique associé */
+
+ instr = G_ARCH_INSTRUCTION(pygobject_get(self));
+
+ uid = g_arch_instruction_get_unique_id(instr);
+
+ result = PyLong_FromUnsignedLong(uid);
+
+ return result;
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : self = classe représentant une instruction. *
+* closure = adresse non utilisée ici. *
+* *
* Description : Fournit la place mémoire d'une instruction. *
* *
* Retour : Valeur associée à la propriété consultée. *
@@ -384,6 +417,10 @@ PyTypeObject *get_python_arch_instruction_type(void)
static PyGetSetDef py_arch_instruction_getseters[] = {
{
+ "uid", py_arch_instruction_get_unique_id, NULL,
+ "Provide the unique identification number given to this kind of instruction.", NULL
+ },
+ {
"range", py_arch_instruction_get_range, py_arch_instruction_set_range,
"Give access to the memory range covered by the current instruction.", NULL
},