diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2016-12-30 11:11:00 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2016-12-30 11:11:00 (GMT) |
commit | 24731773b654f40cb1d59c3da5216a3be90e2d6f (patch) | |
tree | 71395d91b57da3a769f43e86dc808097783b9e08 /src/analysis/blocks/flow.h | |
parent | 932ea7c83c07d3982fee605c6dd9895fd2753874 (diff) |
Deleted old code.
Diffstat (limited to 'src/analysis/blocks/flow.h')
-rw-r--r-- | src/analysis/blocks/flow.h | 102 |
1 files changed, 0 insertions, 102 deletions
diff --git a/src/analysis/blocks/flow.h b/src/analysis/blocks/flow.h deleted file mode 100644 index 45671ad..0000000 --- a/src/analysis/blocks/flow.h +++ /dev/null @@ -1,102 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * flow.h - prototypes pour l'encadrement des instructions par blocs d'exécution - * - * Copyright (C) 2012-2013 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * Chrysalide is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * Chrysalide is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar. If not, see <http://www.gnu.org/licenses/>. - */ - - -#ifndef _ANALYSIS_BLOCKS_FLOW_H -#define _ANALYSIS_BLOCKS_FLOW_H - - -#include <glib.h> -#include <glib-object.h> - - -#include "raccess.h" -#include "../block.h" -#include "../../arch/processor.h" - - - -#define G_TYPE_FLOW_BLOCK g_flow_block_get_type() -#define G_FLOW_BLOCK(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), g_flow_block_get_type(), GFlowBlock)) -#define G_IS_FLOW_BLOCK(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), g_flow_block_get_type())) -#define G_FLOW_BLOCK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), G_TYPE_FLOW_BLOCK, GFlowBlockClass)) -#define G_IS_FLOW_BLOCK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), G_TYPE_FLOW_BLOCK)) -#define G_FLOW_BLOCK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), G_TYPE_FLOW_BLOCK, GFlowBlockClass)) - - -/* Description d'un bloc d'exécution d'instructions (instance) */ -typedef struct _GFlowBlock GFlowBlock; - -/* Description d'un bloc d'exécution d'instructions (classe) */ -typedef struct _GFlowBlockClass GFlowBlockClass; - - -/* Position au cours d'une visite */ -typedef enum _BlockFollowPosition -{ - BFP_ENTER = (1 << 0), /* Entrée dans le bloc */ - BFP_FOLLOW = (1 << 1), /* Suivi des liens : aller... */ - BFP_BACK = (1 << 2), /* Suivi des liens : retour ! */ - BFP_EXIT = (1 << 3) /* Sortie du bloc */ - -} BlockFollowPosition; - -/* Rappel à chaque bloc visité */ -typedef bool (* flow_block_follow_cb) (GFlowBlock *, BlockFollowPosition, void *); - - -/* Indique le type défini pour un bloc d'exécution d'instructions. */ -GType g_flow_block_get_type(void); - -/* Crée un bloc d'exécution d'instructions. */ -GInstrBlock *g_flow_block_new(GArchProcessor *, GArchInstruction *, GArchInstruction *); - -/* Fournit le rang du bloc dans le flot d'exécution. */ -unsigned int g_flow_block_get_rank(const GFlowBlock *); - -/* Définit le rang du bloc dans le flot d'exécution. */ -void g_flow_block_set_rank(GFlowBlock *, unsigned int); - -/* Donne le processeur d'appartenance des instructions du bloc. */ -GArchProcessor *g_flow_block_get_processor(const GFlowBlock *); - -/* Fournit les instructions limites d'un bloc d'exécution. */ -void g_flow_block_get_boundary(const GFlowBlock *, GArchInstruction **, GArchInstruction **); - -/* Fournit les adresses limites d'un bloc d'exécution. */ -void g_flow_block_get_boundary_addresses(const GFlowBlock *, vmpa2t *, vmpa2t *); - -/* Détermine si un bloc peut conduire à un autre. */ -bool g_flow_block_is_looping_to(GFlowBlock *, const GInstrBlock *, GFlowBlock *); - -/* Suit le flot d'excution bloc par bloc. */ -bool g_flow_block_follow(GFlowBlock *, const GInstrBlock *, BlockFollowPosition, flow_block_follow_cb, void *); - -/* Fournit les différents accès aux registres. */ -const GRAccessList *g_flow_block_list_regs_accesses(const GFlowBlock *); - -/* Fournit les registres écrits par le bloc et utilisées après. */ -GRAccessList *g_flow_block_list_awaited_regs(const GFlowBlock *); - - - -#endif /* _ANALYSIS_BLOCKS_FLOW_H */ |