External symbol definition behavioral attributes

The format of the behavioral attributes data field in an external symbol definition record is as follows:

Table 1. External symbol definition behavioral attributes
Field Offset Type Description
Addressing Properties 0 Byte(1) Addressing mode associated with this external symbol. If control is received from the operating system at an entry point named by this symbol, these addressing properties will determine the addressing mode.
X'00'
AMODE not specified (default=24)
X'01'
AMODE(24)
X'02'
AMODE(31)
X'03'
AMODE(ANY) (either 24-bit or 31-bit: an entry point can tolerate either addressing mode)
X'04'
AMODE(64)
X'10'
AMODE(MIN): the program management binder can set the AMODE to the minimum AMODE of all entry points in the program object.

All other values are reserved.

Residence Properties 1 Byte(1) Residence mode associated with this external symbol.
X'00'
RMODE not specified (default=24)
X'01'
RMODE(24)
X'03'
RMODE(31)
X'04'
RMODE(64)

All other values are reserved.

Note: RMODE(31) is equivalent to OBJ RMODE(ANY).
Text Record Style 2.0-3 Bit(4) Designates the style of text to be accepted into this class. (See Text record for further details.)
Note: Text is valid only for ED and PR items.
B'0000'
Byte-oriented data. The "Address" field in the Text record provides the offset within the designated element where the data bytes are to be placed.
B'0001'
Structured-record (binder-defined) data. Only one form of structured-record data is currently defined (see Identification record data field and Figure 1 for a description).
B'0010'
Unstructured-record (user-defined) data

All other values are reserved.

Note: The Text Record Style in the ED record will be matched against that on the text records for this element, as a safety check.

All text data within a class must be of the same style.

Binding Algorithm 2.4-7 Bit(4) Type of binding action to be performed:
B'0000'
Concatenate: each of the section contributing elements within the designated class will be concatenated by placing the contributions "end to end", with boundary alignment. (This is typified by current OBJ SD items.)
B'0001'
Merge: identically named parts will be "merged" by retaining the longest length and most restrictive alignment. (This is typified by current OBJ CM and PR items.) The merged parts will then be concatenated (with differently-named parts possibly having different alignments) in a program management binder-created class. Only parts are allowed in a MERGE class.

All other values are reserved.

Tasking Behavior 3.0-2 Bit(3) Translators wanting to specify the "traditional" tasking and concurrency attributes can use the following settings:
B'000'
Unspecified
B'001'
NON-REUS: Not serially reusable
B'010'
REUS: serially reusable
B'011'
RENT: reentrant

All other values are reserved.

Note that RENT implies REUS.

  3.3 Bit(1) Reserved.
Read-Only 3.4 Bit(1) Read-only indicator; no stores are allowed into this object, so the system can place it into protected storage.
B'0'
Not read-only
B'1'
Read-only
Executable 3.5-7 Bit(3) Executable or not-executable indicator
B'000'
Not specified (currently)
B'001'
Not executable (That is, "This is data".)
B'010'
Executable (That is, "This is code".)

All other values are reserved.

Note: These flags can be applied to LD, PR, and ER elements. LD elements can also inherit the executability properties of the element to which they belong.
  4.0-4.1 Bit(4) Reserved.
Duplicate symbol severity 4.2–3 Bit(2) Severity to be associated with duplicate definitions of this symbol.
B'00'
Severity determined by the binder.
B'01'
Severity should be at least 4 (warning).
B'10'
Severity should be at least 8 (error).
B'11'
Reserved.
Note: This field applies to PR ESD items only.
Binding Strength 4.4-7 Bit(4) Strength of a definition or reference:
B'0000'
Strong reference or definition
B'0001'
Weak reference or definition

All other values are reserved.

Weak references are handled as in current products; the interactions with definitions are as follows:
Strong Reference
If unresolved, an "out-of-module" external library search will be made for a name to resolve the reference.
Weak Reference
If unresolved, no "out-of-module" external library search will be made to resolve the reference.
Strong Definition
Can be resolved to any reference. (This is the default, and normal, definition strength.)
Class Loading Behavior 5.0-1 Bit(2) Determines whether or not the elements in this class will be loaded with the module when a LOAD (or similar) request to the operating system is satisfied by bringing the program object into storage.
B'00'
LOAD–Load this class with the module (Also known as INITIAL LOAD.)
B'01'
DEFERRED LOAD–This class will very probably be required by the program, and should be partially loaded in preparation for such a request.
B'10'
NOLOAD–Do not load this class with the module.
B'11'
Reserved.
COMMON Flag 5.2 Bit(1) If 1, indicates that this section should be treated as an "old" COMMON: that is, as like any other CM section. If more than one COMMON is present, the longest length will be retained; if an SD section with the same name is present, its length and text will be retained. The only text class supported is B_TEXT.
Direct Versus Indirect Reference 5.3 Bit(1) This bit indicates whether references to the symbol are direct or via a linkage descriptor. This bit is also known as the "descriptor bit".
B'0'
References are direct (as far as binder processing is concerned).
B'1'
For a PR item, indicates that the item represents a linkage descriptor. For An ER item, if the XPLINK bit is on, this represents a reference to an XPLINK linkage descriptor.
Binding Scope 5.4 Bit(4) Requested binding or resolution-search scope of an external symbol.
B'0000'
Unspecified
B'0001'
Section scope ("local")
B'0010'
Module scope ("global")
B'0011'
Library scope.
B'0100'
Import-Export scope

All other values are reserved.

  6.0-1 Bit(3) Reserved.
Linkage Type 6.2 Bit(1) Linkage Convention Indicator
B'0'
Standard OS linkage. This is the default.
B'1'
XPLINK linkage.
Note: This bit is valid for ER, LD, PD, and PR items.
Alignment 6.3-7 Bit(5) Storage alignment requirement of this object
Bits
Implied Alignment of the Object
B'00000'
byte
B'00001'
halfword
B'00010'
fullword
B'00011'
doubleword
B'00100'
quadword
B'00101'
32 byte
B'00110'
64 byte
B'00111'
128 byte
B'01000'
256 byte
B'01001'
512 byte
B'01010'
1024 byte
B'01011'
2KB
B'01100'
4KB page

All other values are reserved.

Note:
  1. Alignment bits = log2(boundary_size).
  2. All these alignments are supported for both ED and PR types.
  7-9 Byte(3) Reserved.