Parameters Related to the GET Function

If the DESERV exit gets control for a DESERV GET function invocation, DESX_DESP_PTR points to the DESERV parameter list. If the DESP field DESP_FUNC=X'01' (DESP_FUNC_GET), this indicates a GET function parameter list. See Table 1 for the DESP structure for fields pertaining to a DESERV GET invocation.

DESERV GET will return information on selected members. This information is returned in a DESB structure. The DESB is mapped by the DESB DSECT in the IGWDES macro. If the storage for the DESB is provided by the DESERV GET, the DESP_AREA_PTR field contains the address of this storage. Alternatively the caller may request that DESERV GET not obtain the storage for the DESB. In this case the DESP_AREAPTR_PTR field contains the address of a 4 byte area into which DESERV GET will return the address of a DESB. The DESB will be obtained in the subpool identified by DESP_SUBPOOL (or default to subpool zero). The flag DESP_SUBPOOL_FLG indicates whether the subpool was specified explicitly by the DESERV GET caller.

A DESERV GET invocation identifies the members to be searched for by a name list, a PDS format directory entry, or an SMDE. The DESP field DESP_GETTYPE defines the get type. If the get type is a PDSDE (the member to be searched for is defined by a PDS format directory entry), the DESP_PDSDE_PTR points to a directory entry as returned by the BLDL macro. The PDS2 DSECT in the IHAPDS macro maps this structure. The function of DESERV GET for a PDSDE get type depends on the type of library identified by the concatenation number in the PDS style directory entry. If the concatenation number identifies a PDS, the GET function is simply to convert the PDS style directory entry into a SMDE. If the concatenation number identifies a PDSE, the GET function is to connect to the member identified by the PDS2TTRP field, and to return the appropriate SMDE. In either case the SMDE is retuned (if in the PDSE case the member actually exists) in the data portion of the output buffer (DESB, mapped below).

If the get type is name list, the DESL area points to the names to be searched for. The DESP_NAME_LIST_PTR points to the DESL and the DESL DSECT in the IGWDES macro maps it. A DESL is an array consisting of the number of entries the DESP field DESP_NAME_LIST2 defines. The DESL parameter list is shown in Table 2.

If the get type is SMDE, the DESP_SMDE_PTR points to a system-managed directory entry (SMDE) as returned by DESERV GET. DESERV GET will cause a connection to the member identified by the SMDE. DESERV GET will return a copy of the SMDE in the output DESB. The SMDE returned will of course have updated connect token and connect id fields.

There are two input flags which control DESERV GET's view of the PDS or PDSE to be searched. If the DESP_C370LIB flag is on, a PDS may be viewed as a C370LIB. This means that if the PDS has a special member named @@DC370$, this member is treated as the "real" directory for the PDS. If the DESP_SYSTEM_DCB is on, this indicates that the caller (who must be authorized) has indicated that this DCB is "owned by the system" and is not on any DEB chain, therefore DEBCHK should not be done.

