about summary refs log tree commit diff stats
path: root/miasm2/jitter
diff options
context:
space:
mode:
Diffstat (limited to 'miasm2/jitter')
-rw-r--r--miasm2/jitter/arch/JitCore_x86.c20
-rw-r--r--miasm2/jitter/arch/JitCore_x86.h2
2 files changed, 22 insertions, 0 deletions
diff --git a/miasm2/jitter/arch/JitCore_x86.c b/miasm2/jitter/arch/JitCore_x86.c
index dd4ce7cb..9d15cd20 100644
--- a/miasm2/jitter/arch/JitCore_x86.c
+++ b/miasm2/jitter/arch/JitCore_x86.c
@@ -197,9 +197,25 @@ PyObject* cpu_get_exception(JitCpu* self, PyObject* args)
 	return PyLong_FromUnsignedLongLong((uint64_t)(((vm_cpu_t*)self->cpu)->exception_flags));
 }
 
+PyObject* cpu_set_interrupt_num(JitCpu* self, PyObject* args)
+{
+	PyObject *item1;
+	uint64_t i;
 
+	if (!PyArg_ParseTuple(args, "O", &item1))
+		return NULL;
+
+	PyGetInt(item1, i);
 
+	((vm_cpu_t*)self->cpu)->interrupt_num = i;
+	Py_INCREF(Py_None);
+	return Py_None;
+}
 
+PyObject* cpu_get_interrupt_num(JitCpu* self, PyObject* args)
+{
+	return PyLong_FromUnsignedLongLong((uint64_t)(((vm_cpu_t*)self->cpu)->interrupt_num));
+}
 
 PyObject* cpu_set_segm_base(JitCpu* self, PyObject* args)
 {
@@ -349,6 +365,10 @@ static PyMethodDef JitCpu_methods[] = {
 	 "X"},
 	{"get_mem", (PyCFunction)vm_get_mem, METH_VARARGS,
 	 "X"},
+	{"get_interrupt_num", (PyCFunction)cpu_get_interrupt_num, METH_VARARGS,
+	 "X"},
+	{"set_interrupt_num", (PyCFunction)cpu_set_interrupt_num, METH_VARARGS,
+	 "X"},
 	{NULL}  /* Sentinel */
 };
 
diff --git a/miasm2/jitter/arch/JitCore_x86.h b/miasm2/jitter/arch/JitCore_x86.h
index 7e518395..c90c10b8 100644
--- a/miasm2/jitter/arch/JitCore_x86.h
+++ b/miasm2/jitter/arch/JitCore_x86.h
@@ -2,6 +2,8 @@
 typedef struct {
 	uint32_t exception_flags;
 	uint32_t exception_flags_new;
+	uint32_t interrupt_num;
+	uint32_t interrupt_num_new;
 
 
 	/* gpregs */