HPlogo HP-UX Reference Volume 4 of 5 > e

elf_getphdr(3E)

» 

Technical documentation

Complete book in PDF

 » Table of Contents

 » Index

NAME

elf32_getphdr, elf32_newphdr, elf64_getphdr, elf64_newphdr — retrieve class-dependent program header table for elf32 and elf64 files, respectively

SYNOPSIS

cc [flag... ] file... -lelf [library] ...

#include <libelf.h>

Elf32_Ehdr *elf32_getphdr(Elf *elf); Elf32_Ehdr *elf32_newphdr(Elf *elf, size_t count); Elf64_Ehdr *elf64_getphdr(Elf *elf); Elf64_Ehdr *elf64_newphdr(Elf *elf, size_t count);

DESCRIPTION

For a 32-bit class file, elf32_getphdr returns a pointer to the program execution header table, if one is available for the ELF descriptor elf.

elf32_newphdr allocates a new table with count entries, regardless of whether one existed previously, and sets the ELF_F_DIRTY bit for the table (see elf_flag(3E)). Specifying a zero count deletes an existing table. Note this behavior differs from that of elf32_newehdr (see elf_getehdr(3E)), allowing a program to replace or delete the program header table, changing its size if necessary.

If no program header table exists, the file is not a 32-bit class file, an error occurs, or elf is null, both functions return a null pointer. Additionally, elf32_newphdr returns a null pointer if count is zero.

The table is an array of Elf32_Phdr structures, each of which includes the following members.

Elf32_Word p_type; Elf32_Off p_offset; Elf32_Addr p_vaddr; Elf32_Addr p_paddr; Elf32_Word p_filesz; Elf32_Word p_memsz; Elf32_Word p_flags; Elf32_Word p_align;

The ELF header's e_phnum member tells how many entries the program header table has (see elf_getehdr(3E)). A program may inspect this value to determine the size of an existing table; elf32_newphdr automatically sets the member's value to count. If the program is building a new file, it is responsible for creating the file's ELF header before creating the program header table.

For a 64-bit class file, elf64_getphdr returns a pointer to the program execution header table, if one is available for the ELF descriptor elf.

elf64_newphdr allocates a new table with count entries, regardless of whether one existed previously, and sets the ELF_F_DIRTY bit for the table (see elf_flag(3E)). Specifying a zero count deletes an existing table. Note this behavior differs from that of elf64_newehdr (see elf_getehdr(3E)), allowing a program to replace or delete the program header table, changing its size if necessary.

If no program header table exists, the file is not a 64-bit class file, an error occurs, or elf is null, both functions return a null pointer. Additionally, elf64_newphdr returns a null pointer if count is zero.

The table is an array of Elf64_Phdr structures, each of which includes the following members.

Elf64_Word p_type; Elf64_Off p_offset; Elf64_Addr p_vaddr; Elf64_Addr p_paddr; Elf64_Word p_filesz; Elf64_Word p_memsz; Elf64_Word p_flags; Elf64_Word p_align;

The ELF header's e_phnum member tells how many entries the program header table has (see elf_getehdr(3E)). A program may inspect this value to determine the size of an existing table; elf64_newphdr automatically sets the member's value to count. If the program is building a new file, it is responsible for creating the file's ELF header before creating the program header table.

© Hewlett-Packard Development Company, L.P.