summaryrefslogtreecommitdiff
path: root/src/format/elf/program.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/format/elf/program.c')
-rw-r--r--src/format/elf/program.c51
1 files changed, 50 insertions, 1 deletions
diff --git a/src/format/elf/program.c b/src/format/elf/program.c
index f55b7c7..48d6d19 100644
--- a/src/format/elf/program.c
+++ b/src/format/elf/program.c
@@ -2,7 +2,7 @@
/* OpenIDA - Outil d'analyse de fichiers binaires
* program.c - gestion des en-têtes de programme d'un ELF
*
- * Copyright (C) 2010 Cyrille Bagard
+ * Copyright (C) 2010-2013 Cyrille Bagard
*
* This file is part of OpenIDA.
*
@@ -30,6 +30,55 @@
/******************************************************************************
* *
+* Paramètres : p_type = type associé à un en-tête de programme. *
+* *
+* Description : Fournit la description humaine d'un type de segment ELF. *
+* *
+* Retour : Désignation prête à emploi. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+const char *get_elf_program_type_desc(uint32_t p_type)
+{
+ const char *result; /* Description à renvoyer */
+
+#define MAKE_STRING_FROM_PT(pt) case pt: result = #pt; break;
+
+ switch(p_type)
+ {
+ MAKE_STRING_FROM_PT(PT_NULL);
+ MAKE_STRING_FROM_PT(PT_LOAD);
+ MAKE_STRING_FROM_PT(PT_DYNAMIC);
+ MAKE_STRING_FROM_PT(PT_INTERP);
+ MAKE_STRING_FROM_PT(PT_NOTE);
+ MAKE_STRING_FROM_PT(PT_SHLIB);
+ MAKE_STRING_FROM_PT(PT_PHDR);
+ MAKE_STRING_FROM_PT(PT_TLS);
+ MAKE_STRING_FROM_PT(PT_NUM);
+ MAKE_STRING_FROM_PT(PT_LOOS);
+ MAKE_STRING_FROM_PT(PT_GNU_EH_FRAME);
+ MAKE_STRING_FROM_PT(PT_GNU_STACK);
+ MAKE_STRING_FROM_PT(PT_GNU_RELRO);
+ MAKE_STRING_FROM_PT(PT_LOSUNW);
+ MAKE_STRING_FROM_PT(PT_SUNWSTACK);
+ MAKE_STRING_FROM_PT(PT_HIOS);
+ MAKE_STRING_FROM_PT(PT_LOPROC);
+ MAKE_STRING_FROM_PT(PT_HIPROC);
+
+ default:
+ result = "PT_???";
+ break;
+ }
+
+ return result;
+
+}
+
+
+/******************************************************************************
+* *
* Paramètres : format = description de l'exécutable à consulter. *
* index = indice de la section recherchée. *
* program = ensemble d'informations à faire remonter. [OUT] *