elf_xlate(3E) MISC. REFERENCE MANUAL PAGES elf_xlate(3E)
NAME
elfxlate: elf32xlatetof, elf32xlatetom - class-dependent
data translation
SYNOPSIS
cc [flag ...] file ... -lelf [library ...]
#include <libelf.h>
ElfData *elf32xlatetof(ElfData *dst, const ElfData *src,
unsigned encode);
ElfData *elf32xlatetom(ElfData *dst, const ElfData *src,
unsigned encode);
DESCRIPTION
elf32xlatetom translates various data structures from their
32-bit class file representations to their memory represen-
tations; elf32xlatetof provides the inverse. This conver-
sion is particularly important for cross development
environments. src is a pointer to the source buffer that
holds the original data; dst is a pointer to a destination
buffer that will hold the translated copy. encode gives the
byte encoding in which the file objects are (to be)
represented and must have one of the encoding values defined
for the ELF header's eident[EIDATA] entry [see
elfgetident(3E)]. If the data can be translated, the func-
tions return dst. Otherwise, they return null because an
error occurred, such as incompatible types, destination
buffer overflow, etc. elfgetdata(3E) describes the
ElfData descriptor, which the translation routines use as
follows.
dbuf Both the source and destination must have
valid buffer pointers.
dtype This member's value specifies the type of the
data to which dbuf points and the type of
data to be created in the destination. The
program supplies a dtype value in the source;
the library sets the destination's dtype to
the same value. These values are summarized
below.
dsize This member holds the total size, in bytes, of
the memory occupied by the source data and the
size allocated for the destination data. If
the destination buffer is not large enough,
the routines do not change its original con-
tents. The translation routines reset the
destination's dsize member to the actual size
required, after the translation occurs. The
source and destination sizes may differ.
Last change: ELF Library 1
elf_xlate(3E) MISC. REFERENCE MANUAL PAGES elf_xlate(3E)
dversion This member holds version number of the
objects (desired) in the buffer. The source
and destination versions are independent.
Translation routines allow the source and des-
tination buffers to coincide. That is, dst-
>dbuf may equal src->dbuf. Other cases
where the source and destination buffers over-
lap give undefined behavior.
ElfType 32-Bit Memory Type
________________________________
ELFTADDR | Elf32Addr
ELFTBYTE | unsigned char
ELFTDYN | Elf32Dyn
ELFTEHDR | Elf32Ehdr
ELFTHALF | Elf32Half
ELTTOFF | Elf32Off
ELFTPHDR | Elf32Phdr
ELFTREL | Elf32Rel
ELFTRELA | Elf32Rela
ELFTSHDR | Elf32Shdr
ELFTSWORD| Elf32Sword
ELFTSYM | Elf32Sym
ELFTWORD | Elf32Word
___________|____________________
``Translating'' buffers of type ELFTBYTE
does not change the byte order.
SEE ALSO
elf(3E), elffsize(3E), elfgetdata(3E), elfgetident(3E).
Last change: ELF Library 2