z/OS MVS Programming: Authorized Assembler Services Reference ALE-DYN
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Return and reason codes

z/OS MVS Programming: Authorized Assembler Services Reference ALE-DYN
SA23-1372-00

When the CSVDYNL macro returns control to your program:
  • GPR 15 (and retcode, when you code RETCODE) contains a return code.
  • When the value in GPR 15 is not zero, GPR 0 (and rsncode, when you code RSNCODE) contains a reason code.

Macro CSVDLAA provides equate symbols for the return and reason codes.

The following table identifies the hexadecimal return and reason codes and the equate symbol associated with each reason code. IBM® support personnel may request the entire reason code, including the xxxx value.

Table 1. Return and Reason Codes for the CSVDYNL Macro
Return Code Reason Code Equate Symbol Meaning and Action
0 Equate Symbol: CsvdynlRc_OK
Meaning: CSVDYNL request successful.
DEFINE
Meaning: LNKLST set defined.

Action: None required.

ADD
Meaning: Data set added to LNKLST set.

Action: None required.

DELETE
Meaning: Data set removed from LNKLST set.

Action: None required.

UNDEFINE
Meaning: LNKLST set removed.

Action: None required.

TEST
Meaning: Routine was located using LNKLST set.

Action: None required.

LIST
Meaning: All data returned.

Action: None required.

UPDATE
Meaning: Specified job's LNKLST has been updated.

Action: None required.

4 Equate Symbol: CsvdynlRc_Warn

Meaning: Warning

Action: Refer to the action provided with the specific reason code.

4 xxxx0402 Equate Symbol: CsvdynlRsnRoutineNotFound

Meaning: For TEST request, routine was not found

Action: Change the LNKLST set to contain the data set in which the requested routine is located.

4 xxxx0403 Equate Symbol: CsvdynlRsnNotAllDataReturned

Meaning: For LIST request, not all data was returned because the answer area is not big enough. Answer area field DLAAHTLEN indicates how much space is currently required.

Action: Allocate a larger area and request the function again.

4 xxxx0406 Equate Symbol: CsvdynlRsnNoMatchingJob

Meaning: For UPDATE request, no matching job was found.

Action: Make sure that you specified the proper jobname and ASID parameters.

8 Equate Symbol: CsvdynlRc_InvParm

Meaning: CSVDYNL request specifies invalid parameters.

Action: Refer to the action provided with the specific reason code.

8 xxxx0801 Equate Symbol: CsvdynlRsnBadParmlist

Meaning: Unable to access parameter list.

Action: Check for possible storage overlay.

8 xxxx0802 Equate Symbol: CsvdynlRsnSrbMode

Meaning: SRB mode.

Action: Avoid requesting this function in SRB mode.

8 xxxx0803 Equate Symbol: CsvdynlRsnNotEnabled

Meaning: Not Enabled.

Action: Avoid requesting this function while not enabled.

8 xxxx0804 Equate Symbol: CsvdynlRsnNotAuthorized

Meaning: Not authorized.

Action: Request this function only when you have the proper authority.

8 xxxx0805 Equate Symbol: CsvdynlRsnHomeNotPrimary

Meaning: Home address space different than primary address space.

Action: Avoid requesting this function in this environment.

8 xxxx0806 Equate Symbol: CsvdynlRsnBadAnsareaALET

Meaning: Bad answer area ALET.

Action: Make sure that the ALET associated with the answer area is valid. The access register might not have been set up correctly.

8 xxxx0807 Equate Symbol: CsvdynlRsnBadAnsarea

Meaning: Error accessing answer area.

Action: Make sure that the provided answer area is valid.

8 xxxx0808 Equate Symbol: CsvdynlRsnBadAnslen

Meaning: LIST - AnsLen is less than size of the header area.

Action: Provide a larger answer area (as indicated by the ANSLEN parameter).

8 xxxx0809 Equate Symbol: CsvdynlRsnBadRequestType

Meaning: Request type is not valid.

