
  {Program Management Keypoint Procedure Identifiers}

  { NOTE:
  { The value for pmk$purge_instruction_stack is used in the ASSEMBLE deck PMM$JOB_TEMPLATE_TRAP_HANDLER

  CONST
    pmk$task_begin_end = pmk$base + 0,
*IF $variable(osc$select_path_keypoints, defined) AND osc$select_path_keypoints
    {E 'PM_process_task' }
    {X 'PM_process_task' }
*ELSE
    {E 'pmp$task_begin_end' }
    {X 'pmp$task_begin_end' }
*IFEND

    pmk$task_begin = pmk$base + 1,
*IF $variable(osc$select_path_keypoints, defined) AND osc$select_path_keypoints
    {E 'PM_initiate_task' }
    {X 'PM_initiate_task' }
*ELSE
    {E 'pmp$task_begin' }
    {X 'pmp$task_begin' }
*IFEND

    pmk$pop_all_stack_frames = pmk$base + 2,
*IF $variable(osc$select_path_keypoints, defined) AND osc$select_path_keypoints
    {E 'PM_pop_all_stack_frames' }
    {X 'PM_pop_all_stack_frames' }
*ELSE
    {E 'pmp$pop_all_stack_frames' }
    {X 'pmp$terminate_popper' }
*IFEND

    pmk$ring_crossing_popper = pmk$base + 3,
*IF $variable(osc$select_path_keypoints, defined) AND osc$select_path_keypoints
    {E 'PM_ring_crossing_popper' }
    {X 'PM_ring_crossing_popper' }
*ELSE
    {E 'pmp$ring_crossing_popper' }
    {X 'pmp$ring_crossing_popper' }
*IFEND

    pmk$execute = pmk$base + 4,
    {E 'pmp$execute' }
    {X 'pmp$execute' 'status ' I20 }

    pmk$execute_with_less_privilege = pmk$base + 5,
    {E 'pmp$execute_with_less_privilege' }
    {X 'pmp$execute_with_less_privilege' 'status ' I20 }

    pmk$exit = pmk$base + 6,
*IF $variable(osc$select_path_keypoints, defined) AND osc$select_path_keypoints
    {E 'PM_exit_task' }
*ELSE
    {E 'pmp$exit' }
*IFEND

    pmk$abort = pmk$base + 7,
*IF $variable(osc$select_path_keypoints, defined) AND osc$select_path_keypoints
    {E 'PM_abort_task' }
*ELSE
    {E 'pmp$abort' }
*IFEND

    pmk$terminate = pmk$base + 8,
    {E 'pmp$terminate' 'child_id' H20 }
    {X 'pmp$terminate' 'status ' I20 }

    pmk$await_task_termination = pmk$base + 9,
    {E 'pmp$await_task_termination' 'child_id' H20 }
    {X 'pmp$await_task_termination' 'status ' I20 }

    pmk$get_entry_point_address = pmk$base + 10,
    {E 'pmp$get_entry_point_address' }
    {X 'pmp$get_entry_point_address' }

    pmk$get_program_description = pmk$base + 11,
    {E 'pmp$get_program_description' }
    {X 'pmp$get_program_description' 'status ' I20 }

    pmk$get_program_size = pmk$base + 12,
    {E 'pmp$get_program_size' }
    {X 'pmp$get_program_size' 'status ' I20 }

    pmk$define_queue = pmk$base + 13,
    {E 'pmp$define_queue' }
    {X 'pmp$define_queue' }

    pmk$remove_queue = pmk$base + 14,
    {E 'pmp$remove_queue' }
    {X 'pmp$remove_queue' }

    pmk$connect_queue = pmk$base + 15,
    {E 'pmp$connect_queue' }
    {X 'pmp$connect_queue' }

    pmk$disconnect_queue = pmk$base + 16,
    {E 'pmp$disconnect_queue' }
    {X 'pmp$disconnect_queue' }

    pmk$send_to_queue = pmk$base + 17,
    {E 'pmp$send_to_queue' }
    {X 'pmp$send_to_queue' }

    pmk$receive_from_queue = pmk$base + 18,
    {E 'pmp$receive_from_queue' }
    {X 'pmp$receive_from_queue' }

    pmk$status_queue = pmk$base + 19,
    {E 'pmp$status_queue' }
    {X 'pmp$status_queue' }

    pmk$status_queues_defined = pmk$base + 20,
    {E 'pmp$status_queues_defined' }
    {X 'pmp$status_queues_defined' }

    pmk$get_queue_limits = pmk$base + 21,
    {E 'pmp$status_queues_defined_queue' }
    {X 'pmp$status_queues_defined_queue' }

    pmk$establish_condition_handler = pmk$base + 22,
    {E 'pmp$establish_condition_handler' }
    {X 'pmp$establish_condition_handler' 'status ' I20 }

    pmk$disestablish_cond_handler = pmk$base + 23,
    {E 'pmp$disestablish_cond_handler' }
    {X 'pmp$disestablish_cond_handler' 'status ' I20 }

    pmk$cause_condition = pmk$base + 24,
    {E 'pmp$cause_condition' }
    {X 'pmp$cause_condition' 'status ' I20 }

    pmk$continue_to_cause_condition = pmk$base + 25,
    {E 'pmp$continue_to_cause_condition' }
    {X 'pmp$continue_to_cause_condition' }

    pmk$test_condition_handler = pmk$base + 26,
    {E 'pmp$test_condition_handler' }
    {X 'pmp$test_condition_handler' }

    pmk$get_time = pmk$base + 27,
    {E 'pmp$get_time' }
    {X 'pmp$get_time' 'status ' I20 }

    pmk$get_microsecond_clock = pmk$base + 28,
    {E 'pmp$get_microsecond_clock' }
    {X 'pmp$get_microsecond_clock' }

    pmk$get_task_cp_time = pmk$base + 29,
    {E 'pmp$get_task_cp_time' }
    {X 'pmp$get_task_cp_time' }

    pmk$get_date = pmk$base + 30,
    {E 'pmp$get_date' }
    {X 'pmp$get_date' 'status ' I20 }

    pmk$get_srus = pmk$base + 31,
    {E 'pmp$get_srus' }
    {X 'pmp$get_srus' }

    pmk$get_user_identification = pmk$base + 32,
    {E 'pmp$get_user_identification' }
    {X 'pmp$get_user_identification' }

    pmk$get_account_project = pmk$base + 33,
    {E 'pmp$get_account_project' }
    {X 'pmp$get_account_project' }

    pmk$get_job_names = pmk$base + 34,
    {E 'pmp$get_job_names' }
    {X 'pmp$get_job_names' }

    pmk$get_job_mode = pmk$base + 35,
    {E 'pmp$get_job_name' }
    {X 'pmp$get_job_name' }

    pmk$get_task_id = pmk$base + 36,
    {E 'pmp$get_task_id' }
    {X 'pmp$get_task_id' 'status ' I20 }

    pmk$manage_sense_switches = pmk$base + 37,
    {E 'pmp$manage_sense_switches' }
    {X 'pmp$manage_sense_switches' }

    pmk$generate_unique_name = pmk$base + 38,
    {E 'pmp$generate_unique_name' }
    {X 'pmp$generate_unique_name' 'status ' I20 }

    pmk$get_os_version = pmk$base + 39,
    {E 'pmp$get_os_version' }
    {X 'pmp$get_os_version' }

    pmk$get_processor_attributes = pmk$base + 40,
    {E 'pmp$get_processor_attributes' }
    {X 'pmp$get_processor_attributes' }

    pmk$log_message = pmk$base + 41,
    {E 'pmp$log_message' }
    {X 'pmp$log_message' }

    pmk$log_ascii = pmk$base + 42,
    {E 'pmp$log_ascii' }
    {X 'pmp$log_ascii' }

    pmk$get_legible_date_time = pmk$base + 43,
    {E 'pmp$get_legible_date_time' }
    {X 'pmp$get_legible_date_time' }

    pmk$get_compact_date_time = pmk$base + 44,
    {E 'pmp$get_compact_date_time' }
    {X 'pmp$get_compact_date_time' }

    pmk$format_compact_time = pmk$base + 45,
    {E 'pmp$format_compact_time' }
    {X 'pmp$format_compact_time' }

    pmk$format_compact_date = pmk$base + 46,
    {E 'pmp$format_compact_date' }
    {X 'pmp$format_compact_date' }

    pmk$job_debug_ring = pmk$base + 47,
    {E 'pmp$job_debug_ring' }
    {X 'pmp$job_debug_ring' 'dbg_ring' I8 }

    pmk$reset_debug_scan = pmk$base + 48,
    {E 'pmp$reset_debug_scan' }
    {X 'pmp$reset_debug_scan' }

    pmk$compute_date_time = pmk$base + 49,
    {E 'pmp$compute_date_time' }
    {X 'pmp$compute_date_time' }

    pmk$get_common_block_info = pmk$base + 50,
    {E 'pmp$get_common_block_info' }
    {X 'pmp$get_common_block_info' 'status ' I20 }

    pmk$log = pmk$base + 51,
    {E 'pmp$log' }
    {X 'pmp$log' 'status ' I20 }

    pmk$load = pmk$base + 52,
    {E 'pmp$load' }
    {X 'pmp$load' 'status ' I20 }

    pmk$find_entry_point_address = pmk$base + 53,
    {E 'pmp$find_entry_point_address' }
    {X 'pmp$find_entry_point_address' 'status ' I20 }

    pmk$get_170_os_type = pmk$base + 54,
    {E 'pmp$get_170_os_type' }
    {X 'pmp$get_170_os_type' }

    pmk$wait = pmk$base + 55,
    {E 'pmp$wait' }
    {X 'pmp$wait' }

    pmk$long_term_wait = pmk$base + 56,
    {E 'pmp$long_term_wait' }
    {X 'pmp$long_term_wait' }

    pmk$get_executing_task_gtid_r6 = pmk$base + 57,
    {E 'pmp$get_executing_task_gtid_r6' }
    {X 'pmp$get_executing_task_gtid_r6' 'task_id' H20}

    pmk$ready_task = pmk$base + 58,
    {E 'pmp$ready_task' 'task_id' H20}
    {X 'pmp$ready_task' }

    pmk$get_program_size_in_bytes = pmk$base + 59,
    {E 'pmp$get_program_size_in_bytes' }
    {X 'pmp$get_program_size_in_bytes' 'status ' I20 }

    pmk$get_job_task_statistics = pmk$base + 60,
    {E 'pmp$get_job_task_statistics' }
    {X 'pmp$get_job_task_statistics' 'status ' I20 }

    pmk$change_inheritable_segments = pmk$base + 61,
    {E 'pmp$change_inheritable_segments' }
    {X 'pmp$change_inheritable_segments' }

    pmk$clear_wait_inhibited = pmk$base + 62,
    {E 'pmp$clear_wait_inhibited' }
    {X 'pmp$clear_wait_inhibited' }

    pmk$get_parent_calling_ring = pmk$base + 63,
    {E 'pmp$get_parent_calling_ring' }
    {X 'pmp$get_parent_calling_ring' }

    pmk$get_parent_task_id = pmk$base + 64,
    {E 'pmp$get_parent_task_id' }
    {X 'pmp$get_parent_task_id' }

    pmk$reserve_stack_segments = pmk$base + 65,
    {E 'pmp$reserve_stack_segments' }
    {X 'pmp$reserve_stack_segments' }

    pmk$compute_date_time_increment = pmk$base + 66,
    {E 'pmp$compute_date_time_increment' }
    {X 'pmp$compute_date_time_increment' }

    pmk$compute_day_of_week = pmk$base + 67,
    {E 'pmp$compute_day_of_week' }
    {X 'pmp$compute_day_of_week' }

    pmk$compute_local_date_time = pmk$base + 68,
    {E 'pmp$compute_local_date_time' }
    {X 'pmp$compute_local_date_time' }

    pmk$compute_universal_date_time = pmk$base + 69,
    {E 'pmp$compute_universal_date_time' }
    {X 'pmp$compute_universal_date_time' }

    pmk$delay = pmk$base + 70,
    {E 'pmp$delay' }
    {X 'pmp$delay' }

    pmk$cycle = pmk$base + 71,
    {E 'pmp$cycle' }
    {X 'pmp$cycle' }

    pmk$disestablish_end_handler = pmk$base + 72,
    {E 'pmp$disestablish_end_handler' }
    {X 'pmp$disestablish_end_handler' }

    pmk$disestab_end_hndlr_in_ring = pmk$base + 73,
    {E 'pmp$disestab_end_hndlr_in_ring' }
    {X 'pmp$disestab_end_hndlr_in_ring' }

    pmk$establish_end_handler = pmk$base + 74,
    {E 'pmp$establish_end_handler' }
    {X 'pmp$establish_end_handler' }

    pmk$establish_end_hndlr_in_ring = pmk$base + 75,
    {E 'pmp$establish_end_hndlr_in_ring' }
    {X 'pmp$establish_end_hndlr_in_ring' }

    pmk$enable_system_conditions = pmk$base + 76,
    {E 'pmp$enable_system_conditions' }
    {X 'pmp$enable_system_conditions' }

    pmk$establish_ch_in_block = pmk$base + 77,
    {E 'pmp$establish_ch_in_block' }
    {X 'pmp$establish_ch_in_block' }

    pmk$inhibit_system_conditions = pmk$base + 78,
    {E 'pmp$inhibit_system_conditions' }
    {X 'pmp$inhibit_system_conditions' }

    pmk$get_time_zone = pmk$base + 79,
    {E 'pmp$get_time_zone' }
    {X 'pmp$get_time_zone' }

    pmk$get_universal_date_time = pmk$base + 80,
    {E 'pmp$get_universal_date_time' }
    {X 'pmp$get_universal_date_time' }

    pmk$get_binary_cpu_attributes = pmk$base + 81,
    {E 'pmp$get_binary_cpu_attributes' }
    {X 'pmp$get_binary_cpu_attributes' }

    pmk$get_binary_mainframe_id = pmk$base + 82,
    {E 'pmp$get_binary_mainframe_id' }
    {X 'pmp$get_binary_mainframe_id' }

    pmk$get_binary_processor_id = pmk$base + 83,
    {E 'pmp$get_binary_processor_id' }
    {X 'pmp$get_binary_processor_id' }

    pmk$get_cpu_attributes = pmk$base + 84,
    {E 'pmp$get_cpu_attributes' }
    {X 'pmp$get_cpu_attributes' }

    pmk$get_day_of_week = pmk$base + 85,
    {E 'pmp$get_day_of_week' }
    {X 'pmp$get_day_of_week' }

    pmk$get_mainframe_id = pmk$base + 86,
    {E 'pmp$get_mainframe_id' }
    {X 'pmp$get_mainframe_id' }

    pmk$get_page_size = pmk$base + 87,
    {E 'pmp$get_page_size' }
    {X 'pmp$get_page_size' }

    pmk$get_processor_id = pmk$base + 88,
    {E 'pmp$get_processor_id' }
    {X 'pmp$get_processor_id' }

    pmk$load_from_library = pmk$base + 89,
    {E 'pmp$load_from_library' }
    {X 'pmp$load_from_library' }

    pmk$get_unique_name = pmk$base + 90,
    {E 'pmp$get_unique_name' }
    {X 'pmp$get_unique_name' }

{ NOTE:
{ This value is used in the ASSEMBLE deck PMM$JOB_TEMPLATE_TRAP_HANDLER
    pmk$purge_instruction_stack = pmk$base + 91,
    {E 'pmp$purge_instruction_stack' }
    {X 'pmp$purge_instruction_stack' }

    pmk$remove_entry_point = pmk$base + 92,
    {E 'pmp$remove_entry_point' }
    {X 'pmp$remove_entry_point' }

    pmk$ready_task_and_wait = pmk$base + 93,
    {E 'pmp$ready_task_and_wait' }
    {X 'pmp$ready_task_and_wait' }

    pmk$set_process_interval_timer = pmk$base + 94,
    {E 'pmp$set_process_interval_timer' }
    {X 'pmp$set_process_interval_timer' }

    pmk$execute_procedure = pmk$base + 95,
    {E 'pmp$execute_procedure' }
    {X 'pmp$execute_procedure' 'status ' I20 }

    pmk$establish_segment_access = pmk$base + 96,
    {E 'pmp$establish_segment_access' }
    {X 'pmp$establish_segment_access' }

    pmk$disestablish_segment_access = pmk$base + 97,
    {E 'pmp$disestablish_segment_access' }
    {X 'pmp$disestablish_segment_access' }

    pmk$close_common_block_file = pmk$base + 98,
    {E 'pmp$close_common_block_file' }
    {X 'pmp$close_common_block_file' }

    pmk$load_entry_point = pmk$base + 99,
    {E 'pmp$load_entry_point' }
    {X 'pmp$load_entry_point' }

    pmk$reinitialize_module = pmk$base + 100,
    {E 'pmp$reinitialize_module' }
    {X 'pmp$reinitialize_module' }

    pmk$select_processor = pmk$base + 101,
    {E 'pmp$select_processor' }
    {X 'pmp$select_processor' }

    pmk$deselect_processor = pmk$base + 102,
    {E 'pmp$deselect_processor' }
    {X 'pmp$deselect_processor' }

    pmk$validate_previous_save_area = pmk$base + 103,
    {E 'pmp$validate_previous_save_area' }
    {X 'pmp$validate_previous_save_area' }

    pmk$initial_debug_mode_on = pmk$base + 104,
    {E 'pmp$initial_debug_mode_on' }
    {X 'pmp$initial_debug_mode_on' }

    pmk$get_debug_abort_file = pmk$base + 105,
    {E 'pmp$get_debug_abort_file' }
    {X 'pmp$get_debug_abort_file' }

    pmk$get_debug_input_file = pmk$base + 106,
    {E 'pmp$get_debug_input_file' }
    {X 'pmp$get_debug_input_file' }

    pmk$get_debug_output_file = pmk$base + 107,
    {E 'pmp$get_debug_output_file' }
    {X 'pmp$get_debug_output_file' }

    pmk$push_task_debug_mode = pmk$base + 108,
    {E 'pmp$push_task_debug_mode' }
    {X 'pmp$push_task_debug_mode' }

    pmk$pop_task_debug_mode = pmk$base + 109,
    {E 'pmp$pop_task_debug_mode' }
    {X 'pmp$pop_task_debug_mode' }

    pmk$set_task_debug_mode = pmk$base + 110,
    {E 'pmp$set_task_debug_mode' }
    {X 'pmp$set_task_debug_mode' }

    pmk$task_debug_mode_on = pmk$base + 111,
    {E 'pmp$task_debug_mode_on' }
    {X 'pmp$task_debug_mode_on' }

    pmk$establish_debug_cff = pmk$base + 112,
    {E 'pmp$establish_debug_cff' }
    {X 'pmp$establish_debug_cff' }

    pmk$define_debug_entry = pmk$base + 113,
    {E 'pmp$define_debug_entry' }
    {X 'pmp$define_debug_entry' }

    pmk$get_debug_entry = pmk$base + 114,
    {E 'pmp$get_debug_entry' }
    {X 'pmp$get_debug_entry' }

    pmk$modify_debug_entry = pmk$base + 115,
    {E 'pmp$modify_debug_entry' }
    {X 'pmp$modify_debug_entry' }

    pmk$remove_debug_entry = pmk$base + 116,
    {E 'pmp$remove_debug_entry' }
    {X 'pmp$remove_debug_entry' }

    pmk$get_debug_id = pmk$base + 117,
    {E 'pmp$get_debug_id' }
    {X 'pmp$get_debug_id' }

    pmk$task_debug_ring = pmk$base + 118,
    {E 'pmp$task_debug_ring' }
    {X 'pmp$task_debug_ring' }

    pmk$change_default_prog_options = pmk$base + 119,
    {E 'pmp$change_default_prog_options' }
    {X 'pmp$change_default_prog_options' }

    pmk$change_job_library_list = pmk$base + 120,
    {E 'pmp$change_job_library_list' }
    {X 'pmp$change_job_library_list' }

    pmk$pop_inhibit_termination = pmk$base + 121,
    {E 'pmp$pop_inhibit_termination' }
    {X 'pmp$pop_inhibit_termination' }

    pmk$push_inhibit_termination = pmk$base + 122,
    {E 'pmp$push_inhibit_termination' }
    {X 'pmp$push_inhibit_termination' }

    pmk$terminated_while_inhibited = pmk$base + 123,
    {E 'pmp$terminated_while_inhibited' }
    {X 'pmp$terminated_while_inhibited' }

    pmk$cause_inter_job_condition = pmk$base + 124,
    {E 'pmp$cause_inter_job_condition' }
    {X 'pmp$cause_inter_job_condition' }

    pmk$get_library_dictionaries = pmk$base + 125,
    {E 'pmp$get_library_dictionaries' }
    {X 'pmp$get_library_dictionaries' }

    pmk$find_module_in_library = pmk$base + 126,
    {E 'pmp$find_module_in_library' }
    {X 'pmp$find_module_in_library' }

    pmk$open_object_library = pmk$base + 127,
    {E 'pmp$open_object_library' }
    {X 'pmp$open_object_library' }

    pmk$close_object_library = pmk$base + 128,
    {E 'pmp$close_object_library' }
    {X 'pmp$close_object_library' }

    pmk$get_os_build_level = pmk$base + 129,
    {E 'pmp$get_os_build_level' }
    {X 'pmp$get_os_build_level' }

    pmk$restore_program_state = pmk$base + 130,
    {E 'pmp$restore_program_state' }
    {X 'pmp$restore_program_state' }

    pmk$save_program_state = pmk$base + 131,
    {E 'pmp$save_program_state' }
    {X 'pmp$save_program_state' }

    pmk$compute_time_dif_in_seconds = pmk$base + 132,
    {E 'pmp$compute_time_dif_in_seconds' }
    {X 'pmp$compute_time_dif_in_seconds' }

    pmk$open_common_block_file = pmk$base + 133,
    {E 'pmp$open_common_block_file' }
    {X 'pmp$open_common_block_file' }

    pmk$create_ada_heap = pmk$base + 134,
    {E 'pmp$create_ada_heap' }
    {X 'pmp$create_ada_heap' }

    pmk$set_relative_priority = pmk$base + 135,
    {E 'pmp$set_relative_priority' }
    {X 'pmp$set_relative_priority' }

    pmk$cause_intra_job_condition = pmk$base + 136,
    {E 'pmp$cause_intra_job_condition' }
    {X 'pmp$cause_intra_job_condition' }

    pmk$change_transient_to_write = pmk$base + 137,
    {E 'pmp$change_transient_to_write' }
    {X 'pmp$change_transient_to_write' }

    pmk$change_transient_to_execute = pmk$base + 138,
    {E 'pmp$change_transient_to_execute' }
    {X 'pmp$change_transient_to_execute' }

    pmk$change_transient_to_binding = pmk$base + 139,
    {E 'pmp$change_transient_to_binding' }
    {X 'pmp$change_transient_to_binding' }

    pmk$change_binding_to_write = pmk$base + 140,
    {E 'pmp$change_binding_to_write' }
    {X 'pmp$change_binding_to_write' }

    pmk$expand_segment = pmk$base + 141,
    {E 'pmp$expand_segment' }
    {X 'pmp$expand_segment' }

    pmk$begin_subsystem_activity = pmk$base + 142,
    {E 'pmp$begin_subsystem_activity' }
    {X 'pmp$begin_subsystem_activity' }

    pmk$revoke_program_termination = pmk$base + 143,
    {E 'pmp$revoke_program_termination' }
    {X 'pmp$revoke_program_termination' }

    pmk$zero_out_table = pmk$base + 144,
    {E 'pmp$zero_out_table' }
    {X 'pmp$zero_out_table' }

    pmk$establish_ch_outside_block = pmk$base + 145,
    {E 'pmp$establish_ch_outside_block' }
    {X 'pmp$establish_ch_outside_block' }

    pmk$limit = pmk$base + 149;

*copyc OSK$KEYPOINTS
