|
The numbered items in the following list correspond to the numbers
in the Ref column in the above table. - ESD_TYPE in PM2 supports only six record types: SD, ED, LD, PD,
PR and ER. The PM1 ESD type values have been moved to the ESD_TYPE_QUAL
field.
- ESD_TYPE_QUAL contains the PM1 ESD type value, and is used to
identify special behavioral characteristics. Routines that process
all sections in the same way can now refer to ESD_TYPE only; those
that must discriminate between the various section types must also
look at the type qualifier.
- ESD_NAME_SPACE is a new data element in PM2. It replaces some
logic in bind processing and, as a result, gives more binding flexibility
to the languages. For binder purposes, a name space is a set of symbols
consisting of characters from the binder's character set and contains
no duplicate definitions. In the case of a PM1 program object, the
buffer is set to one of the following values:
- 0 - SD and ED entries.
- 1 - LD and ER entries, and PD/PR entries for external data items.
- 2 - PD/PR entries representing pseudoregisters and other parts
- Alignment, Usability, RMODE and AMODE are unchanged from PM1 values,
except that some have been moved to lower level ESD structures:
- Alignment to ED. PR alignment comes from old PR record.
- AMODE to LD. Each external label can have its own AMODE, but
can be overridden by a referencing ALIAS specification.
- RMODE to ED. This is necessary for multipart loading.
All remain as valid SD fields for compatibility, although
they are copied to the other record types prior to binding.
- ESD_RECORD_FMT is a new data element in PM2. It is used only on
the ED record type, and indicates the structure and record length
of the data contained in the class being described by the ED record.
As such it becomes a class attribute, against which the record length
field in any PUTD buffers for that class is validated.
- ESD_LOAD_FLAGS is a new data element in PM2. Its purpose is to
enable multiclass loading by the program management Loader, and together
with RMODE contains the various attributes the loader needs for proper
placement of the class segment in storage. Load flags are extracted
from input of all sources.
- The PM1 format defines ESD_STORAGE value X'10' as representing
read-only storage. This field is reduced to a single load flag in
PM2, RO, where B'1' means read-only.
- Loader attribute NL, if set, indicates that the class segment
is not to be loaded with the module.
- These are new PM2 data elements.
- Bind flags ESD_BIND_FLAGS are new PM2 data elements. In a PM2
program object, they represent binding attributes that are derived
from other sources during binding. They control the binding and output
processes of the binder. Four flags have been defined, GEND, NO_CLASS,
VL and DESCR.
- GEND indicates that the defined entity has been generated by the
binder. It is used with:
- SD records for SEGTABs and ENTABs and special sections (X'00000001' and X'00000003').
- ED records for B_IDRB and B_MAP classes.
- LD records created by the binder for each CSECT.
- PD summary records created by the binder for parts.
- NO_CLASS indicates that there is no initial data in this class.
The element is filled with the fill byte, if specified, during bind
and/or load.
- VL indicates that the byte stream data consists of varying length
records, each preceded by a halfword length field.
- DESCR indicates whether the class contains text or descriptive
data. Text is byte stream data that can contain or be the target of
address constants. Descriptive data is everything else. Both text
and descriptive data could be either loaded or not.
- ESD_BIND_CNTL contains two data elements needed to control the
binding process. Unlike ESD_BIND_FLAGS, this data is provided by the
language translator. This field consists of two sub-elements, METH
and TEXT_TYPE.
- Binder control field METH identifies the binding method to be
used on the class. It is specified only on the ED record, and should
be set to B'00' on other record types for PM2 program objects.
- The field ESD_TEXT has been reduced to a half-byte field under
the name TEXT_TYPE. The data is meaningful only for external references,
on the ER and LD records, and allows cursory interface matching during
binding. The values represent the type of text that is defined by
the label (LD) or expected by the reference (ER) and are:
- 0 - Unspecified. If either the LD and/or ER have this value, the
interface is accepted by the binder.
- 1 - Data. For data references.
- 2 - Instructions. For calls.
- 3-15 - Undefined value for special translator usage.
- These are new PM2 data elements. ESD_XATTR_CLASS and ESD_XATTR_OFFSET
locate extended attributes for a label (LD) or external reference
(ER). On SD, ED, PR and PD records, these fields are meaningless and
are set to zero.
IBM® language
products are not currently using signatures, extended attributes,
or interface matching.
- SIGNATURE is a new data element in PM2. It allows quick interface
matching between reference and definition during the binding process,
avoiding the invocation of a time-consuming interface validation exit
if the signatures match or are not specified.
IBM language products are not currently using
signatures, extended attributes or interface matching.
- This is a new PM2 data element. For a PM2 program object, CLASS
is displayed on all LD, PD and ER records and should be set to zero
on SD and ED. For LD, PD and ER records, it is the data class containing
the label or part.
- Change of field names: "section" becomes "element", "module" becomes "class".
Table 1. ESD element usageElement Name |
SD |
ED |
LD |
PR |
ER |
---|
ESD_NAME |
R |
R |
R |
R |
R |
ESD_RES_SECT |
O |
O |
O |
O |
O |
ESD_TARGET |
|
|
|
|
C |
ESD_RES_CLASS |
|
|
R |
R |
C |
ESD_XATTR_CLASS |
|
|
O |
|
O |
ESD_XATTR_OFFSET |
|
|
O |
|
O |
ESD_LENG |
|
R |
|
R |
|
ESD_ELEM_OFFSET |
|
|
R |
|
C |
ESD_CLASS_OFFSET |
|
C |
C |
C |
C |
ESD_REGION |
C |
|
|
|
|
ESD_SEGMENT |
C |
|
|
|
|
ESD_TYPE |
R |
R |
R |
R |
R |
ESD_TYPE_QUAL |
R |
|
|
|
O |
ESD_SCOPE |
|
|
R |
|
R |
ESD_NAME_SPACE |
|
R |
C |
C |
R |
ESD_RECORD_FMT |
|
R |
|
|
|
ESD_LOAD_FLAGS |
|
R |
|
|
|
ESD_BIND_FLAGS |
C |
R |
C |
|
|
ESD_BIND_CNTL |
|
R |
R |
|
R |
ESD_ALIGN |
O |
R |
|
R |
|
ESD_USABILITY |
R |
|
|
|
|
ESD_RMODE |
|
R |
|
|
|
ESD_AMODE |
O |
|
R |
|
|
ESD_AUTOCALL |
|
|
|
|
C |
ESD_STATUS |
|
|
|
|
C |
ESD_SIGNATURE |
|
|
|
|
C |
Note: R = Required
on input, displayed on output; O = Optional on input, displayed on
output; C = Recalculated by Bind.
|
|