diff options
| author | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2016-07-11 13:58:38 +0200 |
|---|---|---|
| committer | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2016-08-30 15:54:28 +0200 |
| commit | 4a6c2dbd7e515d72031b2b6b998faa62ac50faab (patch) | |
| tree | 9fd137d631c1584baf9b135d52ee2b772c9376e6 /miasm2/jitter/vm_mngr_py.c | |
| parent | fb7501f4bb0bc77a0262ad4894732e4de6ccb2b2 (diff) | |
| download | miasm-4a6c2dbd7e515d72031b2b6b998faa62ac50faab.tar.gz miasm-4a6c2dbd7e515d72031b2b6b998faa62ac50faab.zip | |
Jitter: use mem read/write for memory breakpoint/automod
Diffstat (limited to 'miasm2/jitter/vm_mngr_py.c')
| -rw-r--r-- | miasm2/jitter/vm_mngr_py.c | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/miasm2/jitter/vm_mngr_py.c b/miasm2/jitter/vm_mngr_py.c index 9e370465..3e0c820c 100644 --- a/miasm2/jitter/vm_mngr_py.c +++ b/miasm2/jitter/vm_mngr_py.c @@ -186,7 +186,8 @@ PyObject* vm_set_mem(VmMngr* self, PyObject* args) if (ret < 0) RAISE(PyExc_TypeError, "Error in set_mem"); - check_write_code_bloc(&self->vm_mngr, size*8, addr); + vm_mngr_add_mem_write(&self->vm_mngr, addr, size); + check_invalid_code_blocs(&self->vm_mngr); Py_INCREF(Py_None); return Py_None; @@ -460,26 +461,24 @@ PyObject* vm_is_mapped(VmMngr* self, PyObject* args) return PyLong_FromUnsignedLongLong((uint64_t)ret); } -PyObject* vm_reset_code_bloc_write(VmMngr* self, PyObject* args) +PyObject* vm_get_memory_read(VmMngr* self, PyObject* args) { - reset_code_bloc_write(&self->vm_mngr); - Py_INCREF(Py_None); - return Py_None; + PyObject* result; + result = get_memory_read(&self->vm_mngr); + Py_INCREF(result); + return result; } -PyObject* vm_get_code_bloc_write(VmMngr* self, PyObject* args) +PyObject* vm_get_memory_write(VmMngr* self, PyObject* args) { PyObject* result; - - result = get_code_bloc_write(&self->vm_mngr); + result = get_memory_write(&self->vm_mngr); Py_INCREF(result); - return result; } - static PyObject * vm_set_big_endian(VmMngr *self, PyObject *value, void *closure) { @@ -548,8 +547,6 @@ static PyMethodDef VmMngr_methods[] = { "X"}, {"is_mapped", (PyCFunction)vm_is_mapped, METH_VARARGS, "X"}, - {"reset_code_bloc_write", (PyCFunction)vm_reset_code_bloc_write, METH_VARARGS, - "X"}, {"add_code_bloc",(PyCFunction)vm_add_code_bloc, METH_VARARGS, "X"}, {"get_mem", (PyCFunction)vm_get_mem, METH_VARARGS, @@ -572,8 +569,6 @@ static PyMethodDef VmMngr_methods[] = { "X"}, {"reset_code_bloc_pool", (PyCFunction)vm_reset_code_bloc_pool, METH_VARARGS, "X"}, - {"get_code_bloc_write", (PyCFunction)vm_get_code_bloc_write, METH_VARARGS, - "X"}, {"set_alarm", (PyCFunction)set_alarm, METH_VARARGS, "X"}, {"get_exception",(PyCFunction)vm_get_exception, METH_VARARGS, @@ -584,6 +579,10 @@ static PyMethodDef VmMngr_methods[] = { "X"}, {"set_little_endian",(PyCFunction)vm_set_little_endian, METH_VARARGS, "X"}, + {"get_memory_read",(PyCFunction)vm_get_memory_read, METH_VARARGS, + "X"}, + {"get_memory_write",(PyCFunction)vm_get_memory_write, METH_VARARGS, + "X"}, {NULL} /* Sentinel */ }; |