Allgemeines
Anwendungsgebiet: | (Task-)Serialisierung; siehe "(Task-)Serialisierung" |
Makrotyp: | S-Typ, MF-Format 1: Standardform/L-/E-Form; siehe "S-Typ-Makroaufrufe" |
DEQAR generiert je nach Angabe die 24-Bit- oder die 31-Bit-Schnittstelle. Bei Verkettung der Makroaufrufe muss in jedem Aufruf der Operand PARMOD mit demselben Operandenwert angegeben werden.
Makrobeschreibung
Der Makro DEQAR beendet die Belegung der angegebenen Serialisierungskennung (angefordert durch ENQAR) durch die Task des Aufrufers. Befindet sich in der Warteschlange für diese Serialisierungskennung eine andere Task, so wird diese aktiviert und belegt nun die Serialisierungskennung.
Als wahlweise Funktion kann mit diesem Makroaufruf auch die Zuordnung der Serialisierungskennung (ENASI) zu der Task des Aufrufers aufgehoben werden.
Durch den CONTINU-Operanden können bis zu 255 DEQAR-Aufrufe gekettet werden.
Makroaufrufformat und Operandenbeschreibung
DEQAR |
{ {SINAME=name / SINAMAD={adr / (r)} [,SINAMLN=länge]},SCOPE={LOCAL / GROUP / USER_GROUP / GLOBAL} } / SIID={adr / (r)}} ,DISSI=NO / YES ,HOLDER=SELF / ANY ,CONTINU=NO / YES [,PARMOD=24 / 31] [,MF=L / (E, ..)] |
SINAME=name
gibt den Namen der Serialisierungskennung an. Zur eindeutigen Bezeichnung der Serialisierungskennung muss zusätzlich „SCOPE“ angegeben werden.
SINAMAD=
bezeichnet den Namen der Serialisierungskennung. Die Kennung ist nur durch die zusätzliche Angabe von „SCOPE“ eindeutig bezeichnet.
adr
symbolische Adresse des Feldes, das den Namen enthält
(r)
r = Register, das die Adresse enthält
SINAMLN=
gibt die Länge des Namens der Serialisierungskennung 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 SINAMAD-Operanden angenommen, wenn SINAMAD=adr angegeben ist;
bei SINAMAD=(r) wird die maximale Länge (54) angenommen.
länge
Länge des Namens der Serialisierungskennung.
SCOPE=
beschreibt den Geltungsbereich (Teilnehmerkreis) für die Serialisierungskennung.
LOCAL
Die Serialisierungskennung 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 GE-TUGR (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.
SIID=
bezeichnet die Kurzkennung der Serialisierungskennung. Diese Kurzkennung wird dem Benutzer durch den ENASI-Makroaufruf zur Verfügung gestellt. Die Verwendung der Kurzkennung an Stelle des Namens zur Identifizierung einer Serialisierungskennung beschleunigt die Verarbeitung. Die Serialsierungskennung ist durch die Kurzkennung eindeutig bezeichnet.
adr
symbolische Adresse eines 4 Byte langen Feldes, das die Kurzkennung enthält
(r)
r = Register, das die Adresse enthält
DISSI=
gibt an, ob die Zuordnung der angegebenen Serialisierungskennung durch die Task des Aufrufers aufgehoben werden soll (siehe Makro DISSI).
NO
Die Zuordnung wird nicht aufgehoben.
YES
Die Zuordnung wird aufgehoben.
HOLDER=
gibt an, ob die Beendigung des Zugriffs durchgeführt werden soll, wenn die Task des Aufrufers den derzeit wirksamen Zugriff angefordert hat.
SELF
Der Zugriff wird beendet, wenn die Task des Aufrufers auch den derzeit wirksamen Zugriff angefordert hat.
ANY
Bei Angabe von HOLDER=ANY wird der Zugriff beendet, unabhängig davon, von welcher Task der Zugriff angefordert wurde.
CONTINU=
Durch diesen Operanden kann eine Kettung von bis zu 255 DEQAR-Aufrufen erfolgen.
NO
Dies ist der letzte (bzw. einzige) Aufruf einer Folge.
YES
YES bedeutet, dass unmittelbar nach diesem DEQAR-Aufruf ein weiterer folgt.
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).
Hinweise zum Makroaufruf
Bei der Verwendung der Listenform des Makroaufrufes (Operand MF=L) ist zu beachten:
Zur Ausführung muss nur ein Makroaufruf mit MF=E gegeben werden, unabhängig davon, ob dieser Aufruf für eine einzelne Anforderung oder für eine Folge von Anforderungen gilt.
Der Datenbereich bei einer Folge von Anforderungen wird durch Kettung der Makroaufrufe (MF=L) durch den CONTINU-Operand erzeugt.
Bei Programmbeendigung werden alle Zugriffsanforderungen dieses Programms beendet.
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 DEQAR wird ein gegliederter Returncode (aa=primärer RC, bb=sekundärer RC) im Register R15 übergeben.
X'bb' | X'aa' | Erläuterung |
X'00' | X' 00' | Alle Dequeue-Aufrufe wurden ausgeführt. |
X'04' | X'00' | Alle Dequeue-Aufrufe wurden ausgeführt. |
X'08' | X'00' | Alle Dequeue-Aufrufe wurden ausgeführt. |
X'0C' | X'04' | Nicht alle Dequeue-Aufrufe wurden ausgeführt. |
X'10' | X'04' | Nicht alle Dequeue-Aufrufe wurden ausgeführt.
|
X'14' | X'04' | Nicht alle Dequeue-Aufrufe wurden ausgeführt. |
X'20' | X'04' | Nicht alle Dequeue-Aufrufe wurden ausgeführt. |