Action: Check for possible storage overlay of the parameter list.

8 xxxx080A Equate Symbol: CsvdynlRsnBadEstaex

Meaning: Unable to establish ESTAEX. "xxxx" contains ESTAE(X) return code.

Action: Refer to documentation for ESTAEX return code "xxxx".

8 xxxx080B Equate Symbol: CsvdynlRsnReservedNot0

Meaning: Reserved field not 0.

Action: Check for possible storage overlay of the parameter list.

8 xxxx080D Equate Symbol: CsvdynlRsnBadParmlistALET

Meaning: Bad parmlist ALET.

Action: Make sure that the ALET of the parameter list is valid. The access register might not have been set up correctly.

8 xxxx080E Equate Symbol: CsvdynlRsnBadVersion

Meaning: Bad version number.

Action: Check for possible storage overlay of the parameter list.

8 xxxx080F Equate Symbol: CsvdynlRsnLocked

Meaning: Locked

Action: Avoid requesting this function in this environment.

8 xxxx0815 Equate Symbol: CsvdynlRsnBadDsnameArea

Meaning: Unable to access data set name.

Action: Make sure that the DSNAME area is valid.

8 xxxx0816 Equate Symbol: CsvdynlRsnBadAfterDsnameArea

Meaning: Unable to access AFTERDSNAME area.

Action: Make sure that the AFTERDSNAME area is valid.

8 xxxx0818 Equate Symbol: CsvdynlRsnBadOpen

Meaning: Unable to open specified data set. The Probdsname area is filled in with the name of the data set.

Action: Make sure that you specified the proper data set and that it is partitioned and can be located by the system.

8 xxxx0819 Equate Symbol: CsvdynlRsnLnklstSetNotFound

Meaning: LNKLST set name not found (for ADD, DELETE, UNDEFINE)

Action: Make sure that you specified the proper LNKLST set name.

8 xxxx081C Equate Symbol: CsvdynlRsnDatasetNotFound

Meaning: For Delete request, data set was not associated with the LNKLST set.

Action: Make sure that you specified the proper data set and LNKLST set names.

8 xxxx0820 Equate Symbol: CsvdynlRsnBadDsnameALET

Meaning: Bad dsname ALET.

Action: Make sure that the ALET of the DSNAME area is valid. The access register might not have been set up correctly.

8 xxxx0821 Equate Symbol: CsvdynlRsnBadAfterDsnameALET

Meaning: Bad afterdsname ALET.

Action: Make sure that the ALET of the AFTERDSNAME area is valid. The access register might not have been set up correctly.

8 xxxx0822 Equate Symbol: CsvdynlRsnBadLnklstName

Meaning: Bad lnklstname - first character is 0 or blank.

Action: Provide a valid LNKLST set name.

8 xxxx0823 Equate Symbol: CsvdynlRsnBadDsname

Meaning: Bad DSNAME - first character is 0 or blank.

Action: Provide a valid data set name.

8 xxxx0824 Equate Symbol: CsvdynlRsnBadAfterDsname

Meaning: Bad AFTERDSNAME - first character is 0 or blank.

Action: Provide a valid data set name.

8 xxxx0829 Equate Symbol: CsvdynlRsnBadAlloc

Meaning: Unable to allocate data set. The Probdsname area is filled in with the name of the data set.

Action: Make sure that you specified the proper data set and that it is partitioned and can be located by the system.

8 xxxx082B Equate Symbol: CsvdynlRsnFunctionNotAvailableError

Meaning: Dynamic allocation is not available or request issued during NIP.

Action: Avoid requesting the function in an environment where dynamic allocation is not available. Avoid requesting the function until the IPL completes.

8 xxxx0831 Equate Symbol: CsvdynlRsnReservedName

Meaning: Reserved name used.

Action: Avoid specifying reserved names "CURRENT" and "IPL" when defining, adding to, deleting from, or undefining a LNKLST set.

