Type ASSEMBLE
Source Lines : 1,371
Fixes Applied : 6
Most Recent Version : Thursday, December 7, 1978
Last Fix ID : [HRC065DK]
Module
DMKCQP
Function
TO RETURN TO THE REQUESTOR INFORMATION FOR THE QUERY PAGING, PRIORITY, SYSTEM, LINKS, DUMP, HOLD, REAL, FREE, PROCESSOR, ALL, OR TERMINAL COMMAND.
Attributes
REENTRANT, PAGEABLE, CALLED VIA SVC
Operation
1. ISSUE SVC 16 TO RETURN THE SAVEAREA, THUS, WHEN EXIT WILL RETURN DIRECTLY TO DMKCFM COMMAND PROCESSING INSTEAD OF DMKCFMQU. 2. THE PROPER ROUTINE IS ENTERED VIA A BRANCH TABLE. REGISTER 6 IS SET UP BY DMKCFMQU TO INDEX TO THE PROPER BRANCH INSTRUCTION. 3. EACH ROUTINE SCANS THE APPROPRIATE CONTROL BLOKS TO PICK UP THE INFORMATION NEEDED FOR THE REQUEST AND FORMATS THE MESSAGE TO BE RETURNED TO THE USER. STEPS 4 AND 5 DELETED ... NO LONGER USED; PROCESSING MOVED TO MODULE DMKCQR. 6. SYSTEM - CALL DMKSCNFD TO LOCATE THE RADDR ARGUMENT. IF NONE IS FOUND, CALL DMKERMSG TO SEND ERROR MESSAGE DMKCQP021E. IF ONE FOUND, CALL DMKCVTHB TO CONVERT THIS ADDRESS TO BINARY. IF THE CONVERT FAILS, CALL DMKERMSG TO SEND ERROR MESSAGE DMKCQP021E. IF THE CONVERT WAS GOOD, CALL DMKSCNRU TO LOCATE THE RDEVBLOK ADDRESS FOR THIS DEVICE. IF THE RDEVBLOK CAN'T BE FOUND, CALL DMKERMSG TO SEND ERROR MESSAGE DMKCQP040E. IF BLOCK IS FOUND AND IT IS A DASDI DEVICE WHICH IS A CP-VOLUME CALL DMKFREE FOR A MESSAGE BUFFER AREA. PROCEED TO GET THE NAMES OF ALL USERS WHO ARE LINKED TO THIS VOLUME. AS THE MESSAGE OUTPUT LINES FILL CALL DMKQCNWT TO WRITE THE LINE TO THE USER. IF THE DEVICE IS NOT CP-OWNED TREAT THE REQUEST AS IF IT WERE FOR A SINGLE DEVICE. STEPS 7 AND 8 DELETED. MOVED TO DMKCQR. 9. 'DEVICE CLASS' - SET A FLAG IN SAVEWRK1 TO INDICATE WHICH TYPE OF REQUEST WAS RECEIVED. IF IT IS A STORAGE REQUEST, OBTAIN THE REAL STORAGE SIZE AND CALL DMKCVTBD TO CONVERT TO DECIMAL. PUT THIS IN THE MESSAGE AND CALL DMKQCNWT TO OUTPUT IT. FOR DEVICE TYPE REQUEST, SCAN THE REAL DEVICE BLOCKS AND WHEN A MATCH OCCURS ON THE REQUESTED DEVICE CLASS BUILD THE MESSAGE ACCORDING TO THE TYPE OF DEVICE AND ITS STATUS. THEN CALL DMKQCNWT TO OUTPUT THE MESSAGE. CHECK RDEVNRDY FLAG. IF ON, CALL DMKQCNWT AND OUTPUT INT REQ MESSAGE. CONTINUE DOING THIS UNTIL ALL RDEVBLOKS HAVE BEEN SCANNED. STEP 10 DELETED; PROCESSING MOVED TO DMKCQR. 11. LINK - CALL DMKCVTHB TO CONVERT VADDR TO BINARY. IF ERROR DURING CONVERT CALL DMKERMSG TO ISSUE ERROR MESSAGE DMKCQP022E. IF VADDR IS VALID CALL DMKSCNVU TO LOCATE THE VIRTUAL DEVICE BLOCK. IF THE DEVICE IS NOT FOUND CALL DMKERMSG TO ISSUE ERROR MESSAGE DMKCQP040E. IF ADDRESS IS CORRECT CHECK THAT DEVICE IS DASDI. IF NOT DASDI ISSUE ERROR MESSAGE DMKCQP006E. IF ALL OF THE ABOVE REQUIREMENTS ARE MET, PROCEED TO FIND EACH USER ON THE SYSTEM THAT IS USING THE SAME DISK EXTENT, ON THE SAME CP-VOLUME THAT THIS USER HAS. CALL DMKQCNWT TO OUTPUT THE RESPONSE LINE. CONTINUE SCANNING ALL VDEVBLOKS IN THE SYSTEM UNTIL THE VDEVBLOKS ARE EXHAUSTED. 12. TDSK - USE THE SAME LOOP AS QUERY LINKS ONLY PICK UP THE VIRTUAL DISKS MARKED AS TDSK ALLOCATED. THE VIRTUAL TDSKS INDICATE THE NUMBER OF CYLINDERS THE STACK ROUTINE IS USED TO STACK THE OUTPUT LINE. 13. PROCESSOR - CALL DMKCVTBH TO CONVERT EACH ONLINE PROCESSOR ADDRESS TO PRINTABLE HEXADECIMAL THEN BUILD PROCESSOR ONLINE MESSAGE. IN AP MODE, THE MAIN PROCESSOR WILL BE GIVEN FIRST.
Calls to Other Routines
DMKSCNFD - TO LOCATE THE NEXT ARGUMENT IN THE COMMAND BUFFER DMKSCNAU - TO FIND THE VMBLOK FOR A SPECFIC USERID DMKSCNVU - TO FIND CONTROL BLOKS FOR A VIRTUAL DEVICE DMKSCNRU - TO FIND CONTROL BLOKS FOR A REAL DEVICE DMKSCNRD - GET ADDRESS OF REAL DEVICE. DMKSCNRA - TO GET CCU ADDRESS OF REAL DEVICE DMKSCNRN - TO GET THE NAME OF THE DEVICE. DMKSCNVD - GET THE VIRTUAL DEVICE ADDRESS. DMKCVTHB - TO CONVERT HEXADECIMAL ADDRESS TO BINARY DMKCVTDB - TO CONVERT A DECIMAL NUMBER TO BINARY. DMKCVTBD - TO CONVERT A BINARY NUMBER TO DECIMAL DMKCVTBH - TO CONVERT A BINARY NUMBER TO HEXADECIMAL DMKFREE - TO OBTAIN MEMORY FROM FREE STORAGE DMKFRET - TO RETURN MEMORY TO FREE STORAGE DMKQCNWT - TO OUTPUT MESSAGES TO THE TERMINAL DMKERMSG - TO SEND ERROR MESSAGES TO THE TERMINAL. DMKRSPUR - TO FORMAT ACTIVE FILE MESSAGE DMKCFCSC - SCAN OPERAND FOR RANGE OF ADDRESSES