
  PROCEDURE [INLINE] dmp$lock_avt_entry
    (    avt_index: dmt$active_volume_table_index);

?? PUSH (LISTEXT := ON) ??

    VAR
      actual: integer,
      lock_p: ^ost$signature_lock,
      result: 0 .. 2;

    lock_p := ^dmv$active_volume_table.table_p^ [avt_index].lock;
    WHILE TRUE DO
      REPEAT
        #COMPARE_SWAP (lock_p^.lock_id, $INTEGER (dmc$unlocked),
              $INTEGER (dmc$locked), actual, result);
      UNTIL result <> 2;
      IF result = osc$cs_successful THEN
        RETURN; {----->
      IFEND;
      syp$cycle;
    WHILEND;

  PROCEND dmp$lock_avt_entry;

*copyc dmh$lock_avt_entry
*copyc dmt$active_volume_table_index
*copyc dmt$file_table_lock
*copyc syp$cycle
*copyc dmv$active_volume_table
?? POP ??
