about summary refs log tree commit diff stats
path: root/miasm2/jitter/vm_mngr_py.c
diff options
context:
space:
mode:
authorFabrice Desclaux <fabrice.desclaux@cea.fr>2016-07-11 13:58:38 +0200
committerFabrice Desclaux <fabrice.desclaux@cea.fr>2016-08-30 15:54:28 +0200
commit4a6c2dbd7e515d72031b2b6b998faa62ac50faab (patch)
tree9fd137d631c1584baf9b135d52ee2b772c9376e6 /miasm2/jitter/vm_mngr_py.c
parentfb7501f4bb0bc77a0262ad4894732e4de6ccb2b2 (diff)
downloadmiasm-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.c27
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 */
 };