GPLv2 release
[centaur.git] / include / libelfu / elfops.h
index cf40090d7f2cfa0afc129cde71ca269d36ab94f6..dca8dfa04b38d7d5a58586053e6d55bacbe585e7 100644 (file)
@@ -1,20 +1,53 @@
+/* This file is part of centaur.
+ *
+ * centaur is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License 2 as
+ * published by the Free Software Foundation.
+
+ * centaur 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 centaur.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*!
+ * @file elfops.h
+ * @brief Operations offered by libelfu on libelf handles
+ *
+ * This includes:
+ *  - Checks
+ *  - Post-processing for ELF specification compliance
+ */
+
 #ifndef __LIBELFU_ELFOPS_H_
 #define __LIBELFU_ELFOPS_H_
 
-#include <libelf/libelf.h>
-#include <libelf/gelf.h>
+#include <libelf.h>
+#include <gelf.h>
 
 #include <libelfu/types.h>
 
 
+/*!
+ * @brief Perform a large array of sanity checks.
+ * @param e libelf handle to file to be checked.
+ * @result 0 if successful.
+ *         Anything else indicates an error.
+ * @note If a file does not pass these checks,
+ *       then it cannot be processed by libelfu.
+ */
 int elfu_eCheck(Elf *e);
 
-   char* elfu_eScnName(Elf *e, Elf_Scn *scn);
-Elf_Scn* elfu_eScnByName(Elf *e, char *name);
 
-Elf_Scn* elfu_eScnFirstInSegment(Elf *e, GElf_Phdr *phdr);
-Elf_Scn* elfu_eScnLastInSegment(Elf *e, GElf_Phdr *phdr);
 
-void elfu_ePhdrFixupSelfRef(Elf *e);
+/*!
+ * @brief Reorder PHDRs to comply with ELF specification.
+ * @param e libelf handle to file to be post-processed.
+ */
+void elfu_eReorderPhdrs(Elf *e);
+
 
 #endif