**** START OF SPECIFICATIONS ***************************************** 00010000 * * 00020000 *01* MODULE NAME = APSUX07S @DXC* 00030000 * $MOD (APSUX07S) COMP(APS) PROD(PSF) : VERSION 3.3.0 * 00040000 * * 00050000 *01* DESCRIPTIVE NAME = RESOURCE EXIT - SAMPLE 5 * 00060000 * * 00070000 *01* STATUS = VERSION 3, RELEASE 3, 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 * $EV=LAPS0009,HPRF330,010530,BUQ4RLB: Version 3.3.0 @EVA* 00780000 * * 00790000 **** END OF SPECIFICATIONS ******************************************* 00800000 APSUX07 START 0 00810000 TITLE 'DSECT - GEXTP' 00820000 APSGEXTP LIST=YES 00830000 TITLE 'DSECT - UECA' 00840000 APSUECA LIST=YES 00850000 TITLE 'DSECT - RLST' 00860000 APSURLST LIST=YES 00870000 TITLE 'APSUX07 - INSTALLATION EXIT 7 - RESOURCE EXIT' 00880000 APSUX07 CSECT 00890000 APSUX07 AMODE 31 @H5A 00900000 APSUX07 RMODE ANY @H5A 00910000 USING *,R15 00920000 B START 00930000 DC AL1(16) LENGTH OF FOLLOWING FIELDS 00940000 DC CL8'APSUX07 ' NAME OF THIS ROUTINE 00950000 DC CL8'&SYSDATE' DATE OF THIS ASSEMBLY 00960000 DROP R15 00970000 START DS 0H 00980000 STM R14,R12,R12(R13) SAVE CALLERS REGISTERS 00990000 USING APSUX07,BASEREG NEW ADDRESSABILITY 01000000 LR BASEREG,R15 SWITCH BASE REGISTER 01010000 ********************************************************************** 01020000 * GET BASING FOR CONTROL BLOCKS * 01030000 ********************************************************************** 01040000 USING APSGEXTP,GEXTPTR SET ADDRESSABILITY TO GEXTP 01050000 USING XTP7,XTP7PTR SET ADDRESSABILITY TO XTP7 01060000 USING APSUECA,ECAPTR SET ADDRESSABILITY TO APSUECA 01070000 USING APSURLST,RLSTPTR SET ADDRESSABILITY TO APSURLST 01080000 L GEXTPTR,0(,R1) LOAD ADDRESS OF GEXTP 01090000 L ECAPTR,XTPECAP LOAD ADDRESS OF APSUECA 01100000 LR R2,R13 LOAD ADDRESS OF CALLERS SAVE 01110000 LA R13,ECARSCSV ADDR OF APSUX07 SAVE AREA @01C 01120000 ST R2,4(,R13) SAVE CALLERS SAVE AREA ADDRESS 01130000 ST R13,8(,R2) SAVE APSUX07 SAVE AREA ADDR @01C 01140000 L XTP7PTR,XTPRECP LOAD ADDRESS OF XTP7 01150000 L RLSTPTR,XTP7LSTP LOAD ADDRESS OF APSURLST 01160000 ********************************************************************** 01170000 * DETERMINE WHAT TYPE OF CALL IS BEING MADE TO THE EXIT * 01180000 ********************************************************************** 01190000 CALLTYPE EQU * 01200000 TM XTP7ETYP,INITCALL INITIALIZATION CALL? 01210000 BO INITRTN YES, GOTO INIT ROUTINE 01220000 TM XTP7ETYP,ACCCALL RESOURCE ACCESS TIME CALL? 01230000 BO ACCRTN YES, GOTO ACCESS ROUTINE 01240000 B GETOUT THIS SHOULD NEVER HAPPEN 01250000 ********************************************************************** 01260000 * INITIALIZATION ROUTINE: * 01270000 * FUNCTION: * 01280000 * - REQUEST CONTROL AT ACCESS TIME FOR FORMDEFS AND PAGEDEFS * 01290000 ********************************************************************** 01300000 INITRTN EQU * 01310000 MVI XTP7NACC,XTP7AFD+XTP7APD REQUEST CONTROL AT ACCESS 01320000 * TIME FOR FDEFS AND PDEFS 01330000 B GETOUT EXIT APSUX07 01340000 * 01350000 ********************************************************************** 01360000 * ACCESS ROUTINE: * 01370000 * FUNCTION: * 01380000 * - CHECK DATASET TYPE AND DON'T PROCESS HEADERS, TRAILERS, MSGDS* 01390000 * - SET RLSTLOAD FLAG TO FORCE RESOURCE RELOAD * 01400000 ********************************************************************** 01410000 * 01420000 ACCRTN EQU * 01430000 TM XTP7DSAT,XTP7PDFT+XTP7PJHD+XTP7PJTR+XTP7PDSH+XTP7PMDS 01440000 * TEST FLAGS FOR NON-USER DATASET 01450000 BNZ GETOUT EXIT IF NON-USER 01460000 OI RLSTAFLG,RLSTLOAD REQUEST RESOURCE LOAD FROM DASD 01470000 B GETOUT EXIT, WE'RE DONE 01480000 * 01490000 ********************************************************************** 01500000 * EXIT LINKAGE * 01510000 ********************************************************************** 01520000 GETOUT EQU * 01530000 SLR R15,R15 PSF EXPECTS ZERO RETURN CODE 01540000 L R13,4(,R13) RESTORE CALLERS SAVE AREA ADDR. 01550000 L R14,12(,R13) RESTORE CALLERS RETURN ADDRESS 01560000 LM R0,R12,20(R13) RESTORE CALLERS REGISTERS 01570000 BR R14 RETURN TO CALLER 01580000 * 01590000 ********************************************************************** 01600000 * EQUATES TO VERIFY TYPE OF EXIT CALL, COMPARE WITH XTP7ETYP * 01610000 ********************************************************************** 01620000 INITCALL EQU B'10000000' RESOURCE MANAGER INITIAL CALL 01630000 BDSCALL EQU B'01000000' BEGINNING OF DATA SET CALL 01640000 ACCCALL EQU B'00100000' RESOURCE ACCESS 01650000 LDBCALL EQU B'00010000' RESOURCE LOAD BEGIN 01660000 LDECALL EQU B'00001000' RESOURCE LOAD END 01670000 DSECALL EQU B'00000100' RESOURCE DELETE AT DATA SET END 01680000 TRMCALL EQU B'00000010' TERMINATION OF FSA 01690000 ********************************************************************** 01700000 * EQUATES TO VERIFY TYPE OF RESOURCE CALL, COMPARE WITH XTP7RTYP * 01710000 ********************************************************************** 01720000 PDEF EQU B'10000000' PAGEDEF 01730000 FDEF EQU B'01000000' FORMDEF 01740000 FONT EQU B'00100000' CODED FONT 01750000 OVLY EQU B'00010000' MEDIUM OVERLAY 01760000 PSEG EQU B'00001000' PAGE SEGMENT 01770000 ********************************************************************** 01780000 * EQUATES FOR RLSTATTR FLAG FIELD * 01790000 ********************************************************************** 01800000 * deleted 1 line (MDFLT) @02D 01810000 MDFLT EQU B'01000000' MODIFIED DEFAULT FD/PD RESOURCE 01820000 INLINE EQU B'00100000' INLINE FD/PD RESOURCE 01830000 SOFTPS EQU B'00010000' SOFT PAGE SEGMENT 01840000 MEFONT EQU B'00001000' MULTIPLE ENTRY FONT 01850000 ********************************************************************** 01860000 * REGISTER EQUATES * 01870000 ********************************************************************** 01880000 R0 EQU 0 01890000 R1 EQU 1 01900000 R2 EQU 2 01910000 R3 EQU 3 01920000 R4 EQU 4 01930000 R5 EQU 5 01940000 R6 EQU 6 01950000 R7 EQU 7 01960000 R8 EQU 8 01970000 R9 EQU 9 01980000 R10 EQU 10 01990000 R11 EQU 11 02000000 R12 EQU 12 02010000 R13 EQU 13 02020000 R14 EQU 14 02030000 R15 EQU 15 02040000 GEXTPTR EQU R5 02050000 XTP7PTR EQU R6 02060000 ECAPTR EQU R7 02070000 RLSTPTR EQU R8 02080000 CULPTR EQU R11 02090000 BASEREG EQU R12 02100000 * * 02110000 END 02120000