Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

ETABIT - Generate or change entry for symbol table

&pagelevel(3)&pagelevel

General

Application area:

Linking and loading; see "Linking and loading"

Macro type:

Type S, MF format 2: standard/C/D/L/M form; see "S-type macros"


See also the “BLSSERV” manual [4 (Related publications)] for information on the dynamic binder loader DBL.

Macro description

The ETABIT macro generates an entry for a symbol table, which is transferred to the DBL when the ETABLE macro is called.

Macro format and description of operands

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=' ' / <c-string 1..32> / <var: char 1..32>

,SYMBOL_TYPE=*NOT-SPECIFIED / *CSECT / *ENTRY / *COMMON

,PARAM=<var: pointer> / (reg: pointer>)

,PREFIX=P / p

,MACID=BET / macid

1The operand values *RISC and *SPARC have no meaning in BS2000/OSD-BC V9.0 and higher

When creating an entry, the value *NOT-SPECIFIED causes the attributes of the symbols to be initialized with ’FALSE’.

The operands are described in alphabetical order below.

AMODE=*NOT-SPECIFIED / *31 / *24 / *ANY
Value of the AMODE attribute

HSI_CODE=*BY-SYSTEM / *390 / X86E
The code type that refers to the symbol must be specified (*390, *X86E).
The default value is the type of server on which the user program is running. However, the correct HSI code should always be entered in order to avoid an undesired and possibly incorrect update on an ETABLE ACTION=*UPDATE macro.

INVISIBLE=*NOT-SPECIFIED / *NO / *YES
Value of the INVISIBLE attribute

LEN=0 / <integer 0..2147483647>
Length of element.
For CSECTs and COMMON areas, LEN must be greater than 0.
For ENTRYs, LEN must be 0.

LOAD_ADDR=NULL-1 / <var: pointer>
Load address of the symbol.

MF=
For a general description of the MF operand, its operand values and any of the specified operands PARAM, PREFIX and MACID, see section “S-type macros”. The valid MF values are given at the start of the macro description under “Macro type” and are included in the macro format.
It is possible to specify a PREFIX in the C form, D form, or M form of the macro, and additionally a MACID in the C form or M form (see section “S-type macros”).

PAGE_ALIGNED=*NOT-SPECIFIED / *NO / *YES
Value of the PAGE_ALIGNED attribute

PRIVILEGED=*NOT-SPECIFIED / *NO / *YES
Value of the PRIVILEGED attribute

PUBLIC=*NOT-SPECIFIED / *NO / *YES
Value of the PUBLIC attribute

READ_ONLY=*NOT-SPECIFIED / *NO / *YES
Value of the READ_ONLY attribute

RESIDENT=*NOT-SPECIFIED / *NO / *YES
Value of the RESIDENT attribute

SYMBOL_NAME=' ' / <c-string 1..32> / <var: char 1..32>
Symbol name

SYMBOL_TYPE=*NOT-SPECIFIED / *CSECT / *ENTRY / *COMMON
Symbol type entered in the symbol table.

Notes on the macro call

  • If the HSI_CODE parameter is not specified, it is set to the default value *BY-SYSTEM. A subsequent call to the ETABLE macro with ACTION=*UPDATE could, in some cases, cause the HSI code to be inadvertently updated. To prevent this from happening, the HSI code of the symbol must always be specified.

  • The notes relating to the ETABLE macro also apply to the ETABIT macro. The layout of a table entry is also described there.

Return information and error flags

Standard header:

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

A return code relating to the execution of the ETABIT macro is transferred in the standard header (cc=Subcode2, bb=Subcode1, aaaa=Maincode):

X'cc'

X'bb'

X'aaaa'

Meaning

X'00'

X'00'

X'0000'

The macro was executed normally.

X'01'

X'00'

X'0000'

The same ETABLE symbol already exists.

X'60'

X'01'

X'0006'

Error in addressing mode.

X'60'

X'01'

X'0007'

Invalid length specification.

X'60'

X'01'

X'0009'

Invalid attribute value.

X'60'

X'01'

X'000B'

Invalid value in HSI.

X'60'

X'01'

X'000C'

The symbol table entry for ETABLE is invalid.

X'60'

X'01'

X'000D'

SYMBOL_TYPE was not specified when the entry was generated.

X'60'

X'01'

X'002C'

Invalid symbol name.

X'60'

X'01'

X'0060'

Symbol not found.

X'60'

X'01'

X'0130'

Invalid LOAD_ADDR operand.

X'60'

X'01'

X'0150'

Error in symbol type.

X'60'

X'01'

X'0151'

A symbol generated with ETABLE with this name already exists.

X' 60'

X' 01'

X'0152'

A symbol not generated with ETABLE with this name already exists and
the required action for such a symbol is not permitted (see "ETABLE - Transfer load information").

X' 00'

X' 01'

X'FFFF'

The function is no longer or not yet supported.

X' 00'

X' 03'

X'FFFF'

The interface version is not supported.

Other return codes which, in accordance with conventions, apply to all macros are given in the table “Standard return codes” (Standard header).