EN JA
GELF_NEWPHDR(3)
GELF_NEWPHDR(3) FreeBSD Library Functions Manual GELF_NEWPHDR(3)

NAME

elf32_newphdr, elf64_newphdr, gelf_newphdrallocate an ELF program header table

LIBRARY

ELF Access Library (libelf, -lelf)

SYNOPSIS

#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);

DESCRIPTION

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 elf32_newphdr() and elf64_newphdr() 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 gelf_newphdr() 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 elf32_getphdr() or elf64_getphdr() on the same descriptor elf will no longer be valid.

RETURN VALUES

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

ERRORS

These functions may fail with the following errors:
[ ELF_E_ARGUMENT]
Argument elf was NULL.
[ ELF_E_ARGUMENT]
Argument elf was not a descriptor for an ELF object.
[ ELF_E_CLASS]
ELF descriptor elf was of an unrecognized class.
[ ELF_E_RESOURCE]
An out of memory condition was detected.
[ ELF_E_SEQUENCE]
An executable header was not allocated for ELF descriptor elf before using these APIs.
October 22, 2007 FreeBSD