8 xxxx0832 Equate Symbol: CsvdynlRsnNoJobASID

Meaning: No jobname or ASID

Action: Specify a jobname with the first character being non-zero and non-blank or specify a non-zero ASID for UPDATE.

8 xxxx0833 Equate Symbol: CsvdynlRsnAddSysdsn

Meaning: Attempt to ADD after system data set.

Action: Do not specify the LINKLIB, MIGLIB, CSSLIB, SIEALNKE, or SIEAMIGE data set via the AFTERDSNAME parameter. Specify POS=TOP if you want your data set to be in the first available position.

8 xxxx0834 Equate Symbol: CsvdynlRsnDeleteSysdsn

Meaning: Attempt to DELETE system data set.

Action: Do not specify the LINKLIB, MIGLIB, CSSLIB, SIEALNKE, or SIEAMIGE data set on REQUEST=DELETE. You cannot remove those data sets from the LNKLST.

8 xxxx0835 Equate Symbol: CsvdynlRsnNoCopyFrom

Meaning: COPYFROM LNKLST set does not exist.

Action: Be sure that you specified the proper LNKLST set name.

8 xxxx0836 Equate Symbol: CsvdynlRsnAlreadyExists

Meaning: For DEFINE request, LNKLST set already exists. For ADD request, data set was already associated with this LNKLST set.

Action: Make sure that you specified the proper data set and LNKLST set names.

8 xxxx0837 Equate Symbol: CsvdynlRsnNoModname

Meaning: For TEST request, no module name was provided.

Action: Make sure that you specified a module name that began other than with a blank or hexadecimal zeroes.

8 xxxx0839 Equate Symbol: CsvdynlRsnConcatFull

Meaning: For ADD request, concatenation is full. The Probdsname area is filled in with the name of the data set at which the concatenation became full.

Action: Remove data sets from the LNKLST set, or change the data sets to be PDSEs.

8 xxxx083A Equate Symbol: CsvdynlRsnBadProbDsnameArea

Meaning: For ADD or TEST request, unable to store into the PROBDSNAME area.

Action: Make sure that the PROBDSNAME area is valid.

8 xxxx083B Equate Symbol: CsvdynlRsnBadProbDsnameALET

Meaning: For ADD or TEST request, ALET of ProbDsname is not acceptable.

Action: Make sure that the ALET of the PROBDSNAME area is valid. The access register might not have been set up correctly.

8 xxxx083C Equate Symbol: CsvdynlRsnNotPartitioned

Meaning: For ADD or TEST request, data set is not partitioned. The Probdsname area is filled in with the name of the data set.

Action: Make sure that you specified the proper data set.

8 xxxx083D Equate Symbol: CsvdynlRsnBadVolid

Meaning: For ADD or TEST request, the provided volume ID does not match the volume ID found when the data set was looked up in the catalog. The Probdsname area is filled in with the name of the data set.

Action: Make sure that you specified the proper volume ID. Make sure that the data set name in the catalog is cataloged to that volume. If the data set has been moved from one volume to another, then remove the data set from the LNKLST set, and add it back if the current volume is correct.

8 xxxx083E Equate Symbol: CsvdynlRsnMultiVolume

Meaning: Multi-Volume data set.

Action: Avoid using a "multi-volume" data set within the LNKLST.

8 xxxx083F Equate Symbol: CsvdynlRsnMissingSysdsn

Meaning: The LNKLST set being tested does not contain at least one of SYS1.LINKLIB, SYS1.MIGLIB, and SYS1.CSSLIB. This should only occur if you used the SYSLIB statement of PROGxx.

Action: Check with the system programmer.

8 xxxx0840 Equate Symbol: CsvdynlRsnUndefineCurrent

Meaning: Cannot undefine the current LNKLST set.

Action: Make sure that you specified the proper LNKLST set.

8 xxxx0841 Equate Symbol: CsvdynlRsnBadFoundDsnameArea

Meaning: For TEST request, unable to store into the FOUNDDSNAME area.

