Table of Contents

DMKUDR Abstract

Statistics

Type ASSEMBLE
Source Lines : 1,000
Fixes Applied : 6
Most Recent Version : Thursday, December 7, 1978
Last Fix ID : [HRC028DK]

Synopsis

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