Allgemeines
Anwendungsgebiet: | Binden und Laden; siehe "Binden und Laden" |
Makrotyp: | Makrotyp: S-Typ, MF-Format 2: Standardform/C-/D-/L-/E-/M-Form; |
Zum dynamischen Bindelader DBL siehe auch Handbuch „BLSSERV“ [4].
Makrobeschreibung
Der Makroaufruf DSHARE entlädt ein einzelnes gemeinsam benutzbares Programm aus einem Common Memory Pool, das zuvor mit dem ASHARE-Makro geladen wurde. Die aufrufende Task muss an den Common Memory Pool angeschlossen sein, in dem sich das gemeinsam benutzbare Programm befindet. Wenn sich der letzte Teilnehmer von einem Memory Pool trennt, werden alle gemeinsam benutzbaren Programme dieses Memory Pools entladen und der Memory Pool wird aufgelöst (siehe Makro DISMP).
Makroaufrufformat und Operandenbeschreibung
DSHARE |
{ PROGRAM=name / PROG@={adr / (r)} } [, { PGMVERS={*STD / version} / PGMVER@= {adr / (r)} }] ,MF=S / C / D / E / L / M [,PARAM=adr / (r)] ,PREFIX=P / p ,MACID=BDS / macid |
PROGRAM=name
Identifiziert das Programm, das mit dem ASHARE-Makro in den Common Memory Pool geladen wurde. Der angegebene Name muss eindeutig und darf nicht länger als 32 Zeichen sein.
PROG@=
Gibt die Adresse eines Feldes an, das den Programmnamen enthält. Angabe nur mit MF=M.
adr
Adresse eines Hilfsfeldes, das die gesuchte Feldadresse enthält.
(r)
r = Register mit der gesuchten Feldadresse.
PGMVERS=
Gibt die Programmversion an.
*STD
Die Programmversion wird beim Entladen nicht berücksichtigt, d.h. das erste gefundene Programm mit dem angegebenen Namen wird entladen.
version
Die Versionsangabe darf maximal 24 Zeichen lang sein. Wenn diese Version des Programms nicht im Common Memory Pool existiert, wird nichts entladen und der entsprechende Returncode übergeben.
PGMVER@=
Gibt die Adresse eines Feldes an, das die Programmversion enthält. Angabe nur mit MF=M.
adr
Adresse eines Hilfsfeldes, das die gesuchte Feldadresse enthält.
(r)
r = Register mit der gesuchten Feldadresse.
MF=
Zur allgemeinen Beschreibung des Operanden MF, der dazugehörenden Operandenwerte und der evtl. angegebenen Operanden PREFIX, MACID und PARAM siehe „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 „S-Typ-Makroaufrufe“).
Hinweise zum Makroaufruf
Vor dem Aufruf von DSHARE muss sich der Benutzer an den Memory Pool anschließen.
Shared Code kann nur mit dem Makro DSHARE aus Memory Pools entladen werden. Der Makro UNBIND kann dafür nicht verwendet werden.
Es liegt in der Verantwortung des Benutzers, zu überprüfen, ob das zu entladende Programm noch von anderen Benutzern ausgeführt wird.
Rückinformation und Fehleranzeigen
Standardheader:
+---------------+ | | | | | |c|c|b|b|a|a|a|a| +---------------+
Über die Ausführung des Makros DSHARE 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' | Der Makro wurde normal ausgeführt. |
X'00' | X'01' | X'0001' | Der Programmname fehlt. |
X'00' | X'01' | X'0010' | Das Programm wurde in keinem für den Benutzer zugreifbaren Memory |
X'00' | X'01' | X'0011' | Das Programm wurde gefunden, aber der Benutzer ist nicht an den |
X'00' | X'20' | X'0100' | Systemfehler |
X'00' | X'20' | X'0101' | DBL-Fehler während des Entladens |
X'00' | X'20' | X'0103' | Fehler des DBL-Lock-Managers während der Abarbeitung des DSHA- |
X'00' | X'01' | X'FFFF' | Die Funktion wird nicht mehr oder noch nicht unterstützt. |
X'00' | X'03' | X'FFFF' | Die Version der Schnittstelle wird nicht unterstützt. |
Weitere Returncodes, deren Bedeutung durch Konvention makroübergreifend festgelegt ist, können der Tabelle „Standard-Returncodes“ (Standardheader) entnommen werden.