Type ASSEMBLE
Source Lines : 869
Fixes Applied : 7
Most Recent Version : Thursday, December 7, 1978
Last Fix ID : [HRC040DK]
Module
DMKVCH
Function
TO 'ATTACH' OR 'DETACH' A REAL CHANNEL AND ALL DEVICES ON IT TO A SPECIFIED USER. +--------+----------------------------+ | ATTACH | CHANNEL X <TO> USERID | |--------+----------------------------+ | DETACH | CHANNEL X <FROM> <USERID> | +--------+----------------------------+ THE ACTUAL COMMAND LINE IS DECODED BY DMKVDC.
Attributes
RE-ENTRANT, PAGEABLE, CALLED VIA SVC
Operation
DMKVCHDC IS CALLED BY DMKVDA (ATTACH) OR DMKVDD (DETACH) A REAL DEVICE AND ALL DEVICES ON THE CHANNEL TO A SPECIFIED USERID. THE ATTACH/DETACH COMMAND HAS BEEN PROCESSED BY DMKVDA/DMKVDD AND FLAGS SET IN GPR1, REPRESENTING THE FUNCTION REQUESTED. THE FOLLOWING CONDITIONS ARE TESTED BEFORE A CHANNEL CAN BE DEDICATED. 1. MUST NOT BE CHANNEL 0 2. VIRTUAL CHANNEL CANNOT ALREADY EXIST. 3. REAL CHANNEL MUST BE ON THE SYSTEM 4. CHANNEL MUST NOT BE DEDICATED TO ANOTHER USER 5. THERE MUST BE NO CP-VOLUMES ON THE CHANNEL 6. SPOOLING DEVICES MUST BE IN A DRAINED CONDITION 7. DEVICES ON THE CHANNEL CANNOT BE ALREADY ATTACHED TO ANY USER'S. IF ALL OF THE ABOVE CONDITIONS ARE SATISFIED; VIRTUAL CHANNEL, CONTROL UNITS, AND DEVICE BLOKS ARE BUILT. THEY ARE MAPPED 1 FOR 1 AGAINST THE REAL CHANNEL, CONTROL UNITS, AND DEVICES. THE DEDICATE BITS ARE TURNED ON. A RESPONSE IS ISSUED TO THE USER THAT THE CHANNEL HAS BEEN ATTACHED. TO DETACH A CHANNEL THE FOLLOWING CONDITIONS MUST BE MET; 1. MUST NOT BE CHANNEL 0 2. THE REAL CHANNEL MUST EXIST 3. THE CHANNEL MUST HAVE ALREADY BEEN DEDICATED TO THIS USER. IF THE ABOVE CONDITIONS ARE MET; VIRTUAL CHANNEL, CONTROL UNITS, AND DEVICE BLOKS ARE MARKED UNAVAILABLE. THE DEDICATE BITS ARE RESET IN THE REAL CONTROL BLOKS. CONTROL REGISTER 2 IS CHANGED IF NECCESSARY TO ALLOW THE CHANNEL TO BECOME ACTIVE.
Calls to Other Routines
DMKERMSG- TO WRITE MESSAGES DMKSCNRA - TO OBTAIN THE HEX REAL DEVICE ADDRESS DMKSCNVU- TO LOCATE VIRTUAL CONTROL BLOKS DMKSCNRU- TO LOCATE REAL DEVICE CONTROL BLOKS DMKSCNRD - TO OBTAIN THE HEX REAL DEVICE ADDRESS DMKVDSAT - TO BUILD VIRTUAL DEVICE BLOCKS FOR ATTACH DMKVDREL - TO RELEASE VIRTUAL BLOCKS FOR DETACH DMKFREE - TO OBTAIN STORAGE DMKFRET - TO RELEASE STORAGE DMKQCNWT - SEND MESSAGES TO THE TERMINAL