
  PROCEDURE [INLINE] dfp$touch_pages
    (    p_data: ^cell;
         length: ost$segment_length;
     VAR page_count: ost$non_negative_integers);

    VAR
      one_byte: cell,
      pointer_to_touch_cell: ^cell,
      ring: ost$ring,
      segment: ost$segment,
      starting_offset: ost$segment_offset;

    { Touch the first byte
    ring := #RING (p_data);
    segment:= #SEGMENT(p_data);
    starting_offset := #OFFSET (p_data);
    one_byte := p_data^;

  /touch_each_page/
    FOR page_count := 1 TO dfp$page_count (length) DO
      pointer_to_touch_cell := #ADDRESS (ring, segment,
            (starting_offset + (page_count * osv$page_size) - 1));
      one_byte := pointer_to_touch_cell^;
    FOREND /touch_each_page/;
  PROCEND dfp$touch_pages;
?? PUSH (LISTEXT := ON) ??
*copyc osd$integer_limits
*copyc osd$virtual_address
*copyc osv$page_size
?? POP ??
*copyc dfp$page_count
