GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
GELF_NEWEHDR(3) FreeBSD Library Functions Manual GELF_NEWEHDR(3)

elf32_newehdr, elf64_newehdr, gelf_newehdr
retrieve or allocate the object file header

ELF Access Library (libelf, -lelf)

#include <libelf.h>

Elf32_Ehdr *
elf32_newehdr(Elf *elf);

Elf64_Ehdr *
elf64_newehdr(Elf *elf);

#include <gelf.h>

void *
gelf_newehdr(Elf *elf, int elfclass);

These functions retrieve the ELF header from the ELF descriptor elf, allocating a new header if needed. File data structures are translated to their in-memory representations as described in elf(3).

Function elf32_newehdr() returns a pointer to a 32 bit Elf32_Ehdr structure. Function elf64_newehdr() returns a pointer to a 64 bit Elf64_Ehdr structure.

When argument elfclass has value ELFCLASS32, function gelf_newehdr() returns the value returned by elf32_newehdr(elf). When argument elfclass has value ELFCLASS64 it returns the value returned by elf64_newehdr(elf).

If a fresh header structure is allocated, the members of the structure are initialized as follows:

e_ident[EI_MAG0..EI_MAG3]
Identification bytes at offsets EI_MAG0, EI_MAG1, EI_MAG2 and EI_MAG3 are set to the ELF signature.
e_ident[EI_CLASS]
The identification byte at offset EI_CLASS is set to the ELF class associated with the function being called or to argument elfclass for function gelf_newehdr().
e_ident[EI_DATA]
The identification byte at offset EI_DATA is set to ELFDATANONE.
e_ident[EI_VERSION]
The identification byte at offset EI_VERSION is set to the ELF library's operating version set by a prior call to elf_version(3).
e_machine
is set to EM_NONE.
e_type
is set to ELF_K_NONE.
e_version
is set to the ELF library's operating version set by a prior call to elf_version(3).

Other members of the header are set to zero. The application is responsible for changing these values as needed before calling elf_update().

If successful, these three functions set the ELF_F_DIRTY flag on ELF descriptor elf.

These functions return a pointer to a translated header descriptor if successful, or NULL on failure.

The gelf_newehdr() 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 can fail with the following errors:
[]
The argument elf was null.
[]
Argument elf was not a descriptor for an ELF object.
[]
Argument elfclass had an unsupported value.
[]
The class of the ELF descriptor elf did not match that of the requested operation.
[]
For function gelf_newehdr(), the class of argument elf was not ELFCLASSNONE and did not match the argument elfclass.
[]
The ELF class of descriptor elf did not match that of the API function being called.
[]
A malformed ELF header was detected.
[]
An out of memory condition was detected during execution.
[]
The ELF descriptor in argument elf did not adhere to the conventions used for extended numbering.
[]
The ELF descriptor elf had an unsupported ELF version number.

elf(3), elf32_getehdr(3), elf64_getehdr(3), elf_flagdata(3), elf_getident(3), elf_update(3), elf_version(3), gelf(3), gelf_getehdr(3), elf(5)
June 12, 2019 FreeBSD 13.1-RELEASE

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.