elf64_newehdr, gelf_newehdr, elf32_newehdr(3) | retrieve or allocate the object file header |
elf32_newehdr, gelf_newehdr, elf64_newehdr(3) | retrieve or allocate the object file header |
gelf_newehdr, elf32_newehdr, elf64_newehdr(3) | retrieve or allocate the object file header |
GELF_NEWEHDR(3) | MidnightBSD 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:
EI_MAG0
,
EI_MAG1
, EI_MAG2
and
EI_MAG3
are set to the ELF signature.EI_CLASS
is set
to the ELF class associated with the function being called or to argument
elfclass for function
gelf_newehdr
().EI_DATA
is set
to ELFDATANONE
.EI_VERSION
is
set to the ELF library's operating version set by a prior call to
elf_version(3).EM_NONE
.ELF_K_NONE
.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:
ELF_E_ARGUMENT
]ELF_E_ARGUMENT
]ELF_E_ARGUMENT
]ELF_E_ARGUMENT
]ELF_E_ARGUMENT
]gelf_newehdr
(), the class of argument
elf was not ELFCLASSNONE
and
did not match the argument elfclass.ELF_E_CLASS
]ELF_E_HEADER
]ELF_E_RESOURCE
]ELF_E_SECTION
]ELF_E_VERSION
]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 | midnightbsd-3.1 |