Makrotyp: S-Typ (C-Form/D-Form/E-Form/L-Form/M-Form) (siehe "Typen von Makroaufrufen")
Der RELTFT-Makroaufruf löscht in der Task File Table (TFT) den Eintrag, dessen Dateikettungsname angegeben wird, und gibt alle privaten Datenträger, Geräte und Net-Storage-Volumes, die damit verknüpft waren, frei. Wenn ein privater Datenträger oder ein Net-Storage-Volume mit mehreren TFT-Einträgen verbunden ist, dann wird er erst freigegeben, wenn der letzte TFT-Eintrag gelöscht wird. RELTFT hebt auch die Reservierung von Dateien auf, die mit einem SECURE-RESOURCE-ALLOCATION-Kommando exklusiv reserviert wurden. Er wird ignoriert, wenn für den TFT-Eintrag noch eine LOCK-FILE-LINK-Sperre besteht, und erst dann ausgeführt, wenn diese Sperre mit dem DROPTFT-Makro (siehe "DROPTFT - TFT-Eintrag freigeben") oder dem UNLOCK-FILE-LINK-Kommando aufgehoben wird (oder bei LOGOFF; näheres zu den Kommandos LOCK-FILE-LINK, UNLOCK-FILE-LINK und SECURE-RESOURCE-ALLOCATION in den Handbüchern „Kommandos“ [3] und „DVS-Einführung“ [1]).
Hinweis
Der RELTFT-Makroaufruf ist eine Erweiterung des bisherigen REL um die Verwendung von Wildcards im Linknamen. Die bisherige Funktionalität von REL wird unterstützt. Das Format des REL-Makros wird deshalb im Anhang noch gezeigt (siehe "REL - TFT-Eintrag löschen"). Die Operanden des REL-Makros entsprechen jedoch Operanden des RELTFT-Makros. Sie sind deshalb nur hier beschrieben.
Banddateien
Der Anwender kann im RELTFT-Makroaufruf wählen, ob die für die Banddatei angeforderten Bandgeräte (Operand KEEP) und/oder die angeforderten Datenträger (Operand UNLOAD) dem Auftrag zugeordnet bleiben.
Ist der freizugebende TFT-Eintrag mit einem TST-Eintrag verknüpft, wird der Dateizähler im TST-Eintrag um 1 vermindert. Sobald er den Wert 0 erreicht, wird der TST-Eintrag gelöscht, und das DVS gibt alle mit diesem TST-Eintrag verbundenen Geräte frei. Solange der TST-Eintrag noch mit TFT-Einträgen verbunden ist (Dateizähler > 0), gibt das DVS nur die Geräte frei, die nur für den im RELTFT-Makroaufruf genannten TFT-Eintrag angefordert wurden.
Verweist der freizugebende TFT-Eintrag nicht auf einen TST-Eintrag, werden alle mit dem TFT-Eintrag verbundenen Geräte freigegeben.
Format
Operation | Operanden |
|
|
Operandenbeschreibung
KEEP
Legt fest, ob Bandgeräte, die mit dieser Datei bzw. diesem TFT-Eintrag verbunden sind, nicht an das System zurückgegeben werden sollen, sondern dem Auftrag zur Neuzuweisung zur Verfügung stehen.
= *NO
Die Bandgeräte werden zurückgegeben.
= *YES
Die Bandgeräte werden nicht zurückgegeben.
LINK
Dateikettungsname (Linkname) des zu löschenden TFT-Eintrags.
Im angegebenen Namen können Zeichenfolgen durch Muster ersetzt werden. In diesem Fall gilt Folgendes:
Die Gesamtzeichenfolge des Namens darf bis zu 80 Zeichen lang sein.
Die Gesamtzeichenfolge des Namens darf außer Wildcards nur Zeichen aus dem zulässigen Wertebereich der Kommandoschnittstelle enthalten.
Bei der Angabe von Wildcards werden nur solche TFT-Einträge selektiert, deren Kettungsname aus Zeichen aus dem zulässigen Wertebereich der Kommandoschnittstelle gebildet wurde.
Voreinstellung: Der erste TFT-Eintrag mit dem Linknamen *BLANK wird gelöscht.
= <c-string 1..80: filename 1..8 with-wild(80) without-gen>
Dateikettungsname (Angabe in Hochkommas)
= <var: char: 80: filename 1..8 with-wild(80) without-gen>
Name einer Variablen, die den Dateikettungsnamen enthält
MACID
wird nur in Verbindung mit MF=C/D/M ausgewertet und legt jeweils das zweite bis einschließlich vierte Zeichen der Feldnamen und Equates fest, die bei der Makroauflösung im Datenbereich generiert werden.
Voreinstellung: MACID = MAR
= macid
„macid“ ist eine drei Zeichen lange Zeichenfolge, die jeweils das zweite bis vierte Zeichen der generierten Feldnamen und Equates festlegt.
MF
Die Formen des MF-Operanden sind detailliert im Anhang ("Typen von Makroaufrufen") beschrieben.
Voreinstellung: Operandenliste und SVC wie bisher
PARAM
bezeichnet die Adresse der Operandenliste und wird nur in Verbindung mit MF=E ausgewertet (siehe auch "Typen von Makroaufrufen").
= adr
adr ist die symbolische Adresse (der Name) der Operandenliste.
= (r)
r ist die Nummer des Registers, das die Adresse der Operandenliste enthält. Vor dem Makroaufruf muss das Register mit diesem Adresswert geladen werden.
PREFIX
wird nur in Verbindung mit MF=C/D/M ausgewertet und legt das jeweils erste Zeichen der Feldnamen und Equates fest, die bei der Makroauflösung im Datenbereich generiert werden.
Voreinstellung: PREFIX = D
= pre
„pre“ ist ein Zeichen langes Präfix, mit dem die vom Assembler generierten Feldnamen und Equates beginnen sollen.
UNLOAD
Nur für Banddateien:
Gibt an, ob die mit dem unter LINK angegebenen TFT-Eintrag verbundenen Datenträger freigegeben und die entsprechenden Bandgeräte entladen werden. Soll der Auftrag nochmals auf diese Datenträger zugreifen, müssen sie erneut angefordert werden, sie können nicht mehr automatisch durch das System zugewiesen werden.
Ist ein privater Datenträger mit verschiedenen TFT-Einträgen verbunden, wird er erst dann freigegeben, wenn der letzte TFT-Eintrag gelöscht wird.
= *NO
Die Bandgeräte werden freigegeben.
= *YES
Die Bandgeräte werden nicht freigegeben.
VERSION = <integer 1..1>
Kontrolloperand; steuert Generierung
WILDCRD
Legt fest, ob Platzhalterzeichen in der Kettungsnamenangabe als Muster oder als gewöhnliche Zeichen aufgefasst werden.
= *NO
Platzhalterzeichen werden als gewöhnliche Zeichen aufgefasst.
= *YES
Platzhalterzeichen werden als Muster aufgefasst.
Hinweis zur Programmierung
Der Fehlercode wird nur noch im Standardheader und nicht mehr wie beim REL-Makroaufruf im Mehrzweckregister 15 zurückgeliefert. Eine Programm-Terminierung mit STXIT-Anschluss kann in folgenden Fällen eingeleitet werden:
Parameteradresse fehlerhaft (z.B. kürzer als der Standardheader)
Parameteradresse nicht wort-ausgerichtet
UNIT oder FUNCTION im Header fehlerhaft
Header nicht beschreibbar
Returncodes
Standardheader: ccbbaaaa
Über die Ausführung des Makros RELTFT wird im Standardheader folgender Returncode übergeben (cc = SUBCODE2, bb = SUBCODE1, aaaa = MAINCODE):
X'cc' | X'bb' | X'aaaa' | Erläuterung |
X'01' | X'00' | X'059A' | Kein derartiger Linkname |
X'01' | X'059D' | Ungültiger Linkname | |
X'82' | X'059B' | Datei ist momentan geöffnet | |
X'02' | X'00' | X'059C' | nicht alle ausgewählten TFT-Einträge gelöscht |
X'01' | X'05C2' | Ungültiger Linkname (binär null) | |
X'01' | X'06F5' | TPR-Bit von TU-Aufrufer gesetzt | |
X'01' | X'06FD' | Ungültiger Parameterlisten-Bereich | |
X'03' | X'FFFF' | Ungültige Version |