diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2014-11-14 19:22:25 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2014-11-14 19:22:25 (GMT) |
commit | 44e6aa9039585ad95fb9c6f21535d89457563297 (patch) | |
tree | a613aec315c32dcd83be426c31eb1bffc76ee657 /tools/spec.h | |
parent | 8056807369571b593b25fad926daa6a447d757fa (diff) |
Rewritten and extended the whole code for the instructions definitions compiler.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@419 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'tools/spec.h')
-rw-r--r-- | tools/spec.h | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/tools/spec.h b/tools/spec.h new file mode 100644 index 0000000..46d922b --- /dev/null +++ b/tools/spec.h @@ -0,0 +1,72 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * spec.h - prototypes pour la représentation complète d'un encodage + * + * Copyright (C) 2014 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * 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 <http://www.gnu.org/licenses/>. + */ + + +#ifndef _TOOLS_SPEC_H +#define _TOOLS_SPEC_H + + +#include <stdbool.h> + + +#include "bits.h" +#include "conv.h" +#include "pproc.h" +#include "rules.h" +#include "syntax.h" + + + +/* Mémorisation d'un encodage complet */ +typedef struct _encoding_spec encoding_spec; + + +/* Crée un nouveau suivi de l'encodage d'une instruction. */ +encoding_spec *create_encoding_spec(void); + +/* Supprime de la mémoire un suivi d'encodage d'une instruction. */ +void delete_encoding_spec(encoding_spec *); + +/* Définit le nom de code d'une spécification d'encodage. */ +void define_encoding_spec_code_name(encoding_spec *, char *, unsigned int); + +/* Indique si une spécification se range dans une catégorie. */ +bool has_encoding_spec_prefix(const encoding_spec *, const char *); + +/* Fournit le gestionnaire des bits d'un encodage d'instruction. */ +coding_bits *get_bits_in_encoding_spec(const encoding_spec *); + +/* Fournit l'indicateur des écritures correctes d'assembleur. */ +asm_syntax *get_syntax_in_encoding_spec(const encoding_spec *); + +/* Fournit la liste des fonctions de conversion. */ +conv_list *get_conversions_in_encoding_spec(const encoding_spec *); + +/* Fournit un ensemble de règles supplémentaires éventuel. */ +decoding_rules *get_rules_in_encoding_spec(const encoding_spec *); + +/* Traduit en code une sous-fonction de désassemblage. */ +bool write_encoding_spec_disass(const encoding_spec *, int, const char *, const char *, const char *, unsigned int, const pre_processor *); + + + +#endif /* _TOOLS_SPEC_H */ |