Allgemeines
Anwendungsgebiet: | Ereignissteuerung; siehe "Ereignisgesteuerte Verarbeitung (Eventing)" |
Makrotyp: | S-Typ, MF-Format 1: Standardform/L-/E-Form; siehe "S-Typ-Makroaufrufe" |
Makrobeschreibung
Der Makroaufruf CHKEI übergibt dem aufrufenden Programm Informationen über die Belegung der Warteschlangen, die zu der angegebenen Ereigniskennung gehören.
Makroaufrufformat und Operandenbeschreibung
CHKEI |
{{EINAME=name / EINAMAD={adr / (r)} [,EINAMLN=länge]} ,SCOPE={LOCAL / GROUP / USER_GROUP / GLOBAL} / EIID={adr / (r)}} [,PARMOD=24 / 31] [,MF=L / (E,..)] |
EINAME=name
gibt den Namen der Ereigniskennung an. Die ereignisgesteuerte Verarbeitung muss bereits unter einer Ereigniskennung eröffnet sein, bevor der Aufruf CHKEI gegeben werden darf.Zur eindeutigen Bezeichnung der Ereigniskennung ist die Angabe des Operanden SCOPE nötig.
EINAMAD=
bezeichnet die Ereigniskennung. Die Ereigniskennung wird erst durch die zusätzliche Angabe von SCOPE eindeutig bezeichnet.
adr
symbolische Adresse des Feldes, das den Namen der Ereigniskennung enthält
(r)
r = Register, das die Adresse des Feldes enthält
EINAMLN=
gibt die Länge des Namens der Ereigniskennung in Byte an. Die Länge muss mindestens 1 Byte sein und darf 54 Byte nicht überschreiten. Fehlt der Operand, so wird das Längenattribut des EINAMAD-Operanden angenommen, wenn EINAMAD=adr angegeben ist; bei EINAMAD=(r) wird die maximale Länge von 54 Byte angenommen.
länge
Länge des Namens der Ereigniskennung.
SCOPE=
beschreibt den Geltungsbereich (Teilnehmerkreis) für die Ereigniskennung.
LOCAL
Die Ereigniskennung wird nur von der Task des Aufrufers benutzt.
GROUP
Teilnehmer sind alle Tasks unter der Benutzerkennung des Aufrufers.
USER_GROUP
Teilnehmer können alle Tasks sein, deren Benutzerkennungen der gleichen Benutzergruppe angehören wie die Benutzerkennung des einrichtenden Teilnehmers.
Der Operandenwert setzt die Existenz von Benutzergruppen voraus und kann daher nur angegeben werden, wenn die Funktionseinheit SRPM des Software-Produkts SE-COS im System vorhanden ist. Vor einem Makroaufruf mit SCOPE=USER_GROUP muss deshalb mit dem Makro GETUGR (siehe Handbuch „SECOS“ [14]) geprüft werden, ob SRPM zur Verfügung steht; abhängig vom Ergebnis (Returncode) ist im Programm zu reagieren.
GLOBAL
Teilnehmer sind alle Tasks im System.
EIID=
bezeichnet die Kurzkennung der Ereigniskennung. Diese Kurzkennung wird dem Benutzer durch den ENAEI-Makroaufruf zur Verfügung gestellt. Die Verwendung der Kurzkennung an Stelle des Namens zur Identifizierung der Ereigniskennung beschleunigt die Verarbeitung. Durch die Kurzkennung wird die Ereigniskennung eindeutig bezeichnet.
adr
symbolische Adresse des Feldes, das die Kurzkennung enthält
(r)
r = Register, das die Adresse des Feldes enthält
MF=
Zur allgemeinen Beschreibung des Operanden MF, der dazugehörenden Operandenwerte und der evtl. nachfolgenden Operanden (z.B. für einen Präfix) siehe Abschnitt „S-Typ-Makroaufrufe“. Die gültigen MF-Werte sind zu Beginn der Makrobeschreibung bei „Makrotyp“ angegeben und aus dem Aufrufformat ersichtlich.
PARMOD=
steuert die Makroauflösung. Es wird entweder die 24-Bit- oder die 31-Bit-Schnittstelle generiert.
Wenn PARMOD nicht spezifiziert wird, erfolgt die Makroauflösung entsprechend der Angabe für den Makro GPARMOD oder der Voreinstellung für den Assembler (= 24-Bit-Schnittstelle).
24
Die 24-Bit-Schnittstelle wird generiert. Datenlisten und Befehle benutzen 24-Bit-Adressen (Adressraum <= 16 MB).
31
Die 31-Bit-Schnittstelle wird generiert. Datenlisten und Befehle benutzen 31-Bit-Adressen (Adressraum <= 2 GB).
Rückinformation und Fehleranzeigen
Register R1 enthält bei der Ausführung des Makros die Adresse der Operandenliste, nach der Ausführung die Anzahl der anstehenden SOLSIG- bzw. POSSIG-Aufrufe.
R15:
+---------------+ | | | | | |b|b| | | | |a|a| +---------------+
Über die Ausführung des Makros CHKEI wird ein gegliederter Returncode (aa=primärer RC, bb=sekundärer RC) im Register R15 übergeben.
X'bb' | X'aa' | Erläuterung |
X'28' | X'00' | Funktion ausgeführt: Ein oder mehrere SOLSIG-Anforderungen stehen in der |
X'2C' | X'00' | Funktion ausgeführt: Ein oder mehrere POSSIG-Anforderungen stehen in der |
X'30' | X'00' | Funktion ausgeführt: Die Warteschlangen enthalten keine Anforderungen. |
X'0C' | X'04' | Keine Aktion: Die vom System erstellte Ereigniskennung ist der Task nicht |
X'10' | X'04' | Keine Aktion: Es wurden ungültige Operanden angegeben. |
X'14' | X'04' | Keine Aktion: Ungültiger Name bzw. ungültige Kurzkennung. |
Beispiele enthalten die Abschnitte Ereignisgesteuerte Verarbeitung (Eventing) („Beispiel:Synchroner Fall“ (Ereignisgesteuerte Verarbeitung (Eventing))), Contingency-Prozesse („Beispiel: Asynchroner Fall“ (Contingency-Prozesse)) sowie SOLSIG – Signal anfordern (SOLSIG - Signal anfordern) („Beispiel: Synchroner Fall“ (SOLSIG - Signal anfordern)).