diff options
Diffstat (limited to 'miasm2/jitter')
| -rw-r--r-- | miasm2/jitter/arch/JitCore_x86.c | 20 | ||||
| -rw-r--r-- | miasm2/jitter/arch/JitCore_x86.h | 2 |
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 */ |