diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2014-06-25 06:46:04 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2014-06-25 06:46:04 (GMT) |
commit | 3bf12eda58a8d04ac3d2d6754a480de4c262570d (patch) | |
tree | 010fc97ad481adc00ac4722d77093f469096638b /plugins/pychrysa/analysis/binary.c | |
parent | 11395d684736467fb010b93b0eaeefcc06bf0f5e (diff) |
Built the first steps to upgrade to Python3.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@379 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'plugins/pychrysa/analysis/binary.c')
-rw-r--r-- | plugins/pychrysa/analysis/binary.c | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/plugins/pychrysa/analysis/binary.c b/plugins/pychrysa/analysis/binary.c index c570cf9..807df7e 100644 --- a/plugins/pychrysa/analysis/binary.c +++ b/plugins/pychrysa/analysis/binary.c @@ -28,6 +28,105 @@ #include <pygobject.h> + + + + + + + +/****************************************************************************** +* * +* Paramètres : - * +* * +* Description : Fournit un accès à une définition de type à diffuser. * +* * +* Retour : Définition d'objet pour Python. * +* * +* Remarques : - * +* * +******************************************************************************/ + +PyTypeObject *get_python_loaded_binary_type(void) +{ + static PyTypeObject py_loaded_binary_type = { + + PyVarObject_HEAD_INIT(NULL, 0) + + .tp_name = "pychrysalide.analysis.LoadedBinary", + + .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, + + .tp_doc = "PyChrysalide loaded binary", + + }; + + return &py_loaded_binary_type; + +} + + + +#include <analysis/binary.h> + + + + +/****************************************************************************** +* * +* Paramètres : module = module dont la définition est à compléter. * +* * +* Description : Prend en charge l'objet 'pychrysalide.arch.loaded_binary'. * +* * +* Retour : Bilan de l'opération. * +* * +* Remarques : - * +* * +******************************************************************************/ + +bool register_python_loaded_binary(PyObject *module) +{ + PyTypeObject *py_loaded_binary_type; /* Type Python 'LoadedBinary' */ + int ret; /* Bilan d'un appel */ + PyObject *dict; /* Dictionnaire du module */ + + py_loaded_binary_type = get_python_loaded_binary_type(); + + py_loaded_binary_type->tp_base = &PyGObject_Type; + py_loaded_binary_type->tp_basicsize = py_loaded_binary_type->tp_base->tp_basicsize; + + if (PyType_Ready(py_loaded_binary_type) != 0) + return false; + + Py_INCREF(py_loaded_binary_type); + ret = PyModule_AddObject(module, "LoadedBinary", (PyObject *)py_loaded_binary_type); + if (ret != 0) return false; + + dict = PyModule_GetDict(module); + pygobject_register_class(dict, "LoadedBinary", G_TYPE_LOADED_BINARY, py_loaded_binary_type, + Py_BuildValue("(O)", py_loaded_binary_type->tp_base)); + + return true; + +} + + + + + + + + + + + + +#if 0 + + +#include <pygobject.h> + + #include <analysis/binary.h> @@ -258,3 +357,6 @@ bool register_python_loaded_binary(PyObject *module) return (ret == 0); } + +#endif + |