ELF32_XLATETOF(3ELF)        ELF Library Functions       ELF32_XLATETOF(3ELF)
NAME
       elf32_xlatetof, elf32_xlatetom, elf64_xlatetof, elf64_xlatetom -
       class-dependent data translation
SYNOPSIS
       cc [ 
flag ... ] 
file... 
-lelf [ 
library ... ]
       #include <libelf.h>       
Elf_Data *elf32_xlatetof(
Elf_Data *dst, 
const Elf_Data *src,            
unsigned encode);       
Elf_Data *elf32_xlatetom(
Elf_Data *dst, 
const Elf_Data *src,            
unsigned encode);       
Elf_Data *elf64_xlatetof(
Elf_Data *dst, 
const Elf_Data *src,            
unsigned encode);       
Elf_Data *elf64_xlatetom(
Elf_Data *dst, 
const Elf_Data *src,            
unsigned encode);
DESCRIPTION
       elf32_xlatetom() translates various data structures from their 32-bit
       class file representations to their memory representations;       
elf32_xlatetof() provides the inverse. This conversion 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 
e_ident[EI_DATA] entry (see 
elf_getident(3ELF)). If the
       data can be translated, the functions return 
dst. Otherwise, they
       return 
NULL because an error occurred, such as incompatible types,
       destination buffer overflow, etc.       
elf_getdata(3ELF) describes the 
Elf_Data descriptor, which the
       translation routines use as follows:       
d_buf                    Both the source and destination must have valid buffer
                    pointers.       
d_type                    This member's value specifies the type of the data to
                    which 
d_buf points and the type of data to be created in
                    the destination. The program supplies a 
d_type value in
                    the source; the library sets the destination's 
d_type to
                    the same value. These values are summarized below.       
d_size                    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 contents.  The translation routines reset
                    the destination's 
d_size member to the actual size
                    required, after the translation occurs. The source and
                    destination sizes may differ.       
d_version                    This member holds the version number of the objects
                    (desired) in the buffer.  The source and destination
                    versions are independent.
       Translation routines allow the source and destination buffers to
       coincide. That is, 
dst->d_buf may equal 
src->d_buf. Other cases where
       the source and destination buffers overlap give undefined behavior.         
Elf_Type       32-Bit Memory Type         ELF_T_ADDR     Elf32_Addr         ELF_T_BYTE     unsigned char         ELF_T_DYN Elf32_Dyn         ELF_T_EHDR     Elf32_Ehdr         ELF_T_HALF     Elf32_Half         ELT_T_OFF Elf32_Off         ELF_T_PHDR     Elf32_Phdr         ELF_T_REL Elf32_Rel         ELF_T_RELA     Elf32_Rela         ELF_T_SHDR     Elf32_Shdr         ELF_T_SWORD    Elf32_Sword         ELF_T_SYM Elf32_Sym         ELF_T_WORD     Elf32_Word       Translating buffers of type 
ELF_T_BYTE does not change the byte
       order.
       For the 64-bit class, replace 32 with 64 as appropriate.
ATTRIBUTES
       See 
attributes(7) for descriptions of the following attributes:
       +--------------------+-----------------+
       |  ATTRIBUTE TYPE    | ATTRIBUTE VALUE |
       +--------------------+-----------------+
       |Interface Stability | Stable          |
       +--------------------+-----------------+
       |MT-Level            | MT-Safe         |
       +--------------------+-----------------+
SEE ALSO
       elf(3ELF), 
elf32_fsize(3ELF), 
elf_getdata(3ELF), 
elf_getident(3ELF),       
libelf(3LIB), 
attributes(7)                                July 11, 2001           ELF32_XLATETOF(3ELF)