Type ASSEMBLE
Source Lines : 1,000
Fixes Applied : 6
Most Recent Version : Thursday, December 7, 1978
Last Fix ID : [HRC028DK]
Module
DMKUDR USER DIRECTORY MODULE
Function
THE USER DIRECTORY IS WRITTEN USING A PAGEABLE ACCESS METHOD. TO MINIMIZE THE PAGEING ACTIVITY SEVERAL CONCIDERATIONS SHOULD BE NOTED. FIRST THE USER DIRECTORY BLOCKS ARE IN A SEPERATE PAGE OR PAGES AND THE PAGES ARE ASSIGNED A VIRTUAL ADDRESS AT IPL TIME. SO NO SPECIAL CONCIDERATIONS ARE NECESSARY WHEN CALLING DMKUDRFU. THE USER MACHINE AND DEVICE BLOCKS, ON THE OTHER HAND, ARE NOT ASSIGNED PERMANENT VIRTUAL ADDRESSES. THE VIRTUAL ADDRESS IS ASSIGNED THE FIRST TIME A PAGE IS REFERENCED AND MUST BE REMEMBERED UNTIL THE CALLER IS FINISHED WITH THAT USER. TO FACILITATE THIS THE USER MUST PROVIDE A BUFFER, SEVEN DOUBLE WORDS LONG, WITH THE LAST DOUBLE WORD RESERVED FOR THE DMKUDRRD, DMKUDRFD AND DMKUDRRV ROUTINES. THE SAME BUFFER MUST BE PROVIDED FOR EACH SUBSEQUENT RETRIEVAL. A SECOND BUFFER MUST BE PROVIDED IF INNESTED LINKS ARE INCOUNTERED. A MAXIMUM OF TWO BUFFERS ARE TO BE USED AND THE BUFFER MUST HAVE THE LAST DOUBLE WORD ZERO'S, AT ENTRY TO ANY ROUTINE FOR THE FIRST TIME. ALL SUBSEQUENT ENTRIES TO ANY ROUTINE MUST NOT CHANGE THIS DOUBLE WORD. AFTER A BUFFER HAS BEEN USED FOR THE LAST TIME THE USER MUST CALL DMKUDRRV TO RETURN THE VIRTUAL PAGE AND THEN THE USER CAN FRET HIS BUFFER.
Attributes
REENTRANT,PAGEABLE
Operation
1. CALL DMKLOCKQ TO LOCK THE NAME ' DIRCT '. 2. MASK THE USERID, FROM THE CALLER, OFF AND SET UP TO SCAN THE UDIRBLOK'S. 3. TRANS TO BRING IN EACH PAGE FROM THE PAGE LIST (DMKSYSPL) UNTIL THE USERID IS FOUND. 4. IF THE USERID IS NOT FOUND CALL DMKLOCKD TO UNLOCK C' DIRCT ' AND EXIT CC = 1. 5. WHEN FOUND TEST IF THE USER PROVIDED A BUFFER. IF NOT GO TO STEP 7. 6. MOVE THE UDIRBLOK INTO THE USERS BUFFER AND UNMASK THE BLOCK. 7. CALL DMKLOCKD TO UNLOCK C' DIRECT ' AND EXIT CC = 0.
Calls to Other Routines
DMKLOCKQ - TO LOCK (QUEQE) THE USER DIRECTORY DMKPTRAN - TO BRING A PAGE INTO STORAGE DMKLOCKD - TO DEQUEUE THE USER DIRECTORY DMKPTRFT - TO RELEASE A REAL STORAGE PAGE FRAME