Action: Make sure that the FOUNDDSNAME area is valid.

8 xxxx0842 Equate Symbol: CsvdynlRsnBadFoundDsnameALET

Meaning: For TEST request, ALET of FOUNDDSNAME is not acceptable.

Action: Make sure that the ALET of the FOUNDDSNAME area is valid. The access register might not have been set up correctly.

8 xxxx0843 Equate Symbol: CsvdynlRsnBadSMS

Meaning: For ADD or TEST request, the SMS status of the data set has changed. Either it is now SMS-managed but had not been, or is not SMS-managed but had been. The Probdsname area is filled in with the name of the data set.

Action: Remove the data set from the LNKLST set. Add it back if the current SMS status of the data set is correct.

C Equate Symbol: CsvdynlRc_Env

Meaning: Environmental error

Action: Refer to the action provided with the specific reason code.

C xxxx0C01 Equate Symbol: CsvdynlRsnFunctionNotAvailable

Meaning: Meaning: Function is not available.

Action: Avoid requesting this function until system initialization is complete.

C xxxx0C02 Equate Symbol: CsvdynlRsnNoStorage

Meaning: No storage is available to complete the request.

Action: Contact your system programmer. There is a common storage shortage.

C xxxx0C03 Equate Symbol: CsvdynlRsnChangeInUse

Meaning: Cannot update an in-use LNKLST set.

Action: Make sure that you specified the proper LNKLST set. You will have to wait if you need to modify a LNKLST set that is in use until it is no longer the active set. You can alternately create a new LNKLST set, initialized from the active one. You can use the UPDATE request to update users of prior LNKLST sets to be using the current LNKLST set, thus letting you update that prior set.

C xxxx0C04 Equate Symbol: CsvdynlRsnUndefineUsers

Meaning: Cannot undefine a LNKLST set that is in use.

Action: Make sure that you specified the proper LNKLST set. You can use DISPLAY PROG,LINK to display the current users of the LNKLST set. You can consider using CSVDYNEX REQUEST=UPDATE to update the current users to the current LNKLST set, but refer to that operation for appropriate caveats.

C xxxx0C05 Equate Symbol: CsvdynlRsnActivateNoENF

Meaning: Could not issue ENF signal for ACTIVATE request.

Action: Contact your system programmer.

C xxxx0C06 Equate Symbol: CsvdynlRsnUndefineLLA

Meaning: Cannot undefine a LNKLST set that LLA is using to manage the LNKLST.

Action: Make sure that you specified the proper LNKLST set. You can use DISPLAY PROG,LINK to display the current users of the LNKLST set. You can consider using CSVDYNEX REQUEST=UPDATE to update the current users to the current LNKLST set, but refer to that operation for appropriate caveats.

10 Equate Symbol: CsvdynlRC_CompError

Meaning: Unexpected failure.

Action: Refer to the action provided with the specific reason code.

10 xxxx1001 Equate Symbol: CsvdynlRsnCompError

Meaning: Unexpected failure. The state of the request is unpredictable.

Action: Contact your system programmer.

Examples

Example 1:

Operation

  1. Define a LNKLST set.
  2. Add data sets to that LNKLST set.
  3. Delete a data set from the LNKLST set.
  4. Test the LNKLST set for the presence of a particular module.
  5. Undefine the LNKLST set.
The code is as follows.
*************************************************************
* Define LNKLST set MYLNKLST_SET.                           *
* Copy it from the current LNKLST set.                      *
*************************************************************
         CSVDYNL REQUEST=DEFINE,LNKLSTNAME=LLS,              *
               COPYFROM==CL16'CURRENT',                      *
               RETCODE=LRETCODE,RSNCODE=LRSNCODE,            *
               MF=(E,DYNLL)
