Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

SECURE exits (025/026)

&pagelevel(3)&pagelevel

The application of the SECURE-RESOURCE-ALLOCATION command can be monitored by systems support at two exit points:

  • The request exit routine can reject the SECURE request.

  • After the SECURE request is completed, the return exit routine can lead to suitable actions being logged or registered.

Return exit (025)

The following information is passed to the exit routine:

R1 = A(NKSEPAR parameter area)
R12 = A(P2 program manager)
R13 = A(save area of calling component)
R14 = A(indirect return)
R15 = A(exit routine)

Notes

  • The contents of registers 12, 13 and 14 must not be destroyed by the exit routine.

  • The NKSHMSG field of the NKSEPAR work area contains:

    • the message number (_NKSxxxx) with which the SECURE-RESOURCE-ALLOCATION command was rejected by the command processor

    • XL8’00’ for successful command processing.

  • The NKSHPTR field of the NKSEPAR work area contains:

    • a pointer to the erroneous element of the NKSEPAR data list or, if the erroneous element cannot be determined easily, A(0)

    • A(0) for successful command processing.

Request exit (026)

The register values are supplied in the same way as for the return exit.

The return code for the calling system component is passed in the NKSHEXR field of the NKSEPAR parameter area.

NKSHEXRC=X'00'

/SECURE-RESOURCE-ALLOCATION was successful.

NKSHEXRC=X'04'

/SECURE-RESOURCE-ALLOCATION was rejected by the exit routine.

Notes

  • The contents of registers 12, 13 and 14 must not be destroyed by the exit routine.

  • If the SECURE request is rejected by the exit routine, the following message is displayed:

    %

    NKS0062 SECURE REQUEST REJECTED BY THE SYSTEM ADMINISTRATOR.

    REASON: (&00)

    One possible reason for the rejection could be that more than three devices of type 3590 are to be reserved.

  • If the SECURE-RESOURCE-ALLOCATION command is rejected by the exit routine (NKSHEXRC = X'04'), the NKSHPTR field of the NKSEPAR work area can be supplied with the start address of the errored element in the NKSEPAR data list. The user then receives further information via message NKS0062 (see above).

DSECT

A DSECT for NKSEPAR (the address is transferred in register 1) can be generated with the NKSEPAR macro:

         NKSEPAR
         MFCHK DNAME=KSHEAD,MF=D,MACID=KSH,ALIGN=F,PREFIX=N,        200C
               DMACID=KSH                                           200
NKSHEAD  DSECT ,
               *,##### PREFIX=N, MACID=KSH #####
**********************************************************
**     SYSTEM-EXIT FOR SECURE : HEADER DESCRIPTION      **
**********************************************************
*--                           1 SECURE_EXIT_HEADER,
NKSHEXRT DS    0F               2 EXIT_RETURN_INFO                  200
         DS    XL3                FILLER                            200
NKSHEXRC DS    X                  EXIT_RETURN_CODE                  200
NKSHEXOK EQU   X'00'              SUCCESS                           200
NKSHEXSR EQU   X'04'              SEC_RES REJECTED                  200
NKSHMSG  DS    XL8              2 RETURN_EXIT_MSG_IDENTIFIER
*--                               (SEC_SUCCESS = XL8'00',
*--                                SEC_NO_SUCCESS = ' NKS....'),
NKSHPTR  DS    A                2 SECURE_EXIT_ERROR_ELEMENT
*--                               (DEFINED = A(BEGIN_OF_ERROR_ELEM,
*--                                NOT_DEFINED = A(0));
*--                             2 POINTERS_AND_COUNTERS_OF_ELEMENTS
*--                               (UNDEFINED=POINTER_AND_COUNTER_
*--                                                 _ARE_SET_TO_ZERO)
NKSHFILE DS    A                  3 FILE_LIST_POINTER,
NKSHFIL# DS    H                  3 FILE_ELEM_COUNTER,
NKSHVOL  DS    A                  3 VOLUME_LIST_POINTER,
NKSHVOL# DS    H                  3 VOLUME_ELEM_COUNTER,
NKSHDEV  DS    A                  3 DEVICE_LIST_POINTER,
NKSHDEV# DS    H                  3 DEVICE_ELEM_COUNTER,
NKSHUNIT DS    A                  3 UNIT_LIST_POINTER,
NKSHUNI# DS    H                  3 UNIT_ELEM_COUNTER,
NKSHDEVL DS    A                  3 DEVICE_AT_LOCATION_LIST_POINTER 102
NKSHDE#L DS    H                  3 DEVICE_AT_LOCATION_ELEM_COUNTER 102
         DS    0F
****       ELEMENT_DESCRIPTION SEE BELOW           ****
NKSHLEN  EQU   *-NKSHEXRT       LENGTH_OF_HEADER;
         SPACE 2
         MFCHK DNAME=KSELEM,MF=D,MACID=KSE,ALIGN=F,PREFIX=N,        200C
               DMACID=KSE                                           200
NKSELEM  DSECT ,
               *,##### PREFIX=N, MACID=KSE #####
**********************************************************
**     SYSTEM-EXIT FOR SECURE : ELEMENT DESCRIPTION     **
**********************************************************
*--                           1 SECURE_EXIT_ELEMENTS ALIGN FW,
NKSETYP  DS    XL1              2 TYPE_OF_ELEMENT SET
NKSEFILE EQU   X'01'              (FILE   = 1,
NKSEVOL  EQU   X'02'               VOLUME = 2,
NKSEDEV  EQU   X'03'               DEVICE = 3,
NKSEUNIT EQU   X'04'               UNIT   = 4,
NKSEDEVL EQU   X'05'               DEVICE AT LOCATION = 5),         102
         SPACE 1
NKSEDESC DS    0C               2 ELEMENTS_DESCRIPTION,
*** LAYOUT FOR FILE ELEMENT ***   3 FILE_ELEMENT,
NKSEFNAM DS    CL54                 4 FILE_NAME,
NKSEFTYP DS    XL1                  4 FILE_DEVICE_TYPE SET
NKSEFTDI EQU   X'01'                  (DEVICE_TYPE_DISK = 1,
NKSEFTTA EQU   X'02'                   DEVICE_TYPE_TAPE = 2),
NKSEFRES DS    XL1                  4 FILE_RESERVATION_TYPE SET
NKSEFRSH EQU   X'00'                  (SHAREABLE = 0,
NKSEFREX EQU   X'01'                   EXCLUSIVE = 1),
NKSEFACC DS    XL1                  4 FILE_ACCESS_IF_TAPE SET
NKSEFARD EQU   X'00'                  (READ  = 0,
NKSEFAWR EQU   X'01'                   WRITE = 1),
*
NKSEFLEN EQU   *-NKSETYP          LENGTH_OF_ONE_FILE_ELEMENT
         SPACE 2
         ORG   NKSEDESC
         SPACE 1
*** LAYOUT FOR VOLUME ELEMENT *** 3 VOLUME_ELEMENT DEFINED FILE_ELEMENT,
NKSEVSN  DS    CL6                  4 VOLUME_SERIAL_NUMBER,
NKSEVDT  DS    XL2                  4 VOLUME_DEVICE_TYPE_CODE,
NKSEVTYP DS    XL1                  4 VOLUME_DEVICE_TYPE SET
NKSEVTDI EQU   X'01'                  (DEVICE_TYPE_DISK = 1,
NKSEVTTA EQU   X'02'                   DEVICE_TYPE_TAPE = 2),
NKSEVRES DS    XL1                  4 VOLUME_RESERVATION_TYPE SET
NKSEVRSH EQU   X'00'                  (SHAREABLE = 0,
NKSEVREX EQU   X'01'                   EXCLUSIVE = 1),
NKSEVACC DS    XL1                  4 VOLUME_ACCESS_IF_TAPE SET
NKSEVARD EQU   X'00'                  (READ  = 0,
NKSEVAWR EQU   X'01'                   WRITE = 1),
*
NKSEVLEN EQU   *-NKSETYP          LENGTH_OF_ONE_VOLUME_ELEMENT
         SPACE 2
         ORG   NKSEDESC
         SPACE 1
*** LAYOUT FOR DEVICE ELEMENT *** 3 DEVICE_ELEMENT DEFINED FILE_ELEMENT,
NKSEDTC  DS    XL2                  4 DEVICE_TYPE_CODE,
NKSEDEV# DS    H                    4 NUMBER_OF_DEVICES,
*
NKSEDLEN EQU   *-NKSETYP          LENGTH_OF_ONE_DEVICE_ELEMENT
         SPACE 2
         ORG   NKSEDESC
         SPACE 1
*** LAYOUT FOR UNIT ELEMENT ***   3 UNIT_ELEMENT DEFINED FILE_ELEMENT,
NKSEUMN  DS    CL4                  4 UNIT_MNEMONIC,                MNE
*
NKSEULEN EQU   *-NKSETYP          LENGTH_OF_ONE_UNIT_ELEMENT
         SPACE 2
         ORG   NKSEDESC                                             102
         SPACE 1                                                    102
*** LAYOUT FOR DEVICE_AT_LOCATION ELEMENT ***                       102
NKSEDTCL DS    XL2                4 TYPE-CODE OF DEVICE_AT_LOCATION 102
NKSEDE#L DS    H                  4 NUMBER OF DEVICE_AT_LOCATION    102
NKSEDLOC DS    CL8                4 DEVICE-LOCATION                 102
*                                                                   102
NKSELLEN EQU   *-NKSETYP                                            102
         SPACE 2                                                    102
         ORG

The transferred list of members (elements) does not correspond directly to the parameters specified in the SECURE-RESOURCE-ALLOCATION command.

  • In addition to the explicitly specified DISK/TAPE requests, the VOLUME_ELEMENT sublist also contains the implicitly required volumes (supplemented from the catalog entries) specified by means of FILE.

  • The DEVICE_AT_LOCATION sublist is a purely additive, more detailed breakdown of the DEVICE sublist. It contains the device requests for which a location allocation exists. The allocation can have been made by:

    • the user specification (LOCATION=<loc>)

    • the default location with *USER-DEFAULT for MAREN

    • a location determined in MAREN-EXIT6 in conjunction with the specification LOCATION=*BY-FILE