Allgemeines
Anwendungsgebiet: | Erweiterung durch Datenräume; siehe "Erweiterung durch Datenräume" |
Makrotyp: | S-Typ, MF-Format 3: C-/D-/L-/M-/R-/E-Form; |
Der Makro ALINF kann auf allen BS2000-Servern verwendet werden (siehe Abschnitt „Erweiterung durch Datenräume“).
Makrobeschreibung
Der Makro ALINF informiert den Aufrufer darüber, welche ALETs (Access List Entry Tokens) in seiner taskeigenen Zugriffsliste mit einem bestimmten Datenraum korrespondieren. Dabei wird ein Datenraum eindeutig durch seine SPID identifiziert. Existieren ein oder mehrere ALETs für einen Datenraum, wird der erste ALET von ihnen im Feld <PREFIX><MACID>ALET
zurückgegeben (mit RETURN=FIRST) bzw. bei weiteren Aufrufen des Makros der jeweils folgende ALET (mit RETURN=NEXT). Durch die Angabe des FROM-Operanden kann der Suchbeginn unabhängig von bereits gefundenen ALETs beliebig festgelegt werden.
Makroaufrufformat und Operandenbeschreibung
|
|
SPID=spid_adr
kennzeichnet einen Datenraum eindeutig im Gesamtsystem. Sie wird beim Anlegen eines Datenraumes vom System vergeben.
spid_adr: Symbolische Adresse (Name) eines Feldes (8 Byte), das die SPID des Datenraumes enthält.
RETURN=
legt fest, welcher der korrespondierenden ALETs im Feld <PREFIX><MACID>ALET
zurückgegeben wird.
FIRST
Der erste gefundene ALET, der auf den mit SPID identifizierten Datenraum zeigt, wird im Ausgabefeld <PREFIX><MACID>ALET
zurückgegeben.
NEXT
Der nächste gefundene ALET wird zurückgegeben. Ausgangspunkt der Suche ist der ALET, der im Ausgabefeld <PREFIX><MACID>ALET
steht. Dieser zuletzt gefundene ALET (entspricht Vorgänger) wird entweder durch einen ALINF-Aufruf mit RETURN=FIRST bestimmt oder durch direkte Angabe im FROM-Operanden. Ist das ALET-Ausgabefeld nicht durch einen früheren Aufruf mit einem Vorgänger belegt und auch der Operand FROM wird nicht angegeben, so beginnt die Suche nach dem nächsten korrespondierenden ALET an unbestimmter Stelle (an einem beliebigen Eintrag in der Zugriffsliste).
FROM=
gibt den ALET an, ab dem nach dem nächsten korrespondierenden ALET gesucht werden soll. Der Wert wird in das Ausgabefeld <PREFIX><MACID>ALET
geschrieben und wird vom Makro ALINF als Eingabeoperand (entspricht Vorgänger) bei RETURN=NEXT gelesen. Angabe nur bei MF=M erlaubt.
alet_adr
symbolische Adresse des ALETs, der Vorgänger sein soll
(r)
r = Register mit dem Adresswert von adr
MF=
Zur allgemeinen Beschreibung des Operanden MF, der dazugehörenden Operandenwerte und der evtl. nachfolgenden Operanden (z.B. PREFIX, MACID und PARAM) siehe Abschnitt „S-Typ-Makroaufrufe“. Die gültigen MF-Werte sind zu Beginn der Makrobeschreibung bei „Makrotyp“ angegeben und aus dem Aufrufformat ersichtlich.
Bei der C-Form, D-Form oder M-Form des Makroaufrufs kann ein Präfix PREFIX und bei der C-Form oder M-Form zusätzlich eine Macid MACID angegeben werden (siehe Abschnitt „S-Typ-Makroaufrufe“).
Rückinformation und Fehleranzeigen
Standardheader:
+---------------+ | | | | | |c|c|b|b|a|a|a|a| +---------------+
Über die Ausführung des Makros ALINF wird im Standardheader folgender Returncode übergeben (cc=Subcode2, bb=Subcode1, aaaa=Maincode):
X'cc' | X'bb' | X'aaaa' | Erläuterung |
X'00' | X'00' | X'0000' | Funktion erfolgreich ausgeführt. |
X'00' | X'00' | X'0001' | Es wurde kein korrespondierender ALET gefunden. |
X'00' | X'01' | X'0003' | Fehler im Datenbereich. |
X'07' | X'01' | X'0003' | Ungültiger Operand RETURN. |
X'08' | X'01' | X'0003' | Ungültiger Operand FROM: Der Operandenwert hat kein ALET-Format. |
X'01' | X'01' | X'0004' | Es fehlt der Operand SPID. |
X'20' | X'0009' | Interner Fehler. | |
X'01' | X'40' | X'0005' | Die Angabe des SPID-Operanden ist fehlerhaft:
|
X'02' | X'40' | X'0005' | Die Angabe des SPID-Operanden ist fehlerhaft: |
Weitere Returncodes, deren Bedeutung durch Konvention makroübergreifend festgelegt ist, können der Tabelle „Standard-Returncodes“ (Standardheader) entnommen werden.
Beispiel siehe Abschnitt „Erweiterung durch Datenräume“.