about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorserpilliere <fabrice.desclaux@cea.fr>2015-03-08 21:32:34 +0100
committerserpilliere <fabrice.desclaux@cea.fr>2015-03-10 18:46:56 +0100
commit644893c46eefe48f25e052d3daae89ec9824eab7 (patch)
tree7ef3a1cf099de4b5049f6caa29a6e3d7442c2aef
parentd1c270b845001965d35e36e5e13402fa718a0e5f (diff)
downloadmiasm-644893c46eefe48f25e052d3daae89ec9824eab7.tar.gz
miasm-644893c46eefe48f25e052d3daae89ec9824eab7.zip
Jitter: split VmMngr from JitCpu
-rw-r--r--miasm2/jitter/arch/JitCore_arm.c4
-rw-r--r--miasm2/jitter/arch/JitCore_mips32.c4
-rw-r--r--miasm2/jitter/arch/JitCore_msp430.c4
-rw-r--r--miasm2/jitter/arch/JitCore_x86.c4
-rw-r--r--miasm2/jitter/jitcore_tcc.py1
-rw-r--r--miasm2/jitter/jitload.py4
-rw-r--r--miasm2/jitter/vm_mngr_py.c30
-rwxr-xr-xsetup.py38
8 files changed, 36 insertions, 53 deletions
diff --git a/miasm2/jitter/arch/JitCore_arm.c b/miasm2/jitter/arch/JitCore_arm.c
index cc5286eb..46cff736 100644
--- a/miasm2/jitter/arch/JitCore_arm.c
+++ b/miasm2/jitter/arch/JitCore_arm.c
@@ -515,7 +515,6 @@ static PyMethodDef JitCore_arm_Methods[] = {
 
 static PyObject *JitCore_arm_Error;
 
-extern int init_vm_mngr(PyObject* m);
 PyMODINIT_FUNC
 initJitCore_arm(void)
 {
@@ -535,8 +534,5 @@ initJitCore_arm(void)
     Py_INCREF(&JitCpuType);
     PyModule_AddObject(m, "JitCpu", (PyObject *)&JitCpuType);
 
-    /* init vm */
-    init_vm_mngr(m);
-
 }
 
diff --git a/miasm2/jitter/arch/JitCore_mips32.c b/miasm2/jitter/arch/JitCore_mips32.c
index 3766768c..a1e938ba 100644
--- a/miasm2/jitter/arch/JitCore_mips32.c
+++ b/miasm2/jitter/arch/JitCore_mips32.c
@@ -616,7 +616,6 @@ static PyMethodDef JitCore_mips32_Methods[] = {
 
 static PyObject *JitCore_mips32_Error;
 
-extern int init_vm_mngr(PyObject* m);
 PyMODINIT_FUNC
 initJitCore_mips32(void)
 {
@@ -636,8 +635,5 @@ initJitCore_mips32(void)
     Py_INCREF(&JitCpuType);
     PyModule_AddObject(m, "JitCpu", (PyObject *)&JitCpuType);
 
-    /* init vm */
-    init_vm_mngr(m);
-
 }
 
diff --git a/miasm2/jitter/arch/JitCore_msp430.c b/miasm2/jitter/arch/JitCore_msp430.c
index 229288c9..b52ad5d0 100644
--- a/miasm2/jitter/arch/JitCore_msp430.c
+++ b/miasm2/jitter/arch/JitCore_msp430.c
@@ -667,7 +667,6 @@ static PyMethodDef JitCore_msp430_Methods[] = {
 
 static PyObject *JitCore_msp430_Error;
 
-extern int init_vm_mngr(PyObject* m);
 PyMODINIT_FUNC
 initJitCore_msp430(void)
 {
@@ -687,8 +686,5 @@ initJitCore_msp430(void)
     Py_INCREF(&JitCpuType);
     PyModule_AddObject(m, "JitCpu", (PyObject *)&JitCpuType);
 
-    /* init vm */
-    init_vm_mngr(m);
-
 }
 
diff --git a/miasm2/jitter/arch/JitCore_x86.c b/miasm2/jitter/arch/JitCore_x86.c
index c5bd62f0..5c7b9c02 100644
--- a/miasm2/jitter/arch/JitCore_x86.c
+++ b/miasm2/jitter/arch/JitCore_x86.c
@@ -815,7 +815,6 @@ static PyMethodDef JitCore_x86_Methods[] = {
 
 static PyObject *JitCore_x86_Error;
 
-extern int init_vm_mngr(PyObject* m);
 PyMODINIT_FUNC
 initJitCore_x86(void)
 {
@@ -835,9 +834,6 @@ initJitCore_x86(void)
     Py_INCREF(&JitCpuType);
     PyModule_AddObject(m, "JitCpu", (PyObject *)&JitCpuType);
 
-    /* init vm */
-    init_vm_mngr(m);
-
 }
 
 
diff --git a/miasm2/jitter/jitcore_tcc.py b/miasm2/jitter/jitcore_tcc.py
index 7ea77b15..2f8ad23b 100644
--- a/miasm2/jitter/jitcore_tcc.py
+++ b/miasm2/jitter/jitcore_tcc.py
@@ -109,6 +109,7 @@ class JitCore_Tcc(jitcore.JitCore):
         # os.path.join(os.path.dirname(os.path.realpath(__file__)), "jitter")
         lib_dir = os.path.dirname(os.path.realpath(__file__))
         libs = []
+        libs.append(os.path.join(lib_dir, 'VmMngr.so'))
         libs.append(os.path.join(lib_dir, 'arch/JitCore_%s.so' % (self.ir_arch.arch.name)))
         libs = ';'.join(libs)
         jittcc_path = Jittcc.__file__
diff --git a/miasm2/jitter/jitload.py b/miasm2/jitter/jitload.py
index ccd0a35f..346746e8 100644
--- a/miasm2/jitter/jitload.py
+++ b/miasm2/jitter/jitload.py
@@ -8,6 +8,7 @@ from miasm2.jitter.csts import *
 from miasm2.core.utils import *
 from miasm2.core.bin_stream import bin_stream_vm
 from miasm2.ir.ir2C import init_arch_C
+from miasm2.jitter import VmMngr
 
 hnd = logging.StreamHandler()
 hnd.setFormatter(logging.Formatter("[%(levelname)s]: %(message)s"))
@@ -187,8 +188,9 @@ class jitter:
         else:
             raise ValueError("unsupported jit arch!")
 
+        self.vm = VmMngr.Vm()
         self.cpu = jcore.JitCpu()
-        self.vm = jcore.VmMngr()
+
         self.bs = bin_stream_vm(self.vm)
         self.ir_arch = ir_arch
         init_arch_C(self.arch)
diff --git a/miasm2/jitter/vm_mngr_py.c b/miasm2/jitter/vm_mngr_py.c
index 353d6d4b..952e620f 100644
--- a/miasm2/jitter/vm_mngr_py.c
+++ b/miasm2/jitter/vm_mngr_py.c
@@ -868,7 +868,7 @@ static PyGetSetDef VmMngr_getseters[] = {
 static PyTypeObject VmMngrType = {
     PyObject_HEAD_INIT(NULL)
     0,                         /*ob_size*/
-    "JitCore_x86_32.VmMngr",   /*tp_name*/
+    "VmMngr",                  /*tp_name*/
     sizeof(VmMngr),            /*tp_basicsize*/
     0,                         /*tp_itemsize*/
     (destructor)VmMngr_dealloc,/*tp_dealloc*/
@@ -907,24 +907,30 @@ static PyTypeObject VmMngrType = {
     VmMngr_new,                /* tp_new */
 };
 
+
+static PyMethodDef VmMngr_Methods[] = {
+	{NULL, NULL, 0, NULL}        /* Sentinel */
+
+};
+
 static PyObject *Vm_Mngr_Error;
 
-/*
-  return
-  0 on success
-  -1 on error
-*/
-int init_vm_mngr(PyObject* m)
+PyMODINIT_FUNC
+initVmMngr(void)
 {
+    PyObject *m;
+
     if (PyType_Ready(&VmMngrType) < 0)
-	return -1;
+	return;
 
-    Vm_Mngr_Error = PyErr_NewException("vm_mngr_.error", NULL, NULL);
+    m = Py_InitModule("VmMngr", VmMngr_Methods);
+    if (m == NULL)
+	    return;
+
+    Vm_Mngr_Error = PyErr_NewException("VmMngr.error", NULL, NULL);
     Py_INCREF(Vm_Mngr_Error);
     PyModule_AddObject(m, "error", Vm_Mngr_Error);
 
     Py_INCREF(&VmMngrType);
-    PyModule_AddObject(m, "VmMngr", (PyObject *)&VmMngrType);
-
-    return 0;
+    PyModule_AddObject(m, "Vm", (PyObject *)&VmMngrType);
 }
diff --git a/setup.py b/setup.py
index 3d5fedac..8c2b100a 100755
--- a/setup.py
+++ b/setup.py
@@ -24,50 +24,40 @@ def buil_all():
               'miasm2/jitter/loader',
               ]
     ext_modules_no_tcc = [
-        Extension("miasm2.jitter.arch.JitCore_x86",
+        Extension("miasm2.jitter.VmMngr",
                   ["miasm2/jitter/vm_mngr.c",
-                   "miasm2/jitter/vm_mngr_py.c",
-                   "miasm2/jitter/arch/JitCore.c",
+                   "miasm2/jitter/vm_mngr_py.c"]),
+        Extension("miasm2.jitter.arch.JitCore_x86",
+                  ["miasm2/jitter/arch/JitCore.c",
                    "miasm2/jitter/arch/JitCore_x86.c"]),
         Extension("miasm2.jitter.arch.JitCore_arm",
-                  ["miasm2/jitter/vm_mngr.c",
-                   "miasm2/jitter/vm_mngr_py.c",
-                   "miasm2/jitter/arch/JitCore.c",
+                  ["miasm2/jitter/arch/JitCore.c",
                    "miasm2/jitter/arch/JitCore_arm.c"]),
         Extension("miasm2.jitter.arch.JitCore_msp430",
-                  ["miasm2/jitter/vm_mngr.c",
-                   "miasm2/jitter/vm_mngr_py.c",
-                   "miasm2/jitter/arch/JitCore.c",
+                  ["miasm2/jitter/arch/JitCore.c",
                    "miasm2/jitter/arch/JitCore_msp430.c"]),
         Extension("miasm2.jitter.arch.JitCore_mips32",
-                  ["miasm2/jitter/vm_mngr.c",
-                   "miasm2/jitter/vm_mngr_py.c",
-                   "miasm2/jitter/arch/JitCore.c",
+                  ["miasm2/jitter/arch/JitCore.c",
                    "miasm2/jitter/arch/JitCore_mips32.c"]),
         Extension("miasm2.jitter.Jitllvm",
                   ["miasm2/jitter/Jitllvm.c"]),
         ]
 
     ext_modules_all = [
-        Extension("miasm2.jitter.arch.JitCore_x86",
+        Extension("miasm2.jitter.VmMngr",
                   ["miasm2/jitter/vm_mngr.c",
-                   "miasm2/jitter/vm_mngr_py.c",
-                   "miasm2/jitter/arch/JitCore.c",
+                   "miasm2/jitter/vm_mngr_py.c"]),
+        Extension("miasm2.jitter.arch.JitCore_x86",
+                  ["miasm2/jitter/arch/JitCore.c",
                    "miasm2/jitter/arch/JitCore_x86.c"]),
         Extension("miasm2.jitter.arch.JitCore_arm",
-                  ["miasm2/jitter/vm_mngr.c",
-                   "miasm2/jitter/vm_mngr_py.c",
-                   "miasm2/jitter/arch/JitCore.c",
+                  ["miasm2/jitter/arch/JitCore.c",
                    "miasm2/jitter/arch/JitCore_arm.c"]),
         Extension("miasm2.jitter.arch.JitCore_msp430",
-                  ["miasm2/jitter/vm_mngr.c",
-                   "miasm2/jitter/vm_mngr_py.c",
-                   "miasm2/jitter/arch/JitCore.c",
+                  ["miasm2/jitter/arch/JitCore.c",
                    "miasm2/jitter/arch/JitCore_msp430.c"]),
         Extension("miasm2.jitter.arch.JitCore_mips32",
-                  ["miasm2/jitter/vm_mngr.c",
-                   "miasm2/jitter/vm_mngr_py.c",
-                   "miasm2/jitter/arch/JitCore.c",
+                  ["miasm2/jitter/arch/JitCore.c",
                    "miasm2/jitter/arch/JitCore_mips32.c"]),
         Extension("miasm2.jitter.Jitllvm",
                   ["miasm2/jitter/Jitllvm.c"]),