diff options
| -rw-r--r-- | miasm2/jitter/arch/JitCore_arm.c | 4 | ||||
| -rw-r--r-- | miasm2/jitter/arch/JitCore_mips32.c | 4 | ||||
| -rw-r--r-- | miasm2/jitter/arch/JitCore_msp430.c | 4 | ||||
| -rw-r--r-- | miasm2/jitter/arch/JitCore_x86.c | 4 | ||||
| -rw-r--r-- | miasm2/jitter/jitcore_tcc.py | 1 | ||||
| -rw-r--r-- | miasm2/jitter/jitload.py | 4 | ||||
| -rw-r--r-- | miasm2/jitter/vm_mngr_py.c | 30 | ||||
| -rwxr-xr-x | setup.py | 38 |
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"]), |