Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ xlate_init_elf(3E) — IRIX 6.5.3f

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

libelfutil(5)

open(2)

xlate(4)

xlate_get_info(3e)

xlate_address(3e)

xlate_get_reg_rule(3e)

xlate_get_all_reg_rules(3e)

xlate_expand_reg_info(3e)

xlate_finish(3e)

xlate_pro_init(3e)

xlate_pro_finish(3e)

xlate_address(3e)



XLATEINITFD(3E)                                            XLATEINITFD(3E)



NAME
     xlateinitfd: xlateinitelf - open translation section

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

int xlateinitfd(int fd,
int opendebugtable,
xlatetablecon *returnedtablepointer);
int xlateinitelf(Elf *elfhandle, int opendebugtable, xlatetablecon *returnedtablepointer);
int xlatenamedinitfd(int fd,
const char * xlatesectionname,
xlatetablecon *returnedtablepointer);
int xlatenamedinitelf(Elf *elfhandle, const char * xlatesectionname, xlatetablecon *returnedtablepointer); DESCRIPTION These are used to get (open) a handle on an Elf section containing translation information. The handle allows one to call any of the consumer functions. it is unspecified which xlateinitfd takes as arguments: fd is an IRIX file-descriptor which must be open(2) for reading on an Elf object file. open_debug_table indicates which translation section to open. If XLATE_OPEN_STD_TABLE (0), then the first section with sh_type SHT_MIPS_XLATE is opened. If XLATE_OPEN_STD_TABLE (1), then the first section with sh_type SHT_MIPS_XLATE_DEBUG is opened. XLATE_OPEN_STD_TABLE is the table normally opened by debuggers and other applictions needing to do address translations. Only sections with Elf section type SHT_MIPS_XLATE, SHT_MIPS_XLATE_DEBUG, or SHT_MIPS_XLATE_OLD can be opened. returned_table_pointer is a pointer to a consumer table handle. If the call to xlate_init_fd is successful, the handle pointed to is set a valid consumer library handle. Page 1


XLATEINITFD(3E)                                            XLATEINITFD(3E)



     xlateinitelf takes as arguments:

     elf_handle
             which must be a valid open pointer on an existing Elf object as
             returned by elf_begin(3e) and it must allow read access.

     open_debug_table
             indicates which translation section to open.  If
             XLATE_OPEN_STD_TABLE (0), then the first section with sh_type
             SHT_MIPS_XLATE is opened.  If XLATE_OPEN_STD_TABLE (1), then the
             first section with sh_type SHT_MIPS_XLATE_DEBUG is opened.
             XLATE_OPEN_STD_TABLE is the table normally opened by debuggers
             and other applictions needing to do address translations.  Only
             sections with Elf section type SHT_MIPS_XLATE,
             SHT_MIPS_XLATE_DEBUG, or SHT_MIPS_XLATE_OLD can be opened.

     returned_table_pointer
             is a pointer to a consumer table handle.  If the call to
             xlate_init_fd is successful, the handle pointed to is set to a
             valid consumer library handle.

     xlatenamedinitfd takes as arguments:

     fd      is an IRIX file-descriptor which must be open(2) for reading on
             an Elf object file.

     xlate_section_name
             indicates which translation section to open.  The normal string
             passed in is ".MIPS.Xlate" which is the name of the net
             (composed) address translation table used by debuggers and other
             applictions needing to do address translations.  Any Elf section
             with sh_type SHT_MIPS_XLATE, SHT_MIPS_XLATE_DEBUG, or
             SHT_MIPS_XLATE_OLD may be opened.

     returned_table_pointer
             is a pointer to a consumer table handle.  If the call to
             xlate_init_fd is successful, the handle pointed to is set a valid
             consumer library handle.

     xlatenamedinitelf takes as arguments:

     elf_handle
             which must be a valid open pointer on an existing Elf object as
             returned by elf_begin(3e) and it must allow read access.

     xlate_section_name
             indicates which translation section to open.  The normal string
             passed in is ".MIPS.Xlate" which is the name of the net
             (composed) address translation table used by debuggers and other
             applictions needing to do address translations.  Any Elf section
             with sh_type SHT_MIPS_XLATE, SHT_MIPS_XLATE_DEBUG, or
             SHT_MIPS_XLATE_OLD may be opened.



                                                                        Page 2





