xlate_pro_add_info(3E)

xlate_pro_add_info - Sets recorded overall info

As shipped in IRIX 6.5.19. Last changed in IRIX 6.5.19.

NAME
     xlate_pro_add_info - Sets recorded overall info

SYNOPSIS
     #include <elf.h>
     #include <libelf.h>
     #include <dwarf.h>
     #include <libdwarf.h>
     #include <cmplrs/xlate.h>
     #include <libXlate.h>

     int xlate_pro_add_info(xlate_table_pro pro_table_ptr,
       Elf64_Sxword data_moved,
       Elf64_Addr   startup_fwa,
       Elf64_Addr   startup_lwa,
       Elf32_Word   old_text_exists,
       Elf32_Word   old_text_alloc
     );

DESCRIPTION
     xlate_pro_add_info is used to set values into the xlate data stream.
     pro_table_ptr must be a valid open producer translate table handle.

     These values cannot be calculated by the library but must be supplied
     by the application.  If xlate_pro_add_info is not called, 0 will be
     used as a default value for the corresponding fields of the xlate
     header in the created byte stream.

     data_moved     Pass in the number of bytes the data section was moved
                    (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.

     startup_fwa    Pass in 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.  Other tools should
                    pass in 0 for a value.

     startup_lwa    Pass in 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.  Other tools should
                    pass in 0 for a value.

     old_text_exists
                    Pass in is 1 if the original (untranslated) text is
                    present in the executable or DSO.  Pass in 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 have the original text
                    present.

     old_text_alloc Pass in 1 if the original text is present and is marked
                    to be brought into memory automatically on program
                    startup.  Otherwise old_text_alloc pass in 0.  This
                    lets a consuming application (such as a debugger) know
                    what it has to do to find the relevant original text
                    image.

THREAD SAFETY
     The xlate functions are thread safe.  This means that if distinct
     xlate_table_con and xlate_table_pro handles are used in distinct
     threads to call xlate functions simultaneously in multiple threads,
     the threads will not interfere.

     However, using a particular xlate_table_con handle or a particular
     xlate_table_pro handle to call xlate functions simultaneously in
     multiple threads is not supported and may cause unpredictable results.

FILES
     /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

DIAGNOSTICS
     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 through the pointer arguments which would return
     values on successful call (values might have been changed through
     these pointers but any such changes are not meaningful).

     The following error returns are possible:

     XLATE_TB_STATUS_INVALID_TABLE
                    The pro_table_ptr is not a valid open producer handle.

     XLATE_TB_STATUS_ADD_TOO_LATE
                    The call has occurred after a call to
                    xlate_pro_disk_header which is not allowed.  Call
                    xlate_pro_add_info before calling
                    xlate_pro_disk_header.

SEE ALSO
     open(2)

     xlate_finish(3), xlate_get_info(3), xlate_init_fd(3),
     xlate_pro_finish(3) xlate_pro_init(3),

     xlate(4)

     libelfutil(5)