 CONST
    osc$pr_processor_id = 11(16),
    osc$pr_keypoint_buffer_ptr = 63(16),
    osc$pr_set_keypoint_enable = 0cb(16),
    osc$pr_clear_keypoint_enable = 0ca(16),
    osc$kp_term_not_stopped = 0,

    osc$kpt_disabled = 0,
{ to use test mode .......
{ the keypoint in module mtm$monitor_interrupt_handler, between labels
{ BCRIT1 and ECRIT1 must be no-op'd. the original instruction is: B1511FA1
{ change it to: 95000000
    osc$kpt_test_mode = 1,
    osc$kpt_normal = 2,
    osc$kpt_normal_mp = 3,

    osc$kpt_pva_increment = 1000000(16),
    osc$max_kpt_pages = 128,
    osc$kpt_pva_segment = 0;

  TYPE
    ost$processor_keypoint_control = record
      avail_count: integer,
      avail_pfti: array [1 .. osc$max_kpt_pages] of mmt$page_frame_index,
      io_count: integer,
      io_pfti: array [1 .. osc$max_kpt_pages] of mmt$page_frame_index,
      in_use_count: integer,
      in_use_pfti: array [1 .. osc$max_kpt_pages] of mmt$page_frame_index,
      collector_pva: ^cell,
      sfid: gft$system_file_identifier,
      offset: integer,
      active: boolean,
      pid: integer,
    recend,
    ost$keypoint_control = record
      periodic_requested,
      active: boolean,
      envjm,
      envmm,
      jm,
      mm: ost$keypoint_mask,
      environment: ost$keypoint_environment,
      mpo: ost$keypoint_multipro_option,
      max_pages: integer,
      maximum_keypoints: integer,
      termination_status: integer,
      jsn: jmt$system_supplied_name,
      ijlo: jmt$ijl_ordinal,
      first_active_processor,
      last_active_processor: - 2 .. 31,
      lock: ALIGNED [0 MOD 8] integer,
      number_of_keypoint_files: 0 .. 0ff(16),
      keypoint_file_array: array [1 .. osc$max_number_of_processors] of amt$file_identifier,
      keypoint_pva_array: array [1 .. osc$max_number_of_processors] of ^cell,
      processor_selections: ost$processor_id_set,
      processor_select_flag: boolean,
      cpus: array [0 .. 7] of ost$processor_keypoint_control,
    recend,
    ost$ppu_keypoint_control = record
{ used by a pp - must not span pages
      number_of_processors: ALIGNED [0 MOD 1024] integer,
      pages_per_processor,
      page_size: integer,
      cpus: array [0 .. 7] of array [1 .. osc$max_kpt_pages] of integer,
    recend,
    ost$rb_keypoint_request = record
      reqcode: ALIGNED [0 MOD 8] syt$monitor_request_code,
      status: syt$monitor_status,
      sub_request: (osc$kpt_mr_start, osc$kpt_mr_stop, osc$kpt_mr_issue,
        osc$kpt_mr_init, osc$kpt_mr_term, osc$kpt_mr_test, osc$kpt_mr_go),
      kpt: ost$class_15_keypoint,
    recend,
    ost$read_register = record
      case 0 .. 1 of
      = 0 =
        i: integer,
      = 1 =
        fill: 0 .. 0ffff(16),
        pva: ^cell,
      casend,
    recend;

?? PUSH (LISTEXT := ON) ??
*copyc amt$file_identifier
*copyc ost$processor_id_set
*copyc osc$multiprocessor_constants
*copyc ost$page_table
*copyc ost$keypoint_environment
*copyc gft$system_file_identifier
*copyc jmt$system_supplied_name
*copyc jmt$initiated_job_list_entry
*copyc syt$monitor_status
*copyc syt$monitor_request_code
*copyc syc$monitor_request_codes
*copyc ost$keypoint_class
*copyc ose$keypoint_conditions
*copyc ost$signature_lock
?? POP ??