XLATEINITFD(3E)                                            XLATEINITFD(3E)



     returned_table_pointer
             is a pointer to a consumer table handle.  If the call to
             xlate_init_fd is successful, the handle pointed to is set to a
             valid consumer library handle.


     Use -lelfutil -lelf on the link command line to link  in the xlate
     functions.

     You must install the compiler_eoe.hdr.internal subsystem to get the
     headers necessary to work with the xlate functions and leb128 functions
     they call.

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
     These return 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).

     If the requested section does not exist, XLATE_TB_STATUS_NO_XLATE is
     returned.  This is not really an error, just an indication that there is
     no such section and there is no value returned thru
     returned_table_pointer.

     XLATE_TB_STATUS_SECTION_TOO_SMALL
             means that the translation section is too small to be real or
             that there is less space in the section than the translation
             section data says it contains.

     XLATE_TB_STATUS_INCONSISTENT_64_BIT_INFO
             means that the translation section is marked as a 64bit section
             but the a.out or DSO is marked as 32 bit (or vice versa).

     XLATE_TB_STATUS_BAD_TABLEKIND
             The tablekind in the translation section is not one of the
             predefined values: something is corrupted or an obsolete
             tablekind thought not to exist does exist.

     XLATE_TB_STATUS_NOT_ELF
             elf_kind(3e) on the file says the file is not a plain Elf file.






                                                                        Page 3





XLATEINITFD(3E)                                            XLATEINITFD(3E)



     XLATE_TB_STATUS_ELF_IDENT_BAD
             elf_getident(3e) returns an invalid Elf ident value.  The file is
             apparently not a valid Elf file.

     XLATE_TB_STATUS_ELF_SHDR_BAD
             elf32_getshdr(3e), or elf64_getshdr(3e) could not find a section
             in the Elf file that should be there. Some kind of corruption
             (file or data) is occurring.  The file is apparently not a valid
             Elf file.

     XLATE_TB_STATUS_NO_XLATE
             Normal return when there is no translation section of the
             requested type.

     XLATE_TB_STATUS_NO_XLATE_DATA
             There is a translation section but the section is empty!
             Something is wrong with the Elf file.

     XLATE_TB_STATUS_ALLOC_FAIL
             A call to malloc() or realloc() failed.

     XLATE_TB_STATUS_SECTION_TOO_BIG
             The translation section is so large ( > 31 bits in the size) that
             it cannot be handled by the 32-bit version of the library.  This
             is quite unlikely since translation sections should be much
             smaller than the text they refer to and text sections do not get
             that big (as of this writing).  The application must be rebuilt
             as a 64bit application and linked against a 64-bit version of
             this library.

     XLATE_TB_STATUS_EDHR_BAD
             A call to elf32_getehdr(3) or elf64_getehdr(3) (whichever is
             appropriate) failed.  The object file is damaged or the library
             has a bug.

     XLATE_TB_STATUS_STRPTR_BAD
             A call to elf_strptr(3) (whichever is appropriate) failed.  No
             section name strings could be found.  The object file is
             specially stripped or damaged or the library has a bug.

SEE ALSO
     libelfutil(5), open(2), xlate(4), xlate_get_info(3e), xlate_address(3e),
     xlate_get_reg_rule(3e), xlate_get_all_reg_rules(3e),
     xlate_expand_reg_info(3e), xlate_finish(3e), xlate_pro_init(3e),
     xlate_pro_finish(3e), xlate_address(3e)

NOTES
     For any of these calls to succeed the section contents must also be a
     valid translate section.






                                                                        Page 4





XLATEINITFD(3E)                                            XLATEINITFD(3E)



     In case there are multiple sections of an Elf object file meeting the
     section name and section type criteria above then one of the sections is
     opened.




















































                                                                        Page 5



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026