Mit dem Makroaufruf CLIGET kann ein Programm abfragen, ob ein Schutz vor impliziten Unterbrechungen erforderlich ist.
CLIGET liefert die Einstellung im Operanden INTERRUPT-ALLOWED, die in den Kommandos SET-PROCEDURE-OPTIONS, MODIFY-PROCEDURE-OPTIONS oder BEGIN-PROCEDURE gesetzt wurde.
Zu weiteren Informationen siehe Abschnitt „Nichtunterbrechbarkeit“.
Operation | Operanden |
CLIGET | MF = E ,PARAM = <name 1..8> / (integer 1..15) |
MF = D [,PREFIX = C / prefix] | |
MF = C [,PREFIX = C / prefix] [,MACID = LIS / macid] | |
MF = L |
Operandenbeschreibung
MF = E
Execute-Form des Makroaufrufs: erzeugt einen SVC.
PARAM
Bezeichnet die Adresse der Operandenliste, die für den Makroaufruf ausgewertet wird (Adresse des Makroaufrufs mit MF=L).
= <name 1..8>
Bezeichnet die symbolische Adresse der Operandenliste.
= (<integer 1..15>)
Bezeichnet das Register, das die Adresse der Operandenliste enthält.
MF = D
DSECT-Form des Makroaufrufs: erzeugt eine DSECT für die Operandenliste. Die generierten Namen beginnen mit dem Buchstaben C; sie können mit PREFIX verändert werden.
PREFIX = C / prefix
Definiert das erste Zeichen der generierten Namen.
Voreinstellung: Die generierten Namen beginnen mit dem Buchstaben C. Dieser Buchstabe kann durch den Parameter prefix geändert werden.
MF = C
C-Form des Makroaufrufs: erzeugt eine Operandenliste, deren symbolische Namen mit der Zeichenfolge CLIG beginnen. Sie können durch PREFIX und MACID verändert werden.
PREFIX = C / prefix
Definiert das erste Zeichen der generierten Namen.
Voreinstellung: Die generierten Namen beginnen mit dem Buchstaben C. Dieser Buchstabe kann durch den Parameter prefix geändert werden.
MACID = LIG / macid
Bis zu drei Zeichen langer String, der die Zeichen 2 bis 4 der generierten Namen ersetzt. Voreinstellung: LIG
MF = L
LIST-Form des Makroaufrufs: erzeugt die Operandenliste für den Makroaufruf mit MF=E (Execute-Form); der Makroaufruf muss über eine symbolische Adresse adressierbar sein.
Ausgabe-Parameter
Die Ausgabe-Parameter werden in die vorgegebenen Felder in der Operandenliste zurückgegeben. Das Aufruferprogramm muss die Operandenliste bei einer Ersetzung mit korrespondierenden Namen lesen.
&P.INTA=INTERRUPT-ALLOWED
Ein Byte langes Feld, in das die Prozeduroption „INTERRUPT-ALLOWED“ durch das Makro zurückgegeben wird.
&P.INTN bedeutet NO bzw. INTERRUPT-ALLOWED = *NO: Das Programm muss vor einer impliziten Unterbrechung geschützt werden.
&P.INTY bedeutet YES bzw. INTERRUPT-ALLOWED = *YES: Das Programm muss vor einer impliziten Unterbrechung nicht geschützt werden.
Hinweis
Bei &P.INTN wird
- zurückgewiesen, wenn nicht K2-STXIT aktiviert ist.
//EXECUTE-SYSTEM-CMD und //HOLD-PROGRAM zurückgewiesen, wenn SYSSTMT ungleich SYSCMD ist (d.h. entweder Datensichtstation oder Datei oder andere Zuweisung).
Jede andere sicherheitsrelevante Aktion (CMD, BKPT, K2-STXIT, SVC usw.) ist unter der Verantwortung des Aufruferprogramms. D.h. das Programm darf diese Makros nicht aktivieren und Unterbrechungen verursachen, wenn diese Aktionen vom Endbenutzer verlangt werden.
Returncodes
Die Tabelle auf der folgenden Seite listet die Returncodes in hexadezimaler Schreibweise auf. Register von Benutzerprogrammen werden nicht verändert.
Subcode2 | Subcode1 | Maincode | Bedeutung |
00 | 00 | 0000 | Makroaufruf war erfolgreich; kein Fehler |
00 | 01 | 0001 | Parameter-Fehler; Parameter zu kurz |
00 | 20 | 0004 | Systemfehler |
00 | 01 | FFFF | Unbekannte Unit- oder Funktions-Nummer |
00 | 02 | FFFF | Funktion nicht verfügbar |
00 | 03 | FFFF | Falsche Version der Operandenliste |