OpenBSD manual page server

Manual Page Search Parameters

GELF_NEWPHDR(3) Library Functions Manual GELF_NEWPHDR(3)

elf32_newphdr, elf64_newphdr, gelf_newphdrallocate an ELF program header table

library “libelf”

#include <libelf.h>

Elf32_Phdr *
elf32_newphdr(Elf *elf, size_t count);

Elf64_Phdr *
elf64_newphdr(Elf *elf, size_t count);

#include <gelf.h>

void *
gelf_newphdr(Elf *elf, size_t count);

These functions allocate an ELF Program Header table for an ELF descriptor. Elf32_Phdr and Elf64_Phdr descriptors are described further in elf(5).

Functions () and () allocate a table of count Elf32_Phdr and Elf64_Phdr descriptors respectively, discarding any existing program header table already present in the ELF descriptor elf. A value of zero for argument count may be used to delete an existing program header table from an ELF descriptor.

Function () will return a table of Elf32_Phdr or Elf64_Phdr with count elements depending on the ELF class of ELF descriptor elf.

The functions set the ELF_F_DIRTY flag on the program header table. All members of the returned array of Phdr structures will be initialized to zero.

After a successful call to these functions, the pointer returned by a prior call to () or () on the same descriptor elf will no longer be valid.

The functions a valid pointer if successful, or NULL in case an error was encountered.

The gelf_newphdr() function uses a type of void * for its returned value. This differs from some other implementations of the elf(3) API, which use an unsigned long return type.

These functions may fail with the following errors:

Argument elf was NULL.
Argument elf was not a descriptor for an ELF object.
ELF descriptor elf was of an unrecognized class.
An out of memory condition was detected.
An executable header was not allocated for ELF descriptor elf before using these APIs.

elf(3), elf32_getphdr(3), elf32_newehdr(3), elf64_getphdr(3), elf64_newehdr(3), elf_flagphdr(3), elf_getphnum(3), gelf(3), gelf_getphdr(3), gelf_newehdr(3), elf(5)

June 12, 2019 OpenBSD-current