summaryrefslogtreecommitdiff
path: root/plugins/pychrysa/analysis/module.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2015-07-17 16:36:21 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2015-07-17 16:36:21 (GMT)
commit24d3836fcf8d443eb654b981f65478cd9923b8f1 (patch)
tree7672a28b864127e8958c3c6cce751dcf646d2fbe /plugins/pychrysa/analysis/module.c
parenta61f089babe336b012da31a494b0f7470b6e1a9a (diff)
Updated the Python bindings.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@552 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'plugins/pychrysa/analysis/module.c')
-rw-r--r--plugins/pychrysa/analysis/module.c104
1 files changed, 19 insertions, 85 deletions
diff --git a/plugins/pychrysa/analysis/module.c b/plugins/pychrysa/analysis/module.c
index e13c8f8..d45a3f1 100644
--- a/plugins/pychrysa/analysis/module.c
+++ b/plugins/pychrysa/analysis/module.c
@@ -25,8 +25,15 @@
#include "module.h"
+#include <assert.h>
+
+
#include "binary.h"
+#include "block.h"
+#include "routine.h"
#include "binaries/module.h"
+#include "blocks/module.h"
+#include "db/module.h"
@@ -48,7 +55,7 @@ bool add_analysis_module_to_python_module(PyObject *super)
PyObject *module; /* Sous-module mis en place */
int ret; /* Bilan d'un appel */
- static PyModuleDef py_chrysalide_arch_module = {
+ static PyModuleDef py_chrysalide_analysis_module = {
.m_base = PyModuleDef_HEAD_INIT,
@@ -61,106 +68,33 @@ bool add_analysis_module_to_python_module(PyObject *super)
result = false;
- module = PyModule_Create(&py_chrysalide_arch_module);
+ module = PyModule_Create(&py_chrysalide_analysis_module);
if (module == NULL) return false;
- ret = PyState_AddModule(super, &py_chrysalide_arch_module);
- if (ret != 0) goto aamtpm_exit;
+ ret = PyState_AddModule(super, &py_chrysalide_analysis_module);
+ if (ret != 0) goto loading_failed;
ret = _PyImport_FixupBuiltin(module, "pychrysalide.analysis");
- if (ret != 0) goto aamtpm_exit;
+ if (ret != 0) goto loading_failed;
Py_INCREF(module);
ret = PyModule_AddObject(super, "analysis", module);
- if (ret != 0) goto aamtpm_exit;
+ if (ret != 0) goto loading_failed;
result = true;
result &= register_python_loaded_binary(module);
+ result &= register_python_instr_block(module);
+ result &= register_python_binary_routine(module);
result &= add_analysis_binaries_module_to_python_module(module);
+ result &= add_analysis_blocks_module_to_python_module(module);
+ result &= add_analysis_db_module_to_python_module(module);
- aamtpm_exit:
-
- if (!result)
- {
- printf("something went wrong in %s...\n", __FUNCTION__);
- /* ... */
-
- }
-
- return result;
-
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ loading_failed:
-#if 0
-#include "binary.h"
-#include "block.h"
-#include "routine.h"
-#include "binaries/module.h"
-#include "blocks/module.h"
-
-
-
-/******************************************************************************
-* *
-* Paramètres : module = module dont la définition est à compléter. *
-* *
-* Description : Ajoute le module 'analysis' au module Python. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-bool add_analysis_module_to_python_module(PyObject *super)
-{
- bool result;
- PyObject *module;
- int ret; /* Bilan d'un appel */
-
- static PyMethodDef py_analysis_methods[] = {
- { NULL }
- };
-
- module = Py_InitModule("pychrysalide.analysis", py_analysis_methods);
- if (module == NULL) return false;
-
- Py_INCREF(module);
- ret = PyModule_AddObject(super, "pychrysalide.analysis", module);
-
- result = (ret == 0);
-
- result &= register_python_loaded_binary(module);
- result &= register_python_binary_routine(module);
- result &= register_python_instructions_block(module);
- result &= add_binaries_module_to_python_module(module);
- result &= add_blocks_module_to_python_module(module);
+ assert(result);
return result;
}
-#endif