/* OpenIDA - Outil d'analyse de fichiers binaires * format-int.h - prototypes utiles aux formats binaires * * Copyright (C) 2009-2010 Cyrille Bagard * * This file is part of OpenIDA. * * OpenIDA 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. * * OpenIDA 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 . */ #ifndef _FORMAT_FORMAT_INT_H #define _FORMAT_FORMAT_INT_H #include "format.h" /* ------------------------ TRAITEMENT INDIVIDUEL DE FORMATS ------------------------ */ /* Procède à la décompilation complète du format. */ typedef void (* format_decompile_fc) (const GBinFormat *, GCodeBuffer *, const char *); /* Format binaire générique (instance) */ struct _GBinFormat { GObject parent; /* A laisser en premier */ const bin_t *content; /* Contenu binaire à étudier */ off_t length; /* Taille de ce contenu */ GBinSymbol **symbols; /* Liste des symboles trouvés */ size_t symbols_count; /* Quantité de ces symboles */ GBinRoutine **routines; /* Liste des routines trouvées */ size_t routines_count; /* Nombre de ces routines */ const char **src_files; /* Nom des fichiers source */ size_t src_count; /* Taille de la liste */ size_t def_source; /* Fichier source principal */ format_decompile_fc decompile; /* Décompilation d'un fichier */ }; /* Format binaire générique (classe) */ struct _GBinFormatClass { GObjectClass parent; /* A laisser en premier */ }; /* Définit le contenu binaire à analyser. */ void g_binary_format_set_content(GBinFormat *, const bin_t *, off_t); #endif /* _FORMAT_FORMAT_INT_H */