Hint: The name of the special member @@DC370$ might not display correctly on your screen or printer. The first two characters are X'7C' and the last character is X'5B'.
Table 1. Structure of DESP for DESERV GET Invocations
Offset Length or Bit Pattern Name Description
00 (X'00') 104 DESP DE Services parameter list (structure)
00 (X'00') 16 DESP_HEADER (character) 'IGWDESP'
00 (X'00') 8 DESP_ID Eyecatcher IGWDESP (character)
08 (X'08') 24 DESP_LEN Length of DESP (signed)
X'04' DESP_LEN_IV Constant to be used with DESP_LEN
12 (X'0C') 1 DESP_LEV Control block level (character)
X'01' DESP_LEV_IV Constant to be used with DESP_LEV
13 (X'0D') 3 - Reserved
16 (X'10') 1 DESP_FUNC Function type (unsigned)
X'07' DESP_FUNC_DELETE Function is DELETE
X'08' DESP_FUNC_RENAME Function is RENAME
X'09' DESP_FUNC_UPDATE Function is UPDATE
X'04' DESP_FUNC_PUT Function is PUT
X'01' DESP_FUNC_GET Function is GET
X'00' DESP_FUNC_OMITTED Function is omitted
17 (X'11') 3 - Reserved
20 (X'14') 4 - Reserved
24 (X'18') 12 DESP_DATA Function data (character)
24 (X'18') 2 DESP_FLAGS Flags (bitstring)
1... .... DESP_BYPASS_LLA 0=USE LLA, 1=BYPASS LLA
.x.. .... - Reserved
..1. .... DESP_SUBPOOL_FLG 0=SUBPOOL not specified, 1=SUBPOOL specified
...1 .... DESP_C370LIB 1=treat PDSs as C370LIB if @@DC370$ member exists
.... xx.. - Reserved
.... ..1. DESP_SYSTEM_DCB 1=treat DCB as a system DCB
26 (X'1A') 1 - Reserved
27 (X'1B') 1 - Reserved
28 (X'1C') 1 DESP_LIBTYPE Indicates whether a DCB or DEB is input =X'02', DEB input=X'01') (unsigned)
X'02' DESP_LIBTYPE_DCB Constant to be used with DESP_LIBTYPE
X'01' DESP_LIBTYPE_DEB Constant to be used with DESP_LIBTYPE
X'00' DESP_LIBTYPE_OMITTED Constant to be used with DESP_LIBTYPE
29 (X'1D') 1 DESP_GETTYPE Indicates whether Name List or PDSDE is input. (NAME_LIST input=(X'01', PDSDE input=X'02') (unsigned)
X'03' DESP_GETTYPE_SMDE Constant to be used with DESP_GETTYPE
X'02' DESP_GETTYPE_PDSDE Constant to be used with DESP_GETTYPE
X'01' DESP_GETTYPE_NAME_LIST Constant to be used with DESP_GETTYPE
X'00' DESP_GETTYPE_OMITTED Constant to be used with DESP_GETTYPE
30 (X'1E') 1 - Reserved
31 (X'1F') 1 - Reserved
32 (X'20') 1 - Reserved
33 (X'21') 1 DESP_SUBPOOL Subpool number for getting DESB.
34 (X'22') 1 DESP_CONN_INTENT Connect intent (unsigned)
X'03' DESP_CONN_INTENT_INPUT INPUT
X'02' DESP_CONN_INTENT_EXEC EXEC
X'01' DESP_CONN_INTENT_HOLD HOLD
X'00' DESP_CONN_INTENT_NONE None
35 (X'23') 1 - Reserved
36 (X'24') 4 DESP_DCB_PTR DCB address, valid if DESP_LIBTYPE=X'02' (address)
40 (X'28') 4 DESP_DEB_PTR DEB address, valid if DESP_LIBTYPE=X'01' (address)
44 (X'2C') 4 DESP_CONN_ID_PTR Connect identifier address
48 (X'30') 4 DESP_AREAPTR_PTR Address of output field for buffer address
52 (X'34') 4 DESP_AREA_PTR Buffer address
56 (X'38') 4 DESP_AREA2 Buffer length (unsigned)
60 (X'3C') 4 - Reserved
64 (X'40') 4 - Reserved
68 (X'44') 4 DESP_ENTRY_GAP Entry gap size (signed)
72 (X'48') 4 - Reserved
76 (X'4C') 4 - Reserved
80 (X'50') 4 DESP_NAME_LIST_PTR Name list address, valid if DESP_GETTYPE=X'01' (address)
84 (X'54') 4 DESP_NAME_LIST2 Input list number of entries, valid if DESP_GETTYPE=X'01' (unsigned)
88 (X'58') 4 - Reserved
92 (X'5C') 4 DESP_PDSDE_PTR BLDL directory entry address, valid if DESP_GETTYPE=X'02' (address)
92 (X'5C') 4 DESP_SMDE_PTR SMDE directory entry address, valid if DESP_GETTYPE=X'03' (address)
96 (X'60') 4 - Reserved
100 (X'64') 4 - Reserved
Table 2. DESL Structure
Offset Length or Bit Pattern Name Description
00 (X'00') 16 DESL Name list (structure)
00 (X'00') 16 DESL_ENTRY Name list entry (character)
00 (X'00') 1 DESL_FLAGS Flags (unsigned)
1... .... DESL_MODULE_BUFFERED_ LLA Module is staged by LLA
1 (X'1') 1 DESL_CODE Result code (New name exists=X'03', Error=X'02', Not found or not processed=X'01', Found=X'00') (unsigned)
X'03' DESL_CODE_NEWNAME_ EXISTS For func=rename, indicates a new name already existed in the PDSE.
X'02' DESL_CODE_ERROR An unexpected error has occurred. The DESL_ERRCODE field is set to a DESRF value
X'01' DESL_CODE_NOTFOUND Entry not found or entry not processed. If func=rename, old name was not found.
X'00' DESL_CODE_SUCC Entry successfully processed
2 (X'2') 2 DESL_ERRCODE Error reason code (low order halfword of DESERV reason code if error) (unsigned)
4 (X'4') 4 - Reserved
08 (X'08') 4 DESL_SMDE_PTR Pointer to SMDE within DESB. Output for GET function, input for UPDATE function (address)
08 (X'08') 4 DESL_NEW_NAME_PTR Pointer to new name (DESN) descriptor for RENAME function (address)
12 (X'0C') 4 DESL_NAME_PTR Pointer to name (DESN) descriptor for GET and DELETE functions (address)
12 (X'0C') 4 DESL_OLD_NAME_PTR Pointer to old name (DESN) descriptor for RENAME function (address)

The DESERV GET caller will have built the DESL to point to variable length names. The DESN DSECT maps these names in the IGWDES macro. See Table 3 for the DESN parameter list.

Table 3. DESN Parameter List
Offset Length or Bit Pattern Name Description
00 (X'00') variable DESN Name record (structure)
00 (X'00') 2 DESN_LEN Length of name that follows (unsigned)
2 (X'02') variable DESN_VAL Name data (character)

The DESP_CONN_INTENT field of the DESP indicates the connection intent requested by the caller. The connection intent only has an effect if the name is found in a PDSE. If the connection intent is DESP_CONN_INTENT_HOLD (X'01'), the effect is similar to a BLDL invocation (because the member is connected for HOLD which is not sufficient to read the member). If the connection intent is DESP_CONN_EXEC (X'02') or DESP_CONN_INTENT_INPUT (X'03'), the effect is similar to a FIND invocation (because the member is connected and sufficient control blocks are built so that the member can be read). The GET function does not currently support a connect intent of NONE.

The output from DESERV GET consists of flags and error codes in the DESL (if the get type is name list) as well as an SMDE (system managed directory entry) pointer. For a gettype of name list, the SMDE is pointed to by the DESL_SMDE_PTR field. For a gettype of PDSDE, the SMDE is in the DESB at the label DESB_DATA. The SMDE is mapped by the SMDE DSECT in the IGWSMDE macro and the PMAR DSECT in the IEWPMAR macro. The SMDE resides in the output buffer as provided by the caller of DESERV GET. The output buffer is mapped by the DESP DSECT of the IGWDES macro. The DESB structure is shown in Table 4.

The basic SMDE format is shown in Table 5.

Table 4. DESB Parameter List
Offset Length or Bit Pattern Name Description
00 (X'00') variable DESB DEServ buffer header (structure)
00 (X'00') 40 DESB_FIXED (character)
00 (X'00') 16 DESB_HEADER (character)
00 (X'00') 8 DESB_ID Eyecatcher - IGWDESB (character)
08 (X'08') 4 DESB_LEN Length of buffer (signed)
12 (X'0C') 1 DESB_LEV Control block level (character)
X'01' DESB_LEV_IV Constant to be used with DESB_LEV
13 (X'0D') 3 - Reserved
16 (X'10') 4 DESB_NEXT Next buffer pointer (address)
20 (X'14') 4 - Reserved
24 (X'18') 4 DESB_COUNT Count of entries in this buffer (unsigned)
28 (X'1C') 4 DESB_AVAIL Start of free space in buffer (address)
32 (X'20') 1 - Reserved
33 (X'21') 1 DESB_SUBPOOL Subpool number (unsigned)
34 (X'22') 2 DESB_GAP_LEN Length of user-requested gap (unsigned)
36 (X'24') 4 - Reserved
40 (X'28') variable DESB_DATA Start of data area (character)
Table 5. SMDE Format
Offset Length or Bit Pattern Name Description
00 (X'00') variable SMDE Member directory entry (structure)
00 (X'00') 44 SMDE_BASIC Start of basic section (character)
00 (X'00') 16 SMDE_HDR Header (character)
00 (X'00') 8 SMDE_ID Eyecatcher (character)
08 (X'08') 4 SMDE_LEN Length of control block. This is the sum of the sizes of the SMDE sections and the size of the user data. (unsigned)
12 (X'0C') 1 SMDE_LVL SMDE version number (unsigned)
X'01' SMDE_LVL_VAL Constant to be used with SMDE_LVL
13 (X'0D') 3 - Reserved
16 (X'10') 1 SMDE_LIBTYPE Source library type. Possible values are declared below with names like SMDE_LIBTYPE_XXX. (unsigned)
X'03' SMDE_C370LIB Constant to be used with SMDE_LIBTYPE
X'02' SMDE_LIBTYPE_HFS Constant to be used with SMDE_LIBTYPE
X'01' SMDE_LIBTYPE_PDSE Constant to be used with SMDE_LIBTYPE
X'00' SMDE_LIBTYPE_PDS Constant to be used with SMDE_LIBTYPE
17 (X'11') 1 SMDE_FLAG Flag byte (bitstring)
1... .... SMDE_FLAG_ALIAS Entry is an alias
.1.. .... SMDE_FLAG LMOD Member is a program
..xx xxxx * Reserved
18 (X'12') 2 - Reserved, must be zero
20 (X'14') 5 - Extended MLTK (character)
20 (X'14') 1 - Reserved, must be zero
21 (X'15') 4 SMDE_MLTK MLT and concatenation number (character)
21 (X'15') 3 SMDE_MLT MLT of member - zero if HFS (character)
24 (X'18') 1 SMDE_CNCT Concatenation number (unsigned)
25 (X'19') 1 SMDE_LIBF Library flag - Z-byte (unsigned)
X'02' SMDE_LIBF_TASKLIB Constant to be used with SMDE_LIBF
X'01' SMDE_LIBF_LINKLIB Constant to be used with SMDE_LIBF
X'00' SMDE_LIBF_PRIVATE Constant to be used with SMDE_LIBF
26 (X'1A') 2 SMDE_NAME_OFF Name offset (signed)
28 (X'1C') 2 SMDE_USRD_LEN User data length (signed)
28 (X'1C') 2 SMDE_PMAR_LEN Sum of lengths of program management attribute record sections (PMAR, PMARR, PMARL) (signed)
30 (X'1E') 2 SMDE_USERD_OFF User data offset (signed)
30 (X'1E') 2 SMDE_PMAR_OFF Program management attribute record offset (signed)
32 (X'20') 2 SMDE_TOKEN_LEN Token length (signed)
34 (X'22') 2 SMDE_TOKEN_OFF Token data offset (signed)
36 (X'24') 2 SMDE_PNAME_OFF Primary name offset, zero for non-alias SMDES or if library type is a PDS and this is not a program. (signed)
38 (X'26') 2 SMDE_NLST_CNT Number of note list entries that exist at beginning of user data field. Always zero for non-PDS members. (signed)
40 (X'28') 4 - Reserved
44 (X'2C') variable SMDE_SECTIONS Start of entry sections (character)

Table 6 through Table 9 shows the optional SMDE_SECTIONS, or extensions to the SMDE.

Table 6. Directory Entry Name Section
Offset Length or Bit Pattern Name Description
00 (X'00') variable SMDE_NAME Name descriptor (structure)
00 (X'00') 2 SMDE_NAME_LEN Length of entry name (signed)
2 (X'02') variable SMDE_NAME_VAL Entry name (character)
Table 7. Directory Entry Notelist Section (PDS Only)
Offset Length or Bit Pattern Name Description
00 (X'00') variable SMDE_NLST Note list extension (structure)
00 (X'00') 4 SMDE_NLST_ENTRY Note list entries (character)
00 (X'00') 3 SMDE_NLST_RLT Note list record location token (character)
3 (X'03') 1 SMDE_NLST_NUM Number of RLT described by this note list block. If 0 this is not a notelist but a data block. (unsigned)
Table 8. Directory Entry Token Section
Offset Length or Bit Pattern Name Description
00 (X'00') 32 SMDE_TOKEN (structure)
00 (X'00') 4 SMDE_TOKEN_CONNID CONNECT_IDENTIFIER (unsigned)
4 (X'04') 4 SMDE_TOKEN_ITEMNO Item number (unsigned)
08 (X'08') 24 SMDE_TOKEN_FT File token (character)
Table 9. Directory Entry Primary Name Section
Offset Length or Bit Pattern Name Description
00 (X'00') variable SMDE_PNAME Primary name descriptor (structure)
00 (X'00') 2 SMDE_PNAME_LEN Length of primary name (signed)
2 (X'02') variable SMDE_PNAME_VAL Primary name (character)

If the SMDE represents a directory entry for a program (either a load module or a program object) the program's attributes are defined by the PMAR structure. The PMAR is a subfield of the SMDE and its offset is defined by the field SMDE_PMAR_OFF. Table 10 shows the basic PMAR definition. Table 11 and Table 12 show the PMAR extensions for program objects (PMARL) and load modules (PMARR), respectively.

If the SMDE represents a data member of a PDS or a PDSE, the SMDE_USRD_OFF field indicates the offset into the SMDE for the user data of the directory entry.

Table 10. Directory Entry Name Section. Data is always present at offset SMDE_PMAR_OFF in an SMDE.
Offset Length or Bit Pattern Name Description
00 (X'00') 30 PMAR Basic section of program user data (structure)
00 (X'00') 30 PMAR_ENTRY Alternative name for the PMAR section (character)
00 (X'00') 2 PMAR_SLEN Section length (unsigned)
2 (X'02') 1 PMAR_LVL PMAR format level (unsigned)
X'02' PMAR_LVL_VAL Constant to be used with PMAR
X'01' PMAR_PM1_VAL Constant to be used with PMAR
X'02' PMAR_PM2_VAL Constant to be used with PMAR
3 (X'03') 1 PMAR_PLVL Bind processor creating object 1 - E-level linkage editor 2 - F-level linkage editor 3 - (VS1/VS2) linkage editor 4 - XA linkage editor 5 - binder version 1. (unsigned)
X'01' PMAR_PLVL_E_VAL Constant to be used with PMAR_PLVL
X'02' PMAR_PLVL_F_VAL Constant to be used with PMAR_PLVL
X'03' PMAR_PLVL_AOS_VAL Constant to be used with PMAR_PLVL
X'04' PMAR_PLVL_XA_VAL Constant to be used with PMAR_PLVL
X'05' PMAR_PLVL_B1_VAL Constant to be used with PMAR_PLVL
X'06' PMAR_PLVL_B2_VAL Constant to be used with PMAR_PLVL
4 (X'04') 4 PMAR_ATR Attribute bytes (character)
4 (X'04') 1 PMAR_ATR1 First attribute byte. These flags must be at the same offsets as the corresponding flags in PDS2ATR1 declared by macro IHAPDS. (bitstring)
1... .... PMAR_RENT Reenterable
.1.. .... PMAR_REUS Reusable
..1. .... PMAR_OVLY Overlay structure
...1 .... PMAR_TEST Module to be tested - TSO/E TEST
.... 1... PMAR LOAD Only loadable
.... .1.. PMAR_SCTR Scatter format
.... ..1. PMAR_EXEC Executable
.... ...1 PMAR_1BLK Load module contains only one block of text data and has no RLD data.
5 (X'05') 1 PMAR_ATR2 Second attribute byte. These flags must be at the same offsets as the corresponding flags in PDS2ATR2 declared by macro IHAPDS. (bitstring)
1... .... PMAR_FLVL If on, the program cannot be processed by the E level linkage editor. If off, the program can be processed by any level of the linkage editor or the binder.
.1.. .... PMAR_ORGO Linkage editor assigned origin of first block of text is zero.
..x. .... - Reserved
...1 .... PMAR_NRLD Program contains no RLD items
.... 1... PMAR_NREP Module cannot be reprocessed by the linkage editor
.... .1.. PMAR_TSTN Module contains TSO/E TEST symbol records
.... ..x. - Reserved
.... ...1 PMAR REFR Refreshable program
6 (X'06') 1 PMAR_ATR3 Third attribute byte. (bitstring)
6 (X'06') 1 PMAR_FTB1 Alternative name for flags byte. These flags must be at the same offsets as the corresponding flags in PDS2FTB1 declared by macro IHAPDS. (bitstring)
x... .... - Reserved
.1.. .... PMAR_BIG This program requires 16MB or more of virtual storage.
..1. .... PMAR_PAGA Page alignment is required
...1 .... PMAR_XSSI SSI information present
.... 1... PMAR_XAPF APF information present
.... .1.. PMAR_LFMT PMARL follows PMAR.
.... ..xx - Reserved
7 (X'07') 1 PMAR_ATR4 Fourth attribute byte (bitstring)
7 (X'07') 1 PMAR_FTB2 Alternative name for flags byte. These flags must be at the same offsets as the corresponding flags in PDS2FTB2 declared by macro IHAPDS. (bitstring)
1... .... PMAR_ALTP Alternate primary flag. If on for a primary name, indicates primary name was generated by the binder. If on for an alias, indicates the long alias name was specified as the primary name on the bind.
.xx. .... - Reserved
...1 .... PMAR_RMOD RMODE is ANY.
.... xx.. PMAR_AAMD Alias entry point addressing mode. If B'00', AMODE is 24. If B'10', AMODE is 31. If B'11', AMODE is ANY.
.... ..xx PMAR_MAMD Main entry point addressing mode. If B'00' AMODE is 24. If B'10', AMODE is 31. If B'11', AMODE is ANY.
08 (X'08') 1 - Reserved
9 (X'09') 1 PMAR_AC APF authorization code (unsigned)
10 (X'0A') 4 PMAR_STOR Virtual storage required (unsigned)
14 (X'0E') 4 PMAR_EPM Main entry point offset (unsigned)
18 (X'12') 4 PMAR_EPA This entry point offset (unsigned)
22 (X'16') 4 PMAR_SSI SSI information (bitstring)
22 (X'16') 1 PMAR_CHLV Change level of member (unsigned)
23 (X'17') 1 PMAR_SSFB SSI flag byte (bitstring)
24 (X'18') 2 PMAR_MSER Member serial number (Reserved)
26 (X'1A') 4 - Reserved
30 (X'1E') variable PMAR_END End of basic section (character)
Table 11. LSLoader Attributes Unique to Program Objects. If PMAR_LFMT=ON this section follows the PMAR basic section.
Offset Length or Bit Pattern Name Description
00 (X'00') 50 PMARL LSLoader section for program objects (structure)
00 (X'00') 2 PMARL_SLEN Section length (unsigned)
2 (X'02') 48 PMARL_DATA Section data (character)
2 (X'02') 4 PMARL_ATR Attribute bytes (character)
2 (X'02') 1 PMARL_ATR1 Fifth attribute byte (bitstring)
1... .... PMARL_NMIG This program object cannot be converted directly to PDS load module format.
.1.. .... PMARL_PRIM FETCHOPT PRIME option
..1. .... PMARL_PACK FETCHOPT PACK option
...x xxxx - Reserved
3 (X'03') 1 PMARL_ATR2 Sixth attribute byte (bitstring)
1... .... PMARL_CMPR Compressed format module
.1.. .... PMARL_1RMOD 1st segment is RMODE Any, set for PM2-level PO only
..1. .... PMARL_2RMOD 2nd segment is RMODE Any, set for PM2-level PO if there are at least two segments.
...1 .... PMARL_SEGM Loader data includes a Segment Table with >1 loadable entry or a Gas Table, set for PM2-level PO only.
.... 1... PMARL_1ALIN 1st segment is page-aligned, set for PM2-level PO only
.... .1.. PMARL_2ALIN 2nd segment is page-aligned, set for PM2-level PO if there are at least 2 segments.
.... ..1. PMARL_FILL FILL option specified set for PM2-level PO only
.... ...x - Reserved
4 (X'04') 1 PMARL_FILLVAL FILL character value set for PM2-level PO only
5 (X'05') 1 - Reserved
THE FOLLOWING NOTED FIELDS ARE NOT INTENDED FOR USE. INCLUDED HERE FOR INFORMATION PURPOSES ONLY.  
6 (X'06') 4 PMARL_MPGS Total length of program on DASD in pages (unsigned)
10 (X'0A') 40 PMARL_MDAT DASD program descriptors (character)
10 (X'0A') 4 PMARL_TXTL Length of text (unsigned)
14 (X'0E') 4 PMARL_TXTO Offset to text (address)
18 (X'12') 4 PMARL_BDRL Length of binder index (unsigned)
22 (X'16') 4 PMARL_BDRO Offset to binder index (address)
26 (X'1A') 4 PMARL_RDTL Length of PRDT (unsigned)
30 (X'1E') 4 PMARL_RDTO Offset to PRDT (address)
34 (X'22') 4 PMARL_RATL Length of PRAT (unsigned)
38 (X'26') 4 PMARL_RATO Offset to PRAT (address)
42 (X'2A') 4 PMARL_NVSPGS Number of virtual storage pages to contain program object, for PM2-level PO
42 (X'2A') 4 PMARL_LMDL Length of LSLoader data (unsigned) for PM1-level PO
46 (X'2E') 4 PMARL_LMDO Offset to LSLoader data (address)
50 (X'32') 2 PMARL_NSEG Number of loadable segments
52 (X'34') 2 PMARL_NGAS Count of entries in Gas Table
54 (X'36') 4 PMARL_1STOR Virtual storage required for first loadable segment, valid when PMARL_NSEG > 1.
58 (X'3A') 4 PMARL_2STOR Virtual storage required for second loadable segment, valid when PMARL_NSEG > 1.
62 (X'3E') 4 PMARL_2TXTO Offset to second txt segment including gas, valid when PMARL_NSEG > 1.
END INFORMATION ONLY FIELDS.  
66 (X'42') 16 PMARL_TRACE AUDIT trace data
66 (X'42') 4 PMARL_DATE Date saved
70 (X'46') 4 PMARL_TIME Time saved
74 (X'4A') 8 PMARL_USER User or job identification
82 (X'52') variable PMARL_END End of LSLoader section (character)
Table 12. Attributes Unique to Load Modules (PDS only). If PMAR_LFMT=OFF then this section follows the PMAR basic section.
Offset Length or Bit Pattern Name Description
00 (X'00') 23 PMARR Load module (PDS) attributes section (structure)
00 (X'00') 2 PMARR_SLEN Section length (unsigned)
2 (X'02') 21 PMARR_DATA Section data (character)
2 (X'02') 8 PMARR_TTRS TTR fields (character)
2 (X'02') 3 PMARR_TTRT TTR of first block of text (character)
5 (X'05') 1 PMARR_ZERO Zero (character)
6 (X'06') 3 PMARR_TTRN TTR of note list or scatter translation table. Used for modules in scatter load format or overlay structure only. (character)
9 (X'09') 1 PMARR_NL Number of entries in note list for scatter format modules and modules in overlay structure, otherwise zero. (address)
10 (X'0A') 2 PMARR_FTBL Length of first block of text (signed)
12 (X'0C') 3 PMARR_ORG Load module origin if 0 (unsigned)
12 (X'0C') 2 - Reserved
14 (X'0E') 1 PMARR_RLDS Number of RLD/CTL records that follow the first text record
15 (X'F') 8 PMARR_SCAT Scatter load information (character)
15 (X'F') 2 PMARR_SLSZ Scatter list length (unsigned)
17 (X'11') 2 PMARR_TTSZ Translation table length (unsigned)
19 (X'13') 2 PMARR_ESDT ESDID of first text block (character)
21 (X'15') 2 PMARR_ESDC ESDID of EP control section (character)
23 (X'17') variable PMARR_END End of load module attributes (character)
Table 13. Alias in Unformatted Form. Used only as input to the PUT function.
Offset Length or Bit Pattern Name Description
00 (X'00') 7 PMARA PMAR alias entry section (structure)
00 (X'00') 2 PMARA_LEN Section length (unsigned)
2 (X'02') 5 PMARA_DATA Section data (character)
2 (X'02') 4 PMARA_EPA Entry point offset (unsigned)
6 (X'06') 1 PMARA_ATR Attribute bytes (character)
6 (X'06') 1 PMARA_ATR1 First attribute byte (bitstring)
6 (X'06') 1 PMARA_FTB2 Alternative name for flags byte. These flags must be at the same offsets as the corresponding flags in PDS2FTB2 declared by macro IHAPDS. (bitstring)
xxxx .... - Reserved
.... 11.. PMARA_AMD Alias entry addressing mode. If B'00', AMODE is 24. If B'10', AMODE is 31. If B'11', AMODE is ANY.
.... ..xx - Reserved
7 (X'07') variable PMARA_END End of alias entry section (character)