++USERMOD(ZP60023) /* SUPPORT DAS AT THE TASK LEVEL */ . ++VER(Z038) FMID(FBB1221) PRE(UZ61148,UZ36571,UZ30139,UZ25668) /* PROBLEM DESCRIPTION: NO OPERATING SYSTEM SUPPORT FOR THE DUAL ADDRESS SPACE FACILITY. IN ORDER TO EXPLOIT THE DUAL ADDRESS SPACE FACILITY (DAS) APPLICATIONS MUST USE DISABLEMENT FOR SERIALIZATION AND MANAGE THE CONTENTS OF THE RELEVANT CONTROL REGISTERS. THIS IS NOT CONDUCIVE TO GOOD SYSTEM STABILITY, RELIABLITY AND PERFORMANCE. THIS USERMOD UPDATES THE PROGRAM CHECK FIRST LEVEL INTERRUPT HANDLER (PCFLIH) SUCH THAT IF A SPECIAL-OPERATION EXCEPTION IS CAUSED BY AN SSAR INSTRUCTION WHEN RUNNING UNDER A TASK, THE SPECIFIED SECONDARY ADDRESS SPACE NUMBER (SASN) IS VALIDATED, AND IF VALID IS SET UP TO BE THE TASK'S SECONDARY ADDRESS SPACE. THE PCFLIH STORES THE SECONDARY ASID IN THE PREVIOUSLY RESERVED FIELD TCBRV326. ALL TASKS CAN USE SSAR TO SET SASN=PASN. ALL TASKS CAN ISSUE SSAR WITH THE SPECIAL SASN VALUE OF ZERO WHICH CAUSES ALL DAS SETTINGS TO BE CLEARED FROM CONTROL REGISTERS. (SPECIFYING A SASN OF ZERO IS DIFFERENT FROM USING GENERAL PURPOSE REGISTER 0 IN THE SSAR INSTRUCTION.) SETTING THE SECONDARY ADDRESS SPACE TO ONE OTHER THAN THE CURRENT PRIMARY ADDRESS SPACE REQUIRES THAT THE SSAR INSTRUCTION IS EXECUTED IN SUPERVISOR STATE. THIS USERMOD ALSO CHANGES THE DISPATCHER TO RESTORE THE SECONDARY ASID OF A TASK EACH TIME IT IS DISPATCHED. THE DISPATCHER WILL RESET THE DAS ENVIRONMENT, AND REVALIDATE THE ASID STORED IN TCBRV326, AND IF FOUND TO BE VALID WILL SET THAT ASID AS THE TASK'S SECONDARY ASID BEFORE THE TASK RESUMES PROCESSING. THE ASID IS CONSIDERED VALID IF IT SPECIFIES AN ASSIGNED SWAPPED-IN ADDRESS SPACE. WHEN A SECONDARY ASID IS SET UP FOR A TASK BY THE PCFLIH, OR RESTORED BY THE DISPATCHER, THE SECONDARY ASN IS SET INTO CONTROL REGISTER 3, THE PRIMARY ASN IS SET INTO CONTROL REGISTER 4, THE SECONDARY SEGMENT TABLE ORIGIN AND LENGTH ARE SET INTO CONTROL REGISTER 7, AND THE EXTRACTION-AUTHORITY CONTROL AND THE SECONDARY-SPACE CONTROL BITS ARE SET ON IN CONTROL REGISTER 0. SPECIAL CONDITIONS: ACTION: AN IPL MUST BE PERFORMED FOR THIS SYSMOD TO BECOME ACTIVE. DOC: SYSTEM ABEND 0D7 INDICATES THAT THE PC FLIH FOUND AN ADDRESS SPACE TO NOT BE BOTH ASSIGNED AND SWAPPED IN. THE VALUE OF GENERAL PURPOSE REGISTER 15 IS 1 IF THE PRIMARY ADDRESS SPACE WAS FOUND TO BE INVALID AFTER A PAGE FAULT IN THE SECONDARY ADDRESS SPACE WAS RESOLVED, AND 2 IF A PAGE- TRANSLATION EXCEPTION OCCURRED FOR AN INVALID SECONDARY ADDRESS SPACE. COMMENTS: PRYCROFT SIX P/L PUBLIC DOMAIN USERMOD FOR MVS 3.8 NUMBER 23. REWORK HISTORY: 2008-11-01: INITIAL RELEASE. 2012-01-07: SAVE FLOATING POINT REGISTER CONTENTS CORRECTLY. 2015-06-09: FIX CONDITION CODE SETTING AND BRCL BRANCH ADDRESS. ALSO ADD TRTT, TRTO, TROT, TROO, MSFI AND TP. 2016-08-06: REMOVE NON-370 INSTRUCTION OPCODE SUPPORT RESIDENT IN THE PCFLIH OPERATION EXCEPTION HANDLER, AND SO PSARV022 IS NO LONGER USED AS A RECURSION FLAG. THE FOLLOWING MODULES AND/OR MACROS ARE AFFECTED BY THIS USERMOD: MODULES: IEAVEDS0 IEAVEPC MACROS: IKJTCB */.