Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

ENAEI - Ereignisgesteuerte Verarbeitung eröffnen

&pagelevel(3)&pagelevel

Allgemeines

Anwendungsgebiet:

Ereignissteuerung; siehe "Ereignisgesteuerte Verarbeitung (Eventing)"

Makrotyp:

S-Typ, MF-Format 1: Standardform/L-/E-Form;

siehe "S-Typ-Makroaufrufe"


Makrobeschreibung

Der Makro ENAEI richtet für die Task des Aufrufers eine Ereigniskennung ein. Wenn eine Ereigniskennung mit den angegebenen Namen in dem definierten Geltungsbereich bereits besteht (eingerichtet durch einen ENAEI-Makroaufruf in einer anderen Task), bewirkt der Aufruf nur eine Zuordnung zwischen der Task des Aufrufers und der Ereigniskennung. Andernfalls wird die Ereigniskennung vom System erstellt und der Task zugeordnet.

Durch diesen Aufruf wird außerdem eine Kurzkennung für die Ereigniskennung zur Verfügung gestellt, die in weiteren Aufrufen zur Beschleunigung der Verarbeitung verwendet werden kann.
In einem Programm können maximal 2000 Ereigniskennungen gleichzeitig verwendet werden.

Makroaufrufformat und Operandenbeschreibung

ENAEI

{ EINAME=name / EINAMAD={adr / (r)} [,EINAMLN=länge] },SCOPE=LOCAL / GROUP / USER_GROUP /

GLOBAL

,EIIDRET=adr / (r)

,SOSIGQ=FIFO / LIFO

[,PARMOD=24 / 31]

[,MF=L / (E,..)]

EINAME=

bezeichnet den Namen der Ereigniskennung.

name
Name der Ereigniskennung. 1 <= Namenslänge <= 54


Namensbildung:
1. Zeichen:     Buchstabe, #, @
2.-54. Zeichen: beliebige Kombination aus der Zeichenmenge
                (A,...,Z,0,...,9,$,#,@).
Das erste Blank (X'40') beendet den Namen.


EINAMAD=
bezeichnet die Adresse des Felds mit dem Namen der Ereigniskennung (Namensbildung siehe oben).

adr
symbolische Adresse (Name) des Feldes

(r)
r = Register mit dem Adresswert adr

EINAMLN=
beschreibt die Länge des Namens der Ereigniskennung, wenn EINAMAD=... spezifiziert wurde.

länge
Länge des Namens in Byte

Voreinstellung:

  • Längenattribut des bei EINAMAD angegebenen Feldes.

  • 54 Byte, wenn EINAMAD=(r) spezifiziert wurde.

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.

EIIDRET=
bezeichnet ein Feld, in das die Kurzkennung für die Ereigniskennung übergeben werden soll.

adr
symbolische Adresse (Name) des Feldes für die Kurzkennung;
Feldlänge = 4 Byte; das Feld ist auf Wortgrenze auszurichten.

(r)
r = Register mit dem Adresswert adr.

SOLSIGQ=
bezeichnet das Warteschlangen-Prinzip für die Einreihung der SOLSIG-Anforderungen. Alle ENAEI-Makros unter einer bestimmten Ereigniskennung müssen dasselbe Warteschlangen-Prinzip für die SOLSIG-Anforderungen vereinbaren.

FIFO
FIFO = First In First Out.

LIFO
LIFO = Last In First Out.

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

Während der Makrobearbeitung enthält Register R1 die Adresse der Operandenliste.

R15:

+---------------+
|   |   |   |   |
|b|b| | | | |a|a|
+---------------+

Über die Ausführung des Makros ENAEI wird ein gegliederter Returncode (aa=primärer RC, bb=sekundärer RC) im Register R15 übergeben.

X'bb'

X'aa'

Erläuterung

X'04'

X'00'

Funktion ausgeführt: Die Ereigniskennung wurde vom System erstellt und der
Task des Aufrufers zugeordnet.

X'08'

X'00'

Funktion ausgeführt: Die vom System bereits erstellte Ereigniskennung wurde der
Task des Aufrufers zugeordnet.

X'0C'

X'04'

Keine Aktion: Die Ereigniskennung war bereits der Task des Aufrufers zugeordnet.
Die Kurzkennung der Ereigniskennung wird übergeben.

X'10'

X'04'

Keine Aktion: Es wurden ungültige Operanden angegeben.

X'18'

X'04'

Keine Aktion: Die maximal erlaubte Anzahl von gleichzeitig verwendeten
Ereigniskennungen wurde überschritten.

X'1C'

X'04'

Keine Aktion: Für die Ereigniskennung wurden unterschiedliche Vereinbarungen
(FIFO und LIFO) bei der SOLSIG-Warteschlange behandlung getroffen
(SOSLIGQ-Operand).

Beispiele siehe "Ereignisgesteuerte Verarbeitung (Eventing)", "Contingency-Prozesse" sowie die Beschreibung der Makros POSSIG ("POSSIG - Ereignis signalisieren") und SOLSIG ("SOLSIG - Signal anfordern").