*
* Place code to check return/reason codes here
*
***********************************************************************
* Add data set SYS1.MYDS1 at the top of the user-specified            *
* data sets (but after the system-defined data sets                   *
* SYS1.LINKLIB, SYS1.MIGLIB, SYS1.CSSLIB,SYS1.SIEALNKE, SYS1.SIEAMIGE)*
***********************************************************************
         CSVDYNL REQUEST=ADD,LNKLSTNAME=LLS,                 *
               DSNAME=LDS1,POS=TOP,                          *
               RETCODE=LRETCODE,RSNCODE=LRSNCODE,            *
               MF=(E,DYNLL)                                  
*
* Place code to check return/reason codes here
*
*************************************************************
* Add data set SYS1.MYDS2 at the bottom of the              *
* user-specified data sets                                  *
*************************************************************
         CSVDYNL REQUEST=ADD,LNKLSTNAME=LLS,                 *
               DSNAME=LDS2,POS=BOTTOM,                       *
               RETCODE=LRETCODE,RSNCODE=LRSNCODE,            *
               MF=(E,DYNLL)
*
* Place code to check return/reason codes here
*
*************************************************************
* Add data set SYS1.MYDS3 after SYS1.MYDS1                  *
*************************************************************
         CSVDYNL REQUEST=ADD,LNKLSTNAME=LLS,                 *
               DSNAME=LDS3,                                  *
               POS=AFTER,AFTERDSNAME=LDS1,                   *
               RETCODE=LRETCODE,RSNCODE=LRSNCODE,            *
               MF=(E,DYNLL)
*
* Place code to check return/reason codes here
*
*************************************************************
* Delete data set SYS1.DONTWANT from the LNKLST set         *
*************************************************************
         CSVDYNL REQUEST=DELETE,LNKLSTNAME=LLS,              *
               DSNAME=LDONTWANT,                             *
               RETCODE=LRETCODE,RSNCODE=LRSNCODE,            *
               MF=(E,DYNLL)
*
* Place code to check return/reason codes here
*
*************************************************************
* Test the LNKLST set to see if routine MYMODULE can be     *
* found                                                     *
*************************************************************
         CSVDYNL REQUEST=TEST,LNKLSTNAME=LLS,                *
               MODNAME=LMOD,                                 *
               FOUNDDSNAME=LDSF,                             *
               RETCODE=LRETCODE,RSNCODE=LRSNCODE,            *
               MF=(E,DYNLL)
*
* Place code to check return/reason codes here.
* Note that when the return code is 0, the name of the data
* set which the routine was found is placed into LDSF
*
*************************************************************
* Undefine the LNKLST set                                   *
*************************************************************
         CSVDYNL REQUEST=UNDEFINE,LNKLSTNAME=LLS,            *
               RETCODE=LRETCODE,RSNCODE=LRSNCODE,            *
               MF=(E,DYNLL)
*
* Place code to check return/reason codes here.
*
LLS      DC    CL16'MYLNKLST_SET'
LMOD     DC    CL8'MYMODULE'
LDS1     DC    CL44'SYS1.MYDS1'
LDS2     DC    CL44'SYS1.MYDS2'
LDS3     DC    CL44'SYS1.MYDS3'
LDONTWANT DC   CL44'SYS1.DONTWANT'
         CSVDLAA               Return code information
DYNAREA  DSECT
LRETCODE DS    F
LRSNCODE DS    F
LDSF     DS    CL44
         CSVDYNL MF=(L,DYNLL)

Example 2

Operation
  • Update the address space to use the current LNKLST set.
The code is as follows.
*************************************************************
* Update this address space to be using the current LNKLST  *
* set.  This would generally be done in response to         *
* receiving an ENF signal indicating that a new LNKLST set  *
* had been made available, and would be done at a time when *
* the program had reason to believe that the address space  *
* was not in the middle of fetching (e.g., LINK, LOAD) a    *
* routine.                                                  *
*************************************************************
         CSVDYNL REQUEST=UPDATE,                             *
               WHICHAS=HOME,                                 *
               RETCODE=LRETCODE,RSNCODE=LRSNCODE,            *
               MF=(E,DYNLL)
*
* Place code to check return/reason codes here
*
         CSVDLAA               Return code information
DYNAREA  DSECT
LRETCODE DS    F
LRSNCODE DS    F
         CSVDYNL MF=(L,DYNLL)

Example 3

Operation
  • Retrieve information about all of the LNKLST sets.
The code is as follows.
         L     2,=AL4(INITDLAA)  Initial answer area size
         ST    2,SIZEDLAA      Save it
         GETMAIN RU,LV=(2)     Allocate the answer area
         ST    1,DLAA@         Save address of answer area
LAB1     DS    0H
         L     4,DLAA@         Address of answer area
         CSVDYNL REQUEST=LIST,ANSAREA=(4),ANSLEN=SIZEDLAA,   *
               RETCODE=LRETCODE,RSNCODE=LRSNCODE,            *
               MF=(E,DYNLL)
         CLC   LRETCODE(4),=AL4(CSVDYNLRC_WARN) Warning?
         BNE   LAB2            No, request OK or error
*                              Yes, not enough room
         LR    3,2             Save current size
         L     2,DLAAHTLEN-DLAAHDR(4) Get required size
         FREEMAIN RU,A=(4),LV=(3) Release old area
         ST    2,SIZEDLAA      Save it
         GETMAIN RU,LV=(2)     Allocate new area
         ST    1,DLAA@         Save address of answer area
         B     LAB1            Retry List operation
LAB2     DS    0H
         CLC   LRETCODE(4),=AL4(CSVDYNLRC_OK) Success?
         BNE   LAB3            No, error
*************************************************************
*                                                           *
* Process information in answer area when RC=0              *
*                                                           *
*************************************************************
         USING DLAAHDR,4       DLAAHDR DSECT
         L     5,DLAAH#LS      Find how many DLAALS entries
         LTR   5,5             Are there any entries
         BZ    LAB4            No, join common path
         L     4,DLAAHFIRSTLS@ Get first entry
         USING DLAALS,4        DLAALS DSECT
LAB5     DS    0H              DLAALS loop
*
* Put code to process information contained in DLAALS here
*
         LH    7,DLAALS#DS     Get number of DLAADS entries
         N     7,CLEAR0TO15    Clear bits 0 to 15
*                              Are there any data sets
         BZ    LAB7            No, move to end of LS loop
         L     6,DLAALSFIRSTDS@ Get first DLAADS
LAB6     DS    0H              DLAADS loop
         USING DLAADS,6        DLAADS DSECT
*
* Put code to process information contained in DLAADS here
*
         L     6,DLAADSNEXT@   Get next DLAADS
         DROP  6               DLAADS DSECT
         BCT   7,LAB6          Continue while there are more
LAB7     DS    0H              Bottom of DLAALS loop
         L     4,DLAALSNEXT@   Get next DLAALS
         BCT   5,LAB5          Continue while there are more
         B     LAB4            Skip error case
LAB3     DS    0H              Error return
*
*  Process error case
*
LAB4     DS    0H              Common path
         L     2,SIZEDLAA      Get size of area
         L     4,DLAA@         Get address of area
         FREEMAIN RU,A=(4),LV=(2) Release area
         ...
CLEAR0TO15 DC  A(X'0000FFFF')  Mask to clear bits 0-15
         CSVDLAA               LIST answer area, return codes
DSNLEN   EQU   50*DLAADS_LEN   Room for 50 data sets' info
LSLEN    EQU   3*DLAALS_LEN    Room for 3 LNKLST sets' info
INITDLAA EQU   DLAAHDR_LEN+DSNLEN+LSLEN  Initial ansarea size
DYNAREA  DSECT
DLAA@    DS    A               Address of answer area
SIZEDLAA DS    F               Size of answer area
TEMPSIZE DS    F               Temporary
LRETCODE DS    F               Return code
LRSNCODE DS    F               Reason code
         CSVDYNL MF=(L,DYNLL)

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014