diff options
Diffstat (limited to 'miasm2/jitter/Jitllvm.c')
| -rw-r--r-- | miasm2/jitter/Jitllvm.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/miasm2/jitter/Jitllvm.c b/miasm2/jitter/Jitllvm.c new file mode 100644 index 00000000..ab077b05 --- /dev/null +++ b/miasm2/jitter/Jitllvm.c @@ -0,0 +1,36 @@ +#include <Python.h> + +#include <inttypes.h> + +#include <stdint.h> + +PyObject* llvm_exec_bloc(PyObject* self, PyObject* args) +{ + uint64_t (*func)(void*, void*); + uint64_t vm; + uint64_t cpu; + uint64_t ret; + + if (!PyArg_ParseTuple(args, "KKK", &func, &cpu, &vm)) + return NULL; + ret = func((void*)cpu, (void*)vm); + return PyLong_FromUnsignedLongLong( (uint64_t)ret); +} + + +static PyMethodDef LLVMMethods[] = { + {"llvm_exec_bloc", llvm_exec_bloc, METH_VARARGS, + "llvm exec bloc"}, + {NULL, NULL, 0, NULL} /* Sentinel */ +}; + +PyMODINIT_FUNC +initJitllvm(void) +{ + PyObject *m; + + m = Py_InitModule("Jitllvm", LLVMMethods); + if (m == NULL) + return; + +} |