
 PROCEDURE [INLINE] syp$cycle_for_lock (code: tmc$cycle_reason;
      p: ^ost$signature_lock);
?? PUSH (LISTEXT := ON) ??

    VAR
      cnv: RECORD
        case boolean of
        = false=
          i: integer,
        = true =
          f: 0 .. 0ffff(16),
          p: ^cell,
        casend, recend,
      cycle_task: tmt$rb_cycle;

    cycle_task.reqcode := syc$rc_cycle;
    cycle_task.code := code;
    cnv.i := #read_register(64);
    cycle_task.p1 := cnv.p;
    cycle_task.p2 := p;
    cycle_task.lock_value := p^.lock_id;
    i#call_monitor (#LOC (cycle_task), #SIZE (cycle_task));
  PROCEND syp$cycle_for_lock;
*copyc pmh$cycle
*copyc i#call_monitor
*copyc tmt$rb_cycle
*copyc ost$signature_lock
?? POP ??
