elf_flag(3E) elf_flag(3E)
NAME
elfflag: elfflagdata, elfflagehdr, elfflagelf, elfflagphdr,
elfflagscn, elfflagshdr - Schalter manipulieren
SYNTAX
cc [option ...] datei ... -lelf [bibliothek ...]
#include <libelf.h>
unsigned elfflagdata(ElfData *data, ElfCmd cmd, unsigned flags);
unsigned elfflagehdr(Elf *elf, ElfCmd cmd, unsigned flags);
unsigned elfflagelf(Elf *elf, ElfCmd cmd, unsigned flags);
unsigned elfflagphdr(Elf *elf, ElfCmd cmd, unsigned flags);
unsigned elfflagscn(ElfScn *scn, ElfCmd cmd, unsigned flags);
unsigned elfflagshdr(ElfScn *scn, ElfCmd cmd, unsigned flags);
BESCHREIBUNG
Diese Funktionen manipulieren die Schalter, die mit den verschiedenen
Strukturen einer ELF-Datei verknüpft sind. Gegeben sei ein ELF-Deskrip-
tor elf, ein Datendeskriptor data oder ein Abschnittsdeskriptor scn.
Die Funktionen können dann die entsprechenden Status-Bits setzen oder
löschen; als Ergebnis wird der modifizierte Wert der Bits zurückgelie-
fert. Ein Nulldeskriptor ist erlaubt, um die Fehlerbehandlung zu ver-
einfachen; alle Funktionen liefern in diesem Fall den Wert Null als
Ergebnis.
cmd kann die folgenden Werte annehmen:
ELFCCLR
Die Funktionen löschen die in flags angegebenen Bits. Nur die in
flags gesetzten Bits werden gelöscht; Null-Bits ändern den Status
des Deskriptors nicht.
ELFCSET
Die Funktionen setzen die in flags angegebenen Bits. Nur die in
flags gesetzten Bits werden gesetzt; Null-Bits ändern den Status
des Deskriptors nicht.
Die Beschreibungen zu den definierten Bits für flags lauten:
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
elf_flag(3E) elf_flag(3E)
ELFFDIRTY
Wenn das Programm eine ELF-Datei schreiben will, garantiert die-
ses Bit, daß die entsprechenden Informationen in die Datei
geschrieben werden. Möchte ein Programm beispielsweise den ELF-
Dateikopf einer Datei verändern, wird elfflagehdr() mit diesem
Bit in flags und cmd gleich ELFCSET aufgerufen. Ein nachfolgen-
der Aufruf von elfupdate() schreibt dann den derart markierten
Dateikopf in die Datei.
ELFFLAYOUT
Normalerweise entscheidet die Bibliothek, wie eine Ausgabedatei
organisiert wird. Dies bedeutet, daß automatisch entschieden
wird, wo Abschnitte plaziert werden, wie sie in der Datei
angeordnet werden etc. Wenn dieses Bit für einen ELF-Deskriptor
gesetzt ist, übernimmt das Programm die Verantwortung für die
Bestimmung aller Dateipositionen. Dieses Bit ist nur für
elfflagelf() relevant und gilt für die gesamte Datei, die mit
dem Deskriptor verknüpft ist.
Wird ein Schalterbit für ein Objekt gesetzt, so werden alle Unterob-
jekte ebenfalls beeinflußt. Setzt das Programm beispielsweise das
ELFFDIRTY Bit mit elfflagelf(), so befindet sich die gesamte logi-
sche Datei in diesem Modus.
BEISPIELE
Der folgende Programmauszug demonstriert, wie ein ELF-Dateikopf mar-
kiert werden kann, um in die Ausgabedatei geschrieben zu werden.
ehdr = elf32getehdr(elf);
/* dirty ehdr ... */
elfflagehdr(elf, ELFCSET, ELFFDIRTY);
SIEHE AUCH
elf(3E), elfend(3E), elfgetdata(3E), elfgetehdr(3E),
elfupdate(3E).
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98