ibm:vm370-lib:rscs:dmtqrq.assemble_src
Table of Contents
DMTQRQ Source
References
- Fixes Applied : 0
- This Source Date : Thursday, December 7, 1978
- Last Fix ID : [Unmodified]
Source Listing
- DMTQRQ.ASSEMBLE.txt
- QRQ TITLE 'DMTQRQ (RSCS) VM/370 - RELEASE 6' 00001000
- *. 00002000
- * MODULE NAME - 00003000
- * 00004000
- * DMTQRQ 00005000
- * 00006000
- * FUNCTION - 00007000
- * 00008000
- * THE DMTQRQ MODULE MANAGES THE MSUP SUPERVISOR 00009000
- * STATUS QUEUE FOR OTHER MSUP FUNCTIONS. DMTQRQ IS 00010000
- * INTENDED FOR USE ONLY WITHIN THE SUPERVISOR 00011000
- * ITSELF, AND MUST BE ENTERED WITH ALL PSW MASKS OFF 00012000
- * (EXCEPT MACHINE CHECK). 00013000
- * 00014000
- * ATTRIBUTES - 00015000
- * 00016000
- * REUSABLE 00017000
- * 00018000
- * ENTRY POINTS - 00019000
- * 00020000
- * DMTQRQ - RESERVE OR RELEASE A SUP QUEUE ELEMENT 00021000
- * 00022000
- * ENTRY CONDITIONS - 00023000
- * 00024000
- * GPR1 = 0 IMPLIES A REQUEST TO RESERVE AN ELEMENT 00025000
- * ยฌ= 0 IMPLIES A REQUEST TO RELEASE THE ELEMENT 00026000
- * WHOSE ADDRESS IS IN GPR1 00027000
- * 00028000
- * EXIT CONDITIONS - 00029000
- * 00030000
- * NORMAL - 00031000
- * 00032000
- * GPR1 = RESERVD ELEM ADDR ON RESERVE REQ 00033000
- * GPR15 = X'00' IMPLIES NORMAL REQ COMPLETION 00034000
- * 00035000
- * ERROR - 00036000
- * 00037000
- * GPR15 = X'10' IMPLIES NO ELEMENT AVAILABLE ON 00038000
- * A RESERVE REQUEST 00039000
- EJECT 00040000
- * 00041000
- * CALLS TO OTHER ROUTINES - 00042000
- * 00043000
- * NONE 00044000
- * 00045000
- * EXTERNAL REFERENCES - 00046000
- * 00047000
- * DMTVEC - SUPERVISOR COMMON AREA 00048000
- * 00049000
- * TABLES / WORKAREAS - 00050000
- * 00051000
- * FREE QUEUE ELEMENT 00052000
- * 00053000
- * REGISTER USAGE - 00054000
- * 00055000
- * GPR0 = UNUSED 00056000
- * GPR1 = FREE ELEMENT POINTER 00057000
- * GPR2 = UNUSED 00058000
- * GPR3 = UNUSED 00059000
- * GPR4 = UNUSED 00060000
- * GPR5 = UNUSED 00061000
- * GPR6 = UNUSED 00062000
- * GPR7 = UNUSED 00063000
- * GPR8 = UNUSED 00064000
- * GPR9 = UNUSED 00065000
- * GPR10 = UNUSED 00066000
- * GPR11 = UNUSED 00067000
- * GPR12 = UNUSED 00068000
- * GPR13 = UNUSED 00069000
- * GPR14 = RETURN ADDRESS 00070000
- * GPR15 = ENTRY ADDRESS AND RETURN CODE 00071000
- * 00072000
- * NOTES - 00073000
- * 00074000
- * NO VALIDATION IS PERFORMED ON QUEUE ELEMENTS TO BE 00075000
- * RELEASED - THE CALLING ROUTINES ARE RESPONSIBLE FOR 00076000
- * THAT FUNCTION. 00077000
- * 00078000
- * OPERATION - 00079000
- * 00080000
- * THE RELEASE OR 'FREE' FUNCTION OF DMTQRQ ENQUEUES 00081000
- * THE ELEMENT SPECIFIED BY THE CALLER TO BE RELEASED 00082000
- * ON THE QUEUE OF FREE SUPERVISOR ELEMENTS, AND 00083000
- * RETURNS WITHOUT ANY POSSIBLE ERROR CONDITIONS. 00084000
- * 00085000
- * THE RESERVE OR 'GET' FUNCTION OF DMTQRQ DEQUEUES 00086000
- * THE FIRST ELEMENT ON THE FREE SUPERVISOR ELEMENT QUEUE 00087000
- * AND RETURNS IT'S ADDRESS TO THE CALLER IN GPR1. 00088000
- * IF NO FREE ELEMENT IS AVAILABLE, AN ERROR CODE IS 00089000
- * RETURNED TO THE CALLER IN GPR15. 00090000
- * 00091000
- *. 00092000
- EJECT 00093000
- DMTQRQ CSECT 00094000
- SPACE 00095000
- USING DMTQRQ,R15 00096000
- USING SVECTORS,0 GET SVECTORS ADDRESSABILITY 00097000
- USING FREEE,R1 GET FREE ELEMENT ADDRESSABILITY 00098000
- SPACE 00099000
- LTR R1,R1 IS REQUEST FOR GET OR FREE? 00100000
- BNZ QFREE ADDRESS SUPPLIED - MUST BE FREE 00101000
- ICM R1,B'1111',FREEQ R1 ADDR OF START FREE QUEUE, END? 00102000
- BZ QERROR NOPE - ERROR RETURN 00103000
- MVC FREEQ(4),FREENEXT SET NEXT ELEMENT AS START OF QUEUE 00104000
- B QEXIT AND RETURN WITH ELEMENT ADDRESS IN REG.1 00105000
- SPACE 00106000
- QFREE EQU * 00107000
- LA R1,0(R1) SET HIGH ORDER BYTE TO ZERO JUST IN CASE ... 00108000
- MVI FREEID,X'00' CLEAR FREE QUEUE ELEMENT ID FIELD 00109000
- MVC FREENEXT(4),FREEQ CHAIN CURRENT FREE QUEUE 00110000
- ST 1,FREEQ AND SET IT AT THE FRONT OF THE FREE QUEUE 00111000
- QEXIT EQU * 00112000
- SR R15,R15 SET RETURN CODE TO ZERO 00113000
- BR R14 AND RETURN SUCCESSFULLY 00114000
- SPACE 00115000
- QERROR EQU * 00116000
- LA R15,16 LOAD ERROR RETURN CODE 00117000
- BR R14 AND RETURN TO CALLER 00118000
- EJECT 00119000
- COPY RSSEQU 00120000
- EJECT 00121000
- COPY SVECTORS 00122000
- EJECT 00123000
- COPY FREEE 00124000
- END 00125000
ibm/vm370-lib/rscs/dmtqrq.assemble_src.txt ยท Last modified: 2023/08/06 13:39 by Site Administrator