z/OS DFSMS Macro Instructions for Data Sets
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Convert a PMAR to a PDSDE

z/OS DFSMS Macro Instructions for Data Sets
SC23-6852-02

You may use this conversion when converting a directory entry which was obtained from DESERV FUNC=GET, or DESERV FUNC=GET_ALL, into PDSDE format. When invoking this function, the caller supplies the PMAR to be converted and an output area of at least 63 bytes in which the PDSDE will be returned. The input PMAR must include either the PMARR or PMARL extension. You must also specify the FLAGS= parameter that is used to define a byte which indicates processing flags.

The processing flags byte is mapped by the LCNV_FLAGS_DSECT of the IEWLCNV macro. The only processing option defined currently is a bit which indicates whether the input PMAR is for an alias name or not. The PDSDE generated will consist of the indicator byte (PDS2INDC) and the user data field. The fields in the IHAPDS mapping that precede PDS2INDC will not be generated. The length of the PDSDE (which is the length of PDS2INDC, 1 byte, plus the length of the user data) may be returned in a full word field supplied by the caller.

To convert a PMAR for a primary name to a PDSDE, the PMARA parameter should not be specified and the flags parameter should pass a byte of X'00'.

To convert a PMAR for an alias name to a PDSDE, where the PMAR was obtained from DESERV GET or GET=ALL, the PMAR already reflects the attributes for the alias. Therefore, the PMARA parameter should not be specified and the FLAGS parameter should set the LCNV_FLAGS_ALIAS bit to 1.

If this macro is used in the DESERV EXIT routine in response to a DESERV PUT, the input to the exit routine is a single PMAR (for the primary name) and optionally a list of PMARAs (one for each alias name defined). To use this conversion function in this environment to generate a PDSDE for an alias, you must complete the following tasks:
  • Pass the PMAR for the primary name via the PMAR parameter.
  • Pass the PMARA for the alias via the PMARA parameter.
  • Set the LCNV_FLAGS_ALIAS bit and pass this byte via the FLAGS parameter.

To convert PMAR to PDSDE, the format of the IEWLCNVT macro is:

To convert PDSDE to PMAR, the format of the IEWLCNVT macro is:

AMODEREG=register
identifies a register that the macro will use to save and restore the addressing mode of the caller. If the caller is always in 31-bit addressing mode (at the time IEWLCNVT is invoked) you can omit this parameter. If the caller is in 24-bit addressing mode at the time IEWLCNVT is to be issued, you must specify the AMODEREG parameter. Valid registers are 2-12. The register may be enclosed in parentheses, but this is not required.
FUNC=function_name
identifies the function to be performed. The FUNC parameter is not required for MF=L unless other parameters are specified. Valid function_name values are:
PMAR_TO_PDSDE
convert a PMAR to a PDS2 style directory entry.
PDSDE_TO_PMAR
convert the user data of a PDS2 style directory entry (PDSDE) for a load module to a PMAR.
FLAGS=processing_flags
specifies options to be used while processing the PMAR_TO_PDSDE function. Variable processing_flags is a byte of flags. The only defined flag indicates if an alias entry is being processed. The processing flags byte is mapped by LCNV_FLAGS_DSECT in the IEWLCNV macro.
[,MF={S|L|(E,{(1-12)|RX-type address}[,COMPLETE|NOCHECK])}]
first argument — keyword S, L, E or default to S when MF is omitted.

Second argument, if MF=E — registers 1-12 or RX-type address.

Third argument, if MF=E — keyword COMPLETE or NOCHECK or default to COMPLETE, if omitted.

The MF (macro format) keyword specifies how the macro should generate its code. Invalid keyword checking, based on function specified, is done for all macro formats.

The standard format (S) will check all required keywords and invalid keywords. This form generates a complete in-line expansion of the parameter list. Control is then transferred to the convert routine. The standard form is for programs that are not reenterable.

L specifies the list form of the macro. This form generates a remote parameter list. Registers are invalid arguments for MF=L format since executable code generation does not occur, only adcons are generated. Invalid keyword checking is done.

E specifies the execute form of the macro. This form updates the remote parameter list (MF=L) and transfers control to the convert routine. A second parameter is required and a third parameter is optional.

The second parameter for MF=E format is the address of the parameter list created by the MF=L IEWLCNVT invocation. This parameter must be specified as either a RX type of address (possibly the label from MF=L macro invocation) or a register enclosed in parentheses.

The third parameter, COMPLETE or NOCHECK, is optional. Default is COMPLETE. This argument specifies whether required keyword checking will be done.

If NOCHECK is coded, then none, some, or all allowable keywords may be specified. It is assumed that any missing keywords are coded on the MF=L macro invocation. If some keywords are coded, the FUNC keyword is also required to enable keyword validation.

If COMPLETE is coded or allowed to default, the plist will be zeroed out (except for the plist header). All required keywords must be specified.

OUTLEN=output_length
specifies a fullword (4-byte) field to contain the length of the generated directory data. Variable output_length is an output parameter on the PMAR_TO_PDSDE and PDSDE_TO_PMAR functions. OUTLEN must not be specified on MF=L.
PDS2INDC=pdsde_indicator_byte—RX-type address or (2-12) (standard form)
specifies the indicator byte preceding the user data field of a PDS directory entry. Variable indicator_byte is an input parameter on the PDSDE_TO_PMAR function and an output parameter on the PMAR_TO_PDSDE function.
PMAR=pmar_storage—RX-type address or (2-12) (standard form)
specifies an area mapped by the PMAR structure of macro IEWPMAR. Variable primary_process_sar_data is the PMAR structure used for input on the PMAR_TO_PDSDE function and output on the PDSDE_TO_PMAR function.
PMARA=pmara_storage—RX-type address or (2-12) (standard form)
specifies an area mapped by the PMARA structure of macro IEWPMAR. Variable alias_process_sar_data is the PMARA structure used as input by the PMAR_TO_PDSDE function.
PNAME=primary_name—RX-type address or (2-12) (standard form)
specifies the area for an eight byte primary name. This is an input field on the PMAR_TO_PDSDE function and must be passed if the processing flags indicate that an alias is being processed.
RETCODE=retcode—RX-type address or (2-12) or (15)
specifies the name of the variable where the macro is to store the return code associated with the result of the function invocation. Variable return_code is a fullword value but is optional. If RETCODE is not specified, the return code is in register 15. The RETCODE parameter can not be specified on an MF=L invocation.
RSNCODE=rsncode—RX-type address or (2-12) or (0)
specifies the name of the variable where the macro is to store the reason code associated with the result of the function invocation. Variable reason_code is a fullword value but is optional. If RSNCODE is not specified, the return code is in register 0. The RSNCODE parameter can not be specified on an MF=L invocation.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014