Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ elf_xlate(3E) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

elf(3E)

elf_xlate(3E)                                                 elf_xlate(3E)

NAME
     elfxlate: elf32xlatetof, elf32xlatetom - Klassenabhängige Datenum-
     setzung

SYNTAX
     cc [option ...] datei ... -lelf [bibliothek ...]

     #include <libelf.h>

     ElfData *elf32xlatetof(ElfData *dst, const ElfData *src,
                              unsigned encode);

     ElfData *elf32xlatetom(ElfData *dst, const ElfData *src,
                              unsigned encode);

BESCHREIBUNG
     elf32xlatetom() setzt Datenstrukturen der 32-Bit-Klasse aus der
     Dateidarstellung in ihre Speicherdarstellung um. elf32xlatetof()
     führt den umgekehrten Prozeß durch. Diese Konversion ist für Cross-
     Entwicklungsumgebungen (Cross Compilation) sehr wichtig. src ist ein
     Zeiger auf den Quellpuffer, der die originalen Daten enthält; dst ist
     ein Zeiger auf den Zielpuffer, der die übersetzten Daten aufnimmt.
     encode gibt die Byte-Ordnung an, in der die Dateiobjekte dargestellt
     werden (sollen); die Byte-Ordnung muß ein Wert sein, der für den Ein-
     trag eident[EIDATA] [siehe elfgetident(3E)] des ELF-Kopfes defi-
     niert ist. Wenn die Daten umgesetzt werden können, liefern die Funk-
     tionen dst zurück. Ansonsten wird Null zurückgegeben, da ein Fehler
     auftrat, wie zum Beispiel inkompatible Typen, Zielpufferüberlauf etc.

     Der ElfData-Deskriptor wird unter elfgetdata(3E) näher beschrieben;
     er wird durch die Übersetzungsroutinen wie folgt verwendet:

     dbuf      Sowohl die Quelle als auch das Ziel müssen gültige Puffer-
                zeiger enthalten.

     dtype     Diese Komponente gibt den Typ der Daten an, auf die dbuf
                zeigt, und den Typ der Daten, die im Zielpuffer angelegt
                werden. Das Programm übergibt einen dtype-Wert für die
                Quelle; die Bibliothek setzt den dtype des Ziels auf den
                gleichen Wert. Diese Werte werden unten erläutert.

     dsize     Diese Komponente enthält die Gesamtlänge des durch die
                Quelldaten belegten und die Größe des für die Zieldaten
                allokierten Speichers. Wenn der Zielpuffer nicht groß genug
                ist, ändern die Routinen den ursprünglichen Inhalt nicht.
                Die Umsetzungsroutinen setzen die Komponente dsize des
                Ziels nach der erfolgten Umsetzung auf die tatsächlich
                benötigte Größe. Die Größen von Quelle und Ziel können
                unterschiedlich sein.






Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

elf_xlate(3E)                                                 elf_xlate(3E)

     dversion  Diese Komponente enthält die (gewünschte) Versionsnummer
                der Objekte im Puffer. Die Quell- und Zielversionen sind
                unabhängig.

     Die Übersetzungsroutinen erlauben die Identität von Quell- und Ziel-
     puffer. Dies bedeutet, daß dst->dbuf gleich src->dbuf sein kann. In
     anderen Fällen, wo Quell- und Zielpuffer überlappen, ist das resultie-
     rende Verhalten undefiniert.

     ____________________________________
    | Elf-Typ    |  32-Bit-Speichertypen|
    |____________|______________________|
    | ELFTADDR |  Elf32Addr          |
    | ELFTBYTE |  unsigned char       |
    | ELFTDYN  |  Elf32Dyn           |
    | ELFTEHDR |  Elf32Ehdr          |
    | ELFTHALF |  Elf32Half          |
    | ELTTOFF  |  Elf32Off           |
    | ELFTPHDR |  Elf32Phdr          |
    | ELFTREL  |  Elf32Rel           |
    | ELFTRELA |  Elf32Rela          |
    | ELFTSHDR |  Elf32Shdr          |
    | ELFTSWORD|  Elf32Sword         |
    | ELFTSYM  |  Elf32Sym           |
    | ELFTWORD |  Elf32Word          |
    |____________|______________________|

     Das Umsetzen von Puffern des Typs ELFTBYTE ändert die Byte-Ordnung
     nicht.

SIEHE AUCH
     elf(3E), elffsize(3E), elfgetdata(3E), elfgetident(3E).






















Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

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