**** START OF SPECIFICATIONS ***************************************** 00010000 * * 00020000 *01* MODULE NAME = APSUX07S @DXC* 00030000 * $MOD (APSUX07S) COMP(APS) PROD(PSF) : VERSION 3.2.0 * 00040000 * * 00050000 *01* DESCRIPTIVE NAME = RESOURCE EXIT - SAMPLE 5 * 00060000 * * 00070000 *01* STATUS = VERSION 3, RELEASE 2, LEVEL 0 * 00080000 * * 00090000 *01* FUNCTION = * 00100000 * * 00110000 * The only function performed by this exit is to force the reload * 00120000 * from DASD of all accessed FORMDEFs and PAGEDEFs. This * 00130000 * circumvents the PSF practice of holding the most recently used * 00140000 * FORMDEFs and PAGEDEFs in virtual storage and using the storage * 00150000 * copy if it exists. This presents a difficulty to those * 00160000 * doing testing and development on these objects, since * 00170000 * changes made to the DASD copy do not take effect until PSF is * 00180000 * forced to flush the copy in virtual storage. * 00190000 * * 00200000 * This exit is first entered on PSF initialization. On this entry * 00210000 * the exit sets flags in the XTP7NACC field to indicate that it * 00220000 * wants control whenever a PAGEDEF or FORMDEF is accessed. * 00230000 * * 00240000 * On subsequent access entries, the only action taken is to set * 00250000 * the RLSTLOAD flag in the RLSTAFLG field, which forces the load * 00260000 * of the subject resource from DASD. * 00270000 * * 00280000 * * 00290000 * The basic logic and environment for PSF exits is described in * 00300000 * the PSF System Programmers Guide. * 00310000 * * 00320000 * * 00330000 * * 00340000 *01* NOTES = SEE BELOW: * 00350000 * DEPENDENCIES = NONE * 00360000 * RESTRICTIONS = NONE * 00370000 * * 00380000 *01* MODULE TYPE = PROCEDURE * 00390000 * PROCESSOR = ASSEMBLER * 00400000 * ATTRIBUTES = REENTRANT, SUPERVISOR STATE, CALLER'S KEY, * 00410000 * PAGEABLE * 00420000 * * 00430000 *01* ENTRY POINT = APSUX07 * 00440000 * * 00450000 *01* REGISTER ON ENTRY : * 00460000 * R1 = ADDRESS OF A 4 BYTE FIELD WHICH CONTAINS THE * 00470000 * ADDRESS OF APSGEXTP * 00480000 * R13 = SAVE AREA ADDRESS * 00490000 * R14 = RETURN ADDRESS * 00500000 * R15 = ENTRY POINT ADDRESS * 00510000 * * 00520000 * * 00530000 *01* INPUT = PARAMETER AREA (APSGEXTP) * 00540000 * * 00550000 *01* OUTPUT = N/A * 00560000 * EXIT-NORMAL = RETURN TO CALLER * 00570000 * EXIT-ERROR = NONE * 00580000 * * 00590000 *01* EXTERNAL REFERENCES = SEE BELOW: * 00600000 * ROUTINES = * 00610000 * DATA AREAS = NONE * 00620000 * CONTROL BLOCKS = (SEE MACROS LISTED BELOW) * 00630000 * * 00640000 *01* TABLES = NONE * 00650000 * * 00660000 *01* MACROS = MACROS USED FROM MACRO LIBRARY: * 00670000 * APSGEXTP - PSF INSTALLATION EXIT PARAMETER AREA * 00680000 * APSUECA - PSF EXIT COMMUNICATIONS AREA * 00690000 * APSURLST - PSF EXIT RESOURCE LIST AREA * 00700000 *01* CHANGE ACTIVITY = * 00710000 * $L1=LAPS0004, HAF1228, 880601, B53KEMC: RELEASE 3.0 * 00720000 * $01=OY31363, HAF1228, 900406, B53KEMC: Use correct save area @01A* 00730000 * $H5=LAPS0005, HPRF102, 033189, B53KEMC: REL 2.1.0 NEW FUNCT @H5A* 00740000 * $02=OW18773, HPRF220, 960410, BDKURLD: Delete MDFLT @02A* 00750000 * $DU=LAPS0007,HPRF310,980604,BDKURLB: Version 3.1.0 @DUA* 00760000 * $DX=LAPS0008,HPRF320,990923,BDKURLD: Version 3.2.0 @DXA* 00770000 * * 00780000 **** END OF SPECIFICATIONS ******************************************* 00790000 APSUX07 START 0 00800000 TITLE 'DSECT - GEXTP' 00810000 APSGEXTP LIST=YES 00820000 TITLE 'DSECT - UECA' 00830000 APSUECA LIST=YES 00840000 TITLE 'DSECT - RLST' 00850000 APSURLST LIST=YES 00860000 TITLE 'APSUX07 - INSTALLATION EXIT 7 - RESOURCE EXIT' 00870000 APSUX07 CSECT 00880000 APSUX07 AMODE 31 @H5A 00890000 APSUX07 RMODE ANY @H5A 00900000 USING *,R15 00910000 B START 00920000 DC AL1(16) LENGTH OF FOLLOWING FIELDS 00930000 DC CL8'APSUX07 ' NAME OF THIS ROUTINE 00940000 DC CL8'&SYSDATE' DATE OF THIS ASSEMBLY 00950000 DROP R15 00960000 START DS 0H 00970000 STM R14,R12,R12(R13) SAVE CALLERS REGISTERS 00980000 USING APSUX07,BASEREG NEW ADDRESSABILITY 00990000 LR BASEREG,R15 SWITCH BASE REGISTER 01000000 ********************************************************************** 01010000 * GET BASING FOR CONTROL BLOCKS * 01020000 ********************************************************************** 01030000 USING APSGEXTP,GEXTPTR SET ADDRESSABILITY TO GEXTP 01040000 USING XTP7,XTP7PTR SET ADDRESSABILITY TO XTP7 01050000 USING APSUECA,ECAPTR SET ADDRESSABILITY TO APSUECA 01060000 USING APSURLST,RLSTPTR SET ADDRESSABILITY TO APSURLST 01070000 L GEXTPTR,0(,R1) LOAD ADDRESS OF GEXTP 01080000 L ECAPTR,XTPECAP LOAD ADDRESS OF APSUECA 01090000 LR R2,R13 LOAD ADDRESS OF CALLERS SAVE 01100000 LA R13,ECARSCSV ADDR OF APSUX07 SAVE AREA @01C 01110000 ST R2,4(,R13) SAVE CALLERS SAVE AREA ADDRESS 01120000 ST R13,8(,R2) SAVE APSUX07 SAVE AREA ADDR @01C 01130000 L XTP7PTR,XTPRECP LOAD ADDRESS OF XTP7 01140000 L RLSTPTR,XTP7LSTP LOAD ADDRESS OF APSURLST 01150000 ********************************************************************** 01160000 * DETERMINE WHAT TYPE OF CALL IS BEING MADE TO THE EXIT * 01170000 ********************************************************************** 01180000 CALLTYPE EQU * 01190000 TM XTP7ETYP,INITCALL INITIALIZATION CALL? 01200000 BO INITRTN YES, GOTO INIT ROUTINE 01210000 TM XTP7ETYP,ACCCALL RESOURCE ACCESS TIME CALL? 01220000 BO ACCRTN YES, GOTO ACCESS ROUTINE 01230000 B GETOUT THIS SHOULD NEVER HAPPEN 01240000 ********************************************************************** 01250000 * INITIALIZATION ROUTINE: * 01260000 * FUNCTION: * 01270000 * - REQUEST CONTROL AT ACCESS TIME FOR FORMDEFS AND PAGEDEFS * 01280000 ********************************************************************** 01290000 INITRTN EQU * 01300000 MVI XTP7NACC,XTP7AFD+XTP7APD REQUEST CONTROL AT ACCESS 01310000 * TIME FOR FDEFS AND PDEFS 01320000 B GETOUT EXIT APSUX07 01330000 * 01340000 ********************************************************************** 01350000 * ACCESS ROUTINE: * 01360000 * FUNCTION: * 01370000 * - CHECK DATASET TYPE AND DON'T PROCESS HEADERS, TRAILERS, MSGDS* 01380000 * - SET RLSTLOAD FLAG TO FORCE RESOURCE RELOAD * 01390000 ********************************************************************** 01400000 * 01410000 ACCRTN EQU * 01420000 TM XTP7DSAT,XTP7PDFT+XTP7PJHD+XTP7PJTR+XTP7PDSH+XTP7PMDS 01430000 * TEST FLAGS FOR NON-USER DATASET 01440000 BNZ GETOUT EXIT IF NON-USER 01450000 OI RLSTAFLG,RLSTLOAD REQUEST RESOURCE LOAD FROM DASD 01460000 B GETOUT EXIT, WE'RE DONE 01470000 * 01480000 ********************************************************************** 01490000 * EXIT LINKAGE * 01500000 ********************************************************************** 01510000 GETOUT EQU * 01520000 SLR R15,R15 PSF EXPECTS ZERO RETURN CODE 01530000 L R13,4(,R13) RESTORE CALLERS SAVE AREA ADDR. 01540000 L R14,12(,R13) RESTORE CALLERS RETURN ADDRESS 01550000 LM R0,R12,20(R13) RESTORE CALLERS REGISTERS 01560000 BR R14 RETURN TO CALLER 01570000 * 01580000 ********************************************************************** 01590000 * EQUATES TO VERIFY TYPE OF EXIT CALL, COMPARE WITH XTP7ETYP * 01600000 ********************************************************************** 01610000 INITCALL EQU B'10000000' RESOURCE MANAGER INITIAL CALL 01620000 BDSCALL EQU B'01000000' BEGINNING OF DATA SET CALL 01630000 ACCCALL EQU B'00100000' RESOURCE ACCESS 01640000 LDBCALL EQU B'00010000' RESOURCE LOAD BEGIN 01650000 LDECALL EQU B'00001000' RESOURCE LOAD END 01660000 DSECALL EQU B'00000100' RESOURCE DELETE AT DATA SET END 01670000 TRMCALL EQU B'00000010' TERMINATION OF FSA 01680000 ********************************************************************** 01690000 * EQUATES TO VERIFY TYPE OF RESOURCE CALL, COMPARE WITH XTP7RTYP * 01700000 ********************************************************************** 01710000 PDEF EQU B'10000000' PAGEDEF 01720000 FDEF EQU B'01000000' FORMDEF 01730000 FONT EQU B'00100000' CODED FONT 01740000 OVLY EQU B'00010000' MEDIUM OVERLAY 01750000 PSEG EQU B'00001000' PAGE SEGMENT 01760000 ********************************************************************** 01770000 * EQUATES FOR RLSTATTR FLAG FIELD * 01780000 ********************************************************************** 01790000 * deleted 1 line (MDFLT) @02D 01800000 MDFLT EQU B'01000000' MODIFIED DEFAULT FD/PD RESOURCE 01810000 INLINE EQU B'00100000' INLINE FD/PD RESOURCE 01820000 SOFTPS EQU B'00010000' SOFT PAGE SEGMENT 01830000 MEFONT EQU B'00001000' MULTIPLE ENTRY FONT 01840000 ********************************************************************** 01850000 * REGISTER EQUATES * 01860000 ********************************************************************** 01870000 R0 EQU 0 01880000 R1 EQU 1 01890000 R2 EQU 2 01900000 R3 EQU 3 01910000 R4 EQU 4 01920000 R5 EQU 5 01930000 R6 EQU 6 01940000 R7 EQU 7 01950000 R8 EQU 8 01960000 R9 EQU 9 01970000 R10 EQU 10 01980000 R11 EQU 11 01990000 R12 EQU 12 02000000 R13 EQU 13 02010000 R14 EQU 14 02020000 R15 EQU 15 02030000 GEXTPTR EQU R5 02040000 XTP7PTR EQU R6 02050000 ECAPTR EQU R7 02060000 RLSTPTR EQU R8 02070000 CULPTR EQU R11 02080000 BASEREG EQU R12 02090000 * * 02100000 END 02110000