*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->IRIX man pages -> libelfutil/xlate_address (3)              
Title
Content
Arch
Section
 

Contents


XLATE_ADDRESS(3E)					     XLATE_ADDRESS(3E)


NAME    [Toc]    [Back]

     xlate_address - do	address	translation

SYNOPSIS    [Toc]    [Back]

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

     int xlate_address(xlate_table_con con_table_ptr,
       int	     is_new_address,
       Elf64_Addr  address_in,
       Elf64_Addr  *address_out,
       xlate_block *range
     );

DESCRIPTION    [Toc]    [Back]

     xlate_address does	the address translation	needed by tools	such as	dbx(1)
     and dis(1).

     If	address_in is an address that does not exist in	the translation	table
     the identity translation is returned through the pointers and
     XLATE_TB_STATUS_NO_ERROR is returned by the function.

     The data structure	xlate_block is defined to contain

	  Elf64_Addr	      xe_new_address;
	  Elf64_Xword	      xe_new_range;
	  Elf64_Addr	      xe_old_address;
	  Elf64_Xword	      xe_old_range;

     This data structure is used for both 32 and 64 bit	applications and DSOs.

     xlate_address translates an individual address. Its arguments are:

     con_table_ptr
	     must be a valid open translation table handle.

     is_new_address
	     specifies which direction the translation is to be	done.  If
	     XLATE_ADDRESS_INPUT_NEW_ADDRESS (1), then the translation is done
	     from a new	(translated) to	an old (original, untranslated)
	     address.  If  XLATE_ADDRESS_INPUT_OLD_ADDRESS (0),	then the
	     translation is done from an old (original,	untranslated text)
	     address to	a new (translated) address.  Any value other than 0 or
	     1 passed in can produce invalid results (the library reserves all
	     other values for its own internal use).






									Page 1






XLATE_ADDRESS(3E)					     XLATE_ADDRESS(3E)



     address_in
	     is	the input address.  Addresses must be a	multiple of 4.	The
	     library does not check the	alignment of the passed-in address.

     address_out
	     is	the output address (returned thru the pointer argument).  The
	     output address value will be a multiple of	4.

     range   must be the NULL pointer (0) or a valid pointer to	an xlate_block
	     structure provided	by the caller.	If range is 0 then it is
	     ignored.  If range	is non-0 then the structure  pointed to	is
	     filled in by xlate_address.  In the filled-in structure
	     xe_new_address and	xe_range always	refer to the new (translated)
	     text and xe_old_address and xe_old_range always refer to the old
	     (untranslated) text regardless of the value of is_new_address .
	     All the xe_* values will be a multiple of 4.

FILES    [Toc]    [Back]

     /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    [Toc]    [Back]

     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).	Error codes that may be
     returned are:

     XLATE_TB_STATUS_INVALID_TABLE
	     means that	the tab	argument is not	a valid	open consumer table or
	     that the data pointed at has been corrupted by a malloc arena
	     corruption.

     XLATE_TB_STATUS_BAD_BLOCK_INDEX
	     indicates that the	library	has somehow made an internal error
	     (should not happen	unless a portion of memory was corrupted).

     XLATE_TB_STATUS_NOT_YET_IMPLEMENT
	     means that	a table	kind that was thought not to exist has been
	     encountered.  This	should be impossible since it should have been
	     caught by a table initialization call (xlate_init_fd or
	     xlate_init_elf).  Suggests	that there was a memory	corruption or
	     internal library logic error.







									Page 2






XLATE_ADDRESS(3E)					     XLATE_ADDRESS(3E)



SEE ALSO
     libelfutil(5), xlate(4), xlate_init_fd(3e), xlate_init_elf(3e),
     xlate_finish(3e), xlate_pro_init(3e), xlate_pro_finish(3e)


									PPPPaaaaggggeeee 3333
[ Back ]
 Similar pages
Name OS Title
freeaddrinfo NetBSD nodename-to-address translation
freeaddrinfo FreeBSD nodename-to-address translation
gai_strerror FreeBSD nodename-to-address translation
netdir IRIX transport name-to-address translation
gai_strerror NetBSD nodename-to-address translation
getaddrinfo FreeBSD nodename-to-address translation
freeaddrinfo OpenBSD nodename-to-address translation
gai_strerror OpenBSD nodename-to-address translation
getaddrinfo NetBSD nodename-to-address translation
getaddrinfo OpenBSD nodename-to-address translation
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service