
  PROCEDURE [INLINE] mmp$touch_all_pages
    (    pages_to_touch: ^cell;
         length: ost$segment_length);

    VAR
      temp_pages_to_touch: ^array [1 .. 7fffffff(16)] of 0 .. 0ff(16),
      page_size: ost$page_size,
      referenced_byte: 0 .. 0ff(16),
      size_offset: integer;

    page_size := 512 * (128 - #READ_REGISTER (osc$pr_page_size_mask));
    temp_pages_to_touch := pages_to_touch;
    size_offset := 1;

    WHILE size_offset < length DO
      referenced_byte := temp_pages_to_touch^ [size_offset];
      size_offset := size_offset + page_size;
    WHILEND;

    referenced_byte := temp_pages_to_touch^ [length];

 PROCEND mmp$touch_all_pages;

*copyc ost$page_size
*copyc osd$virtual_address
*copyc osc$processor_defined_registers
