diff options
Diffstat (limited to 'plugins/readelf/program.c')
-rw-r--r-- | plugins/readelf/program.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/plugins/readelf/program.c b/plugins/readelf/program.c index b1e253a..a71e1d1 100644 --- a/plugins/readelf/program.c +++ b/plugins/readelf/program.c @@ -206,13 +206,14 @@ static fmt_field_def _elf_phdr_64b[] = { /* Charge tous les symboles liés à un en-tête de programme ELF. */ -static bool annotate_elf_program_header(GElfFormat *, SourceEndian, vmpa2t *); +static bool annotate_elf_program_header(GElfFormat *, GPreloadInfo *, SourceEndian, vmpa2t *); /****************************************************************************** * * * Paramètres : format = description de l'exécutable à compléter. * +* info = informations à constituer en avance de phase. * * endian = boutisme présentement utilisé. * * pos = tête de lecture à déplacer. [OUT] * * * @@ -224,7 +225,7 @@ static bool annotate_elf_program_header(GElfFormat *, SourceEndian, vmpa2t *); * * ******************************************************************************/ -static bool annotate_elf_program_header(GElfFormat *format, SourceEndian endian, vmpa2t *pos) +static bool annotate_elf_program_header(GElfFormat *format, GPreloadInfo *info, SourceEndian endian, vmpa2t *pos) { bool result; /* Bilan à retourner */ elf_phdr phdr; /* En-tête de programme ELF */ @@ -287,28 +288,28 @@ static bool annotate_elf_program_header(GElfFormat *format, SourceEndian endian, bformat = G_BIN_FORMAT(format); - result = parse_field_definitions(PARSING_DEFS(_elf_phdr_base), bformat, pos, NULL); + result = parse_field_definitions(PARSING_DEFS(_elf_phdr_base), bformat, info, pos, NULL); if (format->is_32b) { if (result) - result = parse_field_definitions(PARSING_DEFS(_elf_phdr_32b_a), bformat, pos, NULL); + result = parse_field_definitions(PARSING_DEFS(_elf_phdr_32b_a), bformat, info, pos, NULL); if (result) - result = parse_field_definitions(&flags_field, 1, bformat, pos, NULL); + result = parse_field_definitions(&flags_field, 1, bformat, info, pos, NULL); if (result) - result = parse_field_definitions(PARSING_DEFS(_elf_phdr_32b_b), bformat, pos, NULL); + result = parse_field_definitions(PARSING_DEFS(_elf_phdr_32b_b), bformat, info, pos, NULL); } else { if (result) - result = parse_field_definitions(&flags_field, 1, bformat, pos, NULL); + result = parse_field_definitions(&flags_field, 1, bformat, info, pos, NULL); if (result) - result = parse_field_definitions(PARSING_DEFS(_elf_phdr_64b), bformat, pos, NULL); + result = parse_field_definitions(PARSING_DEFS(_elf_phdr_64b), bformat, info, pos, NULL); } @@ -322,6 +323,7 @@ static bool annotate_elf_program_header(GElfFormat *format, SourceEndian endian, /****************************************************************************** * * * Paramètres : format = description de l'exécutable à compléter. * +* info = informations à constituer en avance de phase. * * status = barre de statut à tenir informée. * * * * Description : Charge tous les symboles liés aux en-têtes de programme ELF. * @@ -332,7 +334,7 @@ static bool annotate_elf_program_header(GElfFormat *format, SourceEndian endian, * * ******************************************************************************/ -bool annotate_elf_program_header_table(GElfFormat *format, GtkStatusStack *status) +bool annotate_elf_program_header_table(GElfFormat *format, GPreloadInfo *info, GtkStatusStack *status) { bool result; /* Bilan à retourner */ const elf_header *header; /* En-tête principale */ @@ -359,7 +361,7 @@ bool annotate_elf_program_header_table(GElfFormat *format, GtkStatusStack *statu for (i = 0; i < e_phnum && result; i++) { - result = annotate_elf_program_header(format, endian, &pos); + result = annotate_elf_program_header(format, info, endian, &pos); gtk_status_stack_update_activity_value(status, msg, 1); |