summaryrefslogtreecommitdiff
path: root/src/analysis/prototype.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/analysis/prototype.c')
-rw-r--r--src/analysis/prototype.c97
1 files changed, 75 insertions, 22 deletions
diff --git a/src/analysis/prototype.c b/src/analysis/prototype.c
index 0d2ebf5..1e27f2c 100644
--- a/src/analysis/prototype.c
+++ b/src/analysis/prototype.c
@@ -32,14 +32,12 @@
-/* Variable représentant un prototype de routine */
-struct _bin_routine
+/* Représentation générique de routine (instance) */
+struct _GBinRoutine
{
+ GObject parent; /* A laisser en premier */
- uint64_t offset; /* Position physique/mémoire */
-
-
-
+ vmpa_t addr; /* Position physique/mémoire */
RoutineType type; /* Type de routine */
@@ -53,6 +51,61 @@ struct _bin_routine
};
+/* Représentation générique de routine (classe) */
+struct _GBinRoutineClass
+{
+ GObjectClass parent; /* A laisser en premier */
+
+};
+
+
+/* Initialise la classe des représentation de routine. */
+static void g_bin_routine_class_init(GBinRoutineClass *);
+
+/* Initialise une instance représentation de routine. */
+static void g_bin_routine_init(GBinRoutine *);
+
+
+
+/* Indique le type définit pour une représentation de routine. */
+G_DEFINE_TYPE(GBinRoutine, g_bin_routine, G_TYPE_OBJECT);
+
+
+/******************************************************************************
+* *
+* Paramètres : klass = classe à initialiser. *
+* *
+* Description : Initialise la classe des représentation de routine. *
+* *
+* Retour : - *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+static void g_bin_routine_class_init(GBinRoutineClass *klass)
+{
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : line = instance à initialiser. *
+* *
+* Description : Initialise une instance représentation de routine. *
+* *
+* Retour : - *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+static void g_bin_routine_init(GBinRoutine *line)
+{
+
+}
+
/******************************************************************************
* *
@@ -66,11 +119,11 @@ struct _bin_routine
* *
******************************************************************************/
-bin_routine *create_binary_routine(void)
+GBinRoutine *g_binary_routine_new(void)
{
- bin_routine *result; /* Structure à retourner */
+ GBinRoutine *result; /* Structure à retourner */
- result = (bin_routine *)calloc(1, sizeof(bin_routine));
+ result = g_object_new(G_TYPE_BIN_ROUTINE, NULL);
return result;
@@ -88,8 +141,8 @@ bin_routine *create_binary_routine(void)
* Remarques : - *
* *
******************************************************************************/
-
-void delete_binary_routine(bin_routine *routine)
+#if 0 /* FIXME */
+void g_binary_routine_finalize(GBinRoutine *routine)
{
size_t i; /* Boucle de parcours */
@@ -105,12 +158,12 @@ void delete_binary_routine(bin_routine *routine)
free(routine);
}
-
+#endif
/******************************************************************************
* *
* Paramètres : routine = routine à mettre à jour. *
-* offset = position mémoire ou physique déclarée. *
+* addr = position mémoire ou physique déclarée. *
* *
* Description : Définit la position physique / en mémoire d'une routine. *
* *
@@ -120,9 +173,9 @@ void delete_binary_routine(bin_routine *routine)
* *
******************************************************************************/
-void set_binary_routine_offset(bin_routine *routine, uint64_t offset)
+void g_binary_routine_set_address(GBinRoutine *routine, vmpa_t addr)
{
- routine->offset = offset;
+ routine->addr = addr;
}
@@ -139,9 +192,9 @@ void set_binary_routine_offset(bin_routine *routine, uint64_t offset)
* *
******************************************************************************/
-uint64_t get_binary_routine_offset(const bin_routine *routine)
+vmpa_t g_binary_routine_get_address(const GBinRoutine *routine)
{
- return routine->offset;
+ return routine->addr;
}
@@ -159,7 +212,7 @@ uint64_t get_binary_routine_offset(const bin_routine *routine)
* *
******************************************************************************/
-void set_binary_routine_type(bin_routine *routine, RoutineType type)
+void g_binary_routine_set_type(GBinRoutine *routine, RoutineType type)
{
routine->type = type;
@@ -179,7 +232,7 @@ void set_binary_routine_type(bin_routine *routine, RoutineType type)
* *
******************************************************************************/
-void set_binary_routine_name(bin_routine *routine, char *name)
+void g_binary_routine_set_name(GBinRoutine *routine, char *name)
{
if (routine->name != NULL)
free(routine->name);
@@ -202,7 +255,7 @@ void set_binary_routine_name(bin_routine *routine, char *name)
* *
******************************************************************************/
-void set_binary_routine_return_type(bin_routine *routine, variable *var)
+void g_binary_routine_set_return_type(GBinRoutine *routine, variable *var)
{
if (routine->ret_type != NULL)
delete_var(routine->ret_type);
@@ -225,7 +278,7 @@ void set_binary_routine_return_type(bin_routine *routine, variable *var)
* *
******************************************************************************/
-void add_arg_to_binary_routine(bin_routine *routine, variable *var)
+void g_binary_routine_add_arg(GBinRoutine *routine, variable *var)
{
routine->args_count++;
@@ -249,7 +302,7 @@ void add_arg_to_binary_routine(bin_routine *routine, variable *var)
* *
******************************************************************************/
-char *routine_to_string(const bin_routine *routine)
+char *g_binary_routine_to_string(const GBinRoutine *routine)
{
char *result; /* Chaîne à renvoyer */
size_t i; /* Boucle de parcours */