Allgemeines
Anwendungsgebiet: | Binden und Laden; siehe "Binden und Laden" |
Makrotyp: | S-Typ, MF-Format 2: Standardform/C-/D-/L-/M-Form; |
Zum dynamischen Bindelader DBL siehe auch Handbuch „BLSSERV“ [4].
Makrobeschreibung
Der Makroaufruf ETABIT erzeugt einen Eintrag für eine Symboltabelle, die beim Makroaufruf ETABLE an den DBL übergeben wird.
Makroaufrufformat und Operandenbeschreibung
ETABIT |
MF=D / C / L / M ,AMODE=*NOT-SPECIFIED / *31 / *24 / *ANY ,HSI_CODE=*BY-SYSTEM / *390 / *RISC / *SPARC / *X86E 1 ,INVISIBLE=*NOT-SPECIFIED / *NO / *YES ,LEN=0 / <integer 0..2147473647> ,LOAD_ADDR=NULL-1 / <var: pointer> ,PAGE_ALIGNED=*NOT-SPECIFIED / *NO / *YES ,PRIVILEGED=*NOT-SPECIFIED / *NO / *YES ,PUBLIC=*NOT-SPECIFIED / *NO / *YES ,READ_ONLY=*NOT-SPECIFIED / *NO / *YES ,RESIDENT=*NOT-SPECIFIED / *NO / *YES ,SYMBOL_NAME= ,SYMBOL_TYPE=*NOT-SPECIFIED / *CSECT / *ENTRY / *COMMON ,PARAM=<var: pointer> / (reg: pointer>) ,PREFIX=P / p ,MACID=BET / macid |
1Die Operandenwerte *RISC und *SPARC sind seit BS2000/OSD-BC V9.0 bedeutungslos
Der Wert *NOT-SPECIFIED führt beim Erzeugen eines Eintrags dazu, dass die Attribute des Symbols mit 'FALSE' initialisiert werden.
In der nachfolgenden Operandenbeschreibung sind die Operanden alphabetisch geordnet.
AMODE=*NOT-SPECIFIED / *31 / *24 / *ANY
Wert des Attributes AMODE
HSI_CODE=*BY-SYSTEM / *390 / *X86E
Anzugeben ist der Code-Typ, auf den das Symbol verweist (*390, *X86E). Default-Wert ist der Typ des Servers, auf der das Benutzerprogramm abläuft. Es sollte jedoch immer der richtige HSI-Code eingetragen werden, damit es nicht zur unerwünschten und eventuell falschen Aktualisierung beim Makroaufruf ETABLE ACTION=*UPDATE
kommt.
INVISIBLE=*NOT-SPECIFIED / *NO / *YES
Wert des Attributes INVISIBLE
LEN=0 / <integer 0..2147483647>
Länge des Elements.
Für CSECTs und COMMON-Bereiche muss LEN größer als 0 sein.
Für ENTRYs muss LEN gleich 0 sein.
LOAD_ADDR=NULL-1 / <var: pointer>
Ladeadresse des Symbols.
MF=
Zur allgemeinen Beschreibung des Operanden MF, der dazugehörenden Operandenwerte und der evtl. angegebenen Operanden PARAM, PREFIX und MACID siehe Abschnitt „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 AAbschnitt „S-Typ-Makroaufrufe“).
PAGE_ALIGNED=*NOT-SPECIFIED / *NO / *YES
Wert des Attributes PAGE_ALIGNED
PRIVILEGED=*NOT-SPECIFIED / *NO / *YES
Wert des Attributes PRIVILEGED
PUBLIC=*NOT-SPECIFIED / *NO / *YES
Wert des Attributes PUBLIC
READ_ONLY=*NOT-SPECIFIED / *NO / *YES
Wert des Attributes READ_ONLY
RESIDENT=*NOT-SPECIFIED / *NO / *YES
Wert des Attributes RESIDENT
SYMBOL_NAME=' '
/ <c-string 1..32> / <var: char 1..32>
Name des Symbols
SYMBOL_TYPE=*NOT-SPECIFIED / *CSECT / *ENTRY / *COMMON
Symboltyp, der in die Symboltabelle eingetragen wird.
Hinweise zum Makroaufruf
Wird der Parameter HSI_CODE nicht angegeben, so gilt für ihn der Default-Wert *BY-SYSTEM. Wenn dann der Makro ETABLE mit ACTION=*UPDATE aufgerufen wird, kann es in manchen Fällen zu einer unerwünschten Aktualisierung des HSI-Codes kommen. Um das zu verhindern, sollte der HSI-Code des Symbols immer angegeben werden.
Für den Makroaufruf ETABIT gelten zudem die Hinweise, die beim Makro ETABLE beschrieben sind. Das Layout eines Tabelleneintrags ist ebenfalls dort beschrieben.
Rückinformation und Fehleranzeigen
Standardheader:
+---------------+ | | | | | |c|c|b|b|a|a|a|a| +---------------+
Über die Ausführung des Makros ETABIT 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'01' | X'00' | X'0000' | Dasselbe ETABLE-Symbol existiert bereits. |
X'60' | X'01' | X'0006' | Fehler beim Adressierungsmodus. |
X'60' | X'01' | X'0007' | Ungültige Längenangabe. |
X'60' | X'01' | X'0009' | Ungültiger Attributwert. |
X'60' | X'01' | X'000B' | Ungültiger Wert bei HSI. |
X'60' | X'01' | X'000C' | Der Symboltabelleneintrag für ETABLE ist ungültig. |
X'60' | X'01' | X'000D' | SYMBOL-TYPE wurde beim Erzeugen des Eintrags nicht angegeben. |
X'60' | X'01' | X'002C' | Ungültiger Symbolname. |
X'60' | X'01' | X'0060' | Symbol nicht gefunden. |
X'60' | X'01' | X'0130' | Ungültiger Operand LOAD_ADDR. |
X'60' | X'01' | X'0150' | Fehler bei Symboltyp. |
X'60' | X'01' | X'0151' | Ein mit ETABLE generiertes Symbol mit diesem Namen existiert bereits. |
X'60' | X'01' | X'0152' | Ein nicht mit ETABLE generiertes Symbol mit diesem Namen existiert |
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.