PDSE directory entry returned by DESERV (SMDE data area)

This section describes the format of a PDSE entry returned by the DESERV macro. This is the SMDE data area, which is mapped by the IGWSMDE mapping macro. The formats shown here are specific to PDSE program libraries.

The system managed directory entry (SMDE) can represent either a program object in a PDSE or a load module in a PDS. The SMDE also represents both primary (member) entries and aliases. The SMDE consists of several sections that appear depending on the type of directory entry being provided:

The basic SMDE format is shown in Table 1.

Table 1. 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_LIBTYPE_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
..1. .... SMDE_SYSTEM_DCB DCB opened by the system, so DESERV returned connect tokens
  ...x xxxx * Reserved
18 (X'12') 2 * Reserved
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 z/OS UNIX System Services (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 nonalias 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') 2 SMDE_C370_ATTR_OFF Offset to C370LIB attribute word
40 (X'2A') 2 * Reserved
44 (X'2C') variable SMDE_SECTIONS Start of entry sections (character)

Table 2 through Table 7 shows the optional SMDE_SECTIONS, or extensions to the SMDE.

Table 2. 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 3. 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 4. Directory entry token section (normal use)
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 5. Directory entry token section (system DCB)
Offset Length or Bit Pattern Name Description
00 (X'00') 16 * Reserved
16 (X'10') 8 SMDE_TOKEN_BMF_CT BMF connect token
24 (X'18') 8 SMDE_TOKEN_CDM_CT JCDM connect token
Table 6. z/OS UNIX System Services file descriptor section
Offset Length or Bit Pattern Name Description
00 (X'00') 4 SMDE_FD (structure)
00 (X'00') 4 SMDE_FD_TOKEN File descriptor (unsigned)
Table 7. 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. For the PMAR structure and mapping, see IEWPMAR in z/OS® MVS™ Data Areas in z/OS Internet library.

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.