summaryrefslogtreecommitdiff
path: root/src/core/formats.h
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2015-02-11 17:05:54 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2015-02-11 17:05:54 (GMT)
commitbf879f2562545ab7de23f9d38364b7bd4b43fb2c (patch)
tree6154160307cbca304ea9e1de178d8c2dfc8e0928 /src/core/formats.h
parentabd96dbbe27246e9303173e5e2f47b2e4cedbcb7 (diff)
Registered all the supported formats in the system code.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@471 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/core/formats.h')
-rw-r--r--src/core/formats.h62
1 files changed, 62 insertions, 0 deletions
diff --git a/src/core/formats.h b/src/core/formats.h
new file mode 100644
index 0000000..bc16f01
--- /dev/null
+++ b/src/core/formats.h
@@ -0,0 +1,62 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * formats.h - prototypes pour l'enregistrement et la fourniture des formats de binaires supportés
+ *
+ * Copyright (C) 2015 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 _CORE_FORMATS_H
+#define _CORE_FORMATS_H
+
+
+#include <glib-object.h>
+#include <stdbool.h>
+
+
+#include "../format/format.h"
+
+
+/* Indication à propos du support d'un format */
+typedef bool (* format_match_fc) (GBinContent *);
+
+/* Méthode de chargement d'un format */
+typedef GBinFormat * (* format_load_fc) (GBinContent *);
+
+
+/* Enregistre un format de contenu binaire donné. */
+bool register_format_type(const char *, const char *, format_match_fc, format_load_fc);
+
+/* Charge les définitions de formats "natifs". */
+bool load_hard_coded_formats_definitions(void);
+
+/* Décharge toutes les définitions de formats. */
+void unload_formats_definitions(void);
+
+/* Fournit le nom humain du format binaire visé. */
+const char *get_binary_format_name(const char *);
+
+/* Identifie un format binaire par son contenu. */
+const char *find_matching_format(GBinContent *);
+
+/* Charge le format binaire correspondant à un type. */
+GBinFormat *load_new_named_format(const char *, GBinContent *);
+
+
+
+#endif /* _ANALYSIS_DB_COLLECTION_H */