+/*!
+ * @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