XLATE_GET_INFO(3E) XLATE_GET_INFO(3E)
xlate_get_info - get recorded overall info
#include <elf.h>
#include <libelf.h>
#include <dwarf.h>
#include <libdwarf.h>
#include <cmplrs/xlate.h>
#include <libXlate.h>
int xlate_get_info(xlate_table_con con_table_ptr,
Elf64_Sxword *data_moved,
Elf64_Addr *new_low_addr,
Elf64_Addr *old_low_addr,
Elf64_Addr *new_high_addr,
Elf64_Addr *old_high_addr,
Elf64_Addr *startup_fwa,
Elf64_Addr *startup_lwa,
Elf64_Xword *number_of_ranges,
int *old_text_exists,
int *old_text_alloc
int *is64bit
xlate_tablekind *tablekind
int *version
);
xlate_get_info is used to get basic values from the xlate section.
con_table_ptr must be a valid open translate table handle. The other
arguments are pointers passed in and the pointers are used to put values
from the translation table header into the pointed-to data objects. See
<cmplrs/xlate.h> for the header field declarations. The memory that is
pointed to by the pointer is what is actually changed.
Other than con_table_ptr any of the pointers passed in may be the null
pointer (0). xlate_get_info notices each null pointer and does not
attempt to pass a value back thru a null pointer.
data_moved
is the number of bytes the data section was moved by a
translation tool (normally only pixie(1) moves data sections).
The value is not the amount the text was moved but the amount
that the data had moved above and beyond text movement. The
movement is important because rld(1) relies on the distance
between text and data being fixed. The movement is an important
fact in the translation process but the fact is not ordinarily
needed by consuming tools or applications.
new_low_addr
is set to the low pc address of the translated (runnable) text.
Page 1
XLATE_GET_INFO(3E) XLATE_GET_INFO(3E)
old_low_addr
is set to the low pc address of the original (before translation)
text.
new_high_addr
is set to the high pc address (one past the last address
actually used) of the translated (runnable) text.
old_high_addr
is set to the high pc address (one past the last address
actually used) of the original (before translation) text.
startup_fwa
is set to the pc address (First Word Address) (in the translated
text) of special startup code introduced by a translation tool.
pixie is currently the only tool creating such special startup
code.
startup_lwa
is set to the pc address (Last Word Address) (in the translated
text) of the end (actually one past the last address) of the
startup code introduced by a translation tool. pixie is
currently the only tool creating such special startup code.
number_of_ranges
is set to the number of ranges in the translation table.
old_text_exists
is set to 1 if the original (untranslated) text is present in the
executable or DSO. It is set to 0 if the original text is not
present. cord(1)ed DSOs often do not have the original text
present. pixied applications and DSOs usually do have the
original text present.
old_text_alloc
is set to 1 if the original text is present and is marked to be
brought into memory automatically on program startup. Otherwise
old_text_alloc is set to 0. This lets a consuming application
(such as a debugger) know what it has to do to find the relevant
original text image.
is64bit is set to 1 if the xlate file is marked as 64 bit (for a 64 bit
application).
tablekind
is set to one of xlate_tk_general, xlate_tk_preserve_size, or
xlate_tk_preserve_order.
version is set to one of XLATE_TB_MAIN_V1(1), XLATE_TB_COPY_V1(2),
XLATE_TB_DEBUG_V1(3), XLATE_TB_OLD_V1(4), XLATE_TB_32_V2(5), or
XLATE_TB_64_V2(6).
Page 2
XLATE_GET_INFO(3E) XLATE_GET_INFO(3E)
/usr/include/libXlate.h
/usr/include/cmplrs/xlate.h
/usr/include/elf.h
/usr/include/dwarf.h
/usr/include/libdwarf.h
/usr/lib/libelfutil.a
Returns XLATE_TB_STATUS_NO_ERROR (0) on success. In case of error, a
negative number is returned indicating the error. In case of error,
nothing is returned thru the pointer arguments which would return values
on successful call (values might have been changed thru these pointers
but any such changes are not meaningful).
XLATE_TB_STATUS_INVALID_TABLE
The initial bytes of the structure pointed to by
consumer_table_ptr have been corrupted (indicating malloc(3)
arena corruption) or the pointer is not pointing to a valid open
consumer table.
libelfutil(5), open(2), xlate(4), xlate_init_fd(3e), xlate_finish(3e),
xlate_pro_init(3e), xlate_pro_finish(3e), xlate_pro_add_info(3e),
xlate_address(3e)
PPPPaaaaggggeeee 3333 [ Back ]
|