?? RIGHT := 110 ??
?? NEWTITLE := 'SCL test harness support' ??
MODULE clm$test_harness_scl_support;

{
{ This module contains support code for the SCL test harness
{ in the following groups:
{   1. variables,
{   2. interfaces,
{   3. command processors.
{

*copyc clc$compiling_for_test_harness
*copyc fsc$compiling_for_test_harness

?? NEWTITLE := 'Global Declarations', EJECT ??
?? PUSH (LISTEXT := ON) ??
*copyc amt$file_identifier
*copyc amt$local_file_name
*copyc avt$account_name
*copyc avt$conditional_capabilities
*copyc avt$project_name
*copyc avt$validation_record
*copyc bat$process_pt_work_list
*copyc bat$process_pt_results
*copyc clt$value
*copyc clt$command_table
*copyc clt$connected_file
*copyc clt$name
*copyc clt$parameter_substitutions
*copyc clt$parameter_value_table
*copyc clt$unbundled_pdt
*copyc clt$work_area
*copyc clv$user_identification
*copyc fmt$cycle_description
*copyc fmt$path_handle
*copyc fmt$cycle_description
*copyc fst$evaluated_file_reference
*copyc fst$file_reference
*copyc jmt$application_attributes
*copyc jmt$application_index
*copyc jmt$application_name
*copyc jmt$job_class
*copyc jmt$service_accumulator
*copyc osd$code_base_pointer
*copyc osd$virtual_address
*copyc oss$job_pageable
*copyc oss$job_paged_literal
*copyc oss$mainframe_pageable
*copyc oss$task_shared
*copyc ost$deadstart_phase
*copyc ost$name
*copyc ost$name_reference
*copyc ost$stack_frame_save_area
*copyc ost$status
*copyc ost$user_identification
*copyc pmt$stack_segment
*copyc rmt$device_class
?? POP ??
*copyc bap$process_pt_request
*copyc pmp$load
*copyc pmp$log_ascii
*copyc pmp$test_condition_handler
?? TITLE := 'Stubbed variables', EJECT ??

  VAR
    avv$logged_in: [STATIC, oss$job_pageable] boolean := FALSE;

  VAR
    avv$active_sou_capabilities: [XDCL, oss$task_shared] avt$conditional_capabilities
      := -$avt$conditional_capabilities[];

  VAR
    amv$nil_file_identifier: [XDCL, READ, oss$job_paged_literal] amt$file_identifier :=
          [0, 1];
  VAR
    clv$command_statistics_enabled: [XDCL, oss$mainframe_pageable] boolean := FALSE;

  VAR
    clv$operator_commands: [XDCL, READ, oss$job_paged_literal] ^clt$command_table := NIL;

  VAR
    clv$secure_logging_activated: [XDCL, oss$mainframe_pageable] boolean := FALSE;

  VAR
    clv$system_logging_activated: [XDCL, oss$mainframe_pageable] boolean := FALSE;

  VAR
    jmv$job_history_active: [XDCL, oss$mainframe_pageable] boolean := FALSE;

  VAR
    mmv$max_segment_length: [XDCL] integer := 150000000;

  VAR
    pmv$unseen_mail_pending: [XDCL, oss$task_shared] boolean := FALSE;

?? TITLE := 'Stubbed interfaces', EJECT ??

  FUNCTION [XDCL] avp$already_logged_in: boolean;

    avp$already_logged_in := avv$logged_in;

  FUNCEND avp$already_logged_in;
?? SKIP := 3 ??

  PROCEDURE [XDCL] avp$begin_job_account
    (    family_name: ost$family_name;
         user_name: ost$user_name;
         account_name: avt$account_name;
         project_name: avt$project_name;
         user_supplied_job_name: ost$name;
         job_class: jmt$job_class;
     VAR status: ost$status);

    status.normal := TRUE;

  PROCEND avp$begin_job_account;
?? SKIP := 3 ??

  PROCEDURE [XDCL] avp$activate_family_admin
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

     status.normal := TRUE;

  PROCEND avp$activate_family_admin;
?? SKIP := 3 ??

  PROCEDURE [XDCL] avp$activate_system_admin
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

    status.normal := TRUE;

  PROCEND avp$activate_system_admin;
?? SKIP := 3 ??

  PROCEDURE [XDCL] avp$deactivate_family_admin
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

     status.normal := TRUE;

   PROCEND avp$deactivate_family_admin;
?? SKIP := 3 ??

  PROCEDURE [XDCL] avp$deactivate_system_admin
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

     status.normal := TRUE;

   PROCEND avp$deactivate_system_admin;
?? SKIP := 3 ??

  PROCEDURE [XDCL] avp$end_job_account
    (VAR status: ost$status);

    status.normal := TRUE;

  PROCEND avp$end_job_account;
?? SKIP := 3 ??

  FUNCTION [XDCL] avp$get_account_project_specif: boolean;

    avp$get_account_project_specif := FALSE;

  FUNCEND avp$get_account_project_specif;
?? SKIP := 3 ??

  PROCEDURE [XDCL] avp$initialize_constrain
    (VAR status: ost$status);

    status.normal := TRUE;

  PROCEND avp$initialize_constrain;
?? SKIP := 3 ??

  PROCEDURE [XDCL] avp$mark_login_as_complete
    (VAR status: ost$status);

    status.normal := TRUE;
    avv$logged_in := TRUE;

  PROCEND avp$mark_login_as_complete;
?? SKIP := 3 ??

  PROCEDURE [XDCL] avp$set_account_project
    (    account: avt$account_name;
         project: avt$project_name;
     VAR status: ost$status);

    status.normal := TRUE;

  PROCEND avp$set_account_project;
?? SKIP := 3 ??
  ?IF NOT fsc$compiling_for_test_harness THEN

    PROCEDURE [XDCL] bap$close_obsolete_target_files
      (    connected_files: ^clt$connected_files);

    PROCEND bap$close_obsolete_target_files;

  PROCEDURE [XDCL] bap$set_private_read (file: fst$file_reference,
        private_read: boolean;
    VAR status: ost$status);

  PROCEND bap$set_private_read;
  ?IFEND
?? SKIP := 3 ??

  PROCEDURE [XDCL] fmp$evaluate_path
    (    file: fst$file_reference;
         process_pt_work_list: bat$process_pt_work_list;
     VAR evaluated_file_reference: fst$evaluated_file_reference;
     VAR cycle_description: ^fmt$cycle_description;
     VAR status: ost$status);

      status.normal := TRUE;
      evaluated_file_reference.path_handle_info.path_handle_present := FALSE;

  PROCEND fmp$evaluate_path;
?? SKIP := 3 ??

  PROCEDURE [XDCL] fmp$file_is_local
    (    local_file_name: amt$local_file_name;
     VAR file_is_local: boolean);

    file_is_local := TRUE;

  PROCEND fmp$file_is_local;
?? SKIP := 3 ??

  PROCEDURE [XDCL] fmp$process_pt_request (
        process_pt_work_list: bat$process_pt_work_list;
        local_file_name: amt$local_file_name;
    VAR evaluated_file_reference: fst$evaluated_file_reference;
    VAR cycle_description: ^fmt$cycle_description;
    VAR process_pt_results: bat$process_pt_results;
    VAR status: ost$status);

     status.normal := TRUE;
     bap$process_pt_request (process_pt_work_list, local_file_name,
           evaluated_file_reference, process_pt_results, status);

  PROCEND fmp$process_pt_request;

?? PUSH (LISTEXT := ON) ??
  ?IF NOT fsc$compiling_for_test_harness THEN
?? SKIP := 3 ??

  PROCEDURE [XDCL] fmp$request_null_device
    (    null_device_use: rmt$device_class;
     VAR evaluated_file_reference: {i/o} fst$evaluated_file_reference;
     VAR status: ost$status);

      status.normal := TRUE;

    PROCEND fmp$request_null_device;
  ?IFEND
?? SKIP := 3 ??

  PROCEDURE [XDCL] nfp$verify_family
   (    family_name: ost$family_name;
    VAR family_is_local: boolean;
    VAR status: ost$status);


    status.normal := TRUE;
    family_is_local := family_name <> 'REMOTE';

  PROCEND nfp$verify_family;
?? SKIP := 3 ??

  PROCEDURE [XDCL] avp$get_capability
    (    field_name: ost$name;
         record_level: avt$validation_record;
     VAR capability: boolean;
     VAR status: ost$status);


    status.normal := TRUE;
    capability := TRUE;

  PROCEND avp$get_capability;
?? SKIP := 3 ??

  PROCEDURE [XDCL] osp$initialize_virtual_system
    (    deadstart_phase: ost$deadstart_phase);

  PROCEND osp$initialize_virtual_system;
?? SKIP := 3 ??

  PROCEDURE [XDCL] osp$run_virtual_system
    (    system_restart: boolean;
    VAR status: ost$status);

    status.normal := TRUE;

  PROCEND osp$run_virtual_system;
?? SKIP := 3 ??

  PROCEDURE [XDCL] pmp$dispose_interactive_cond
    (    interactive_condition: ift$interactive_condition);

    VAR
      condition: pmt$condition,
      ignore_status: ost$status,
      save_area: ^ost$stack_frame_save_area;

    condition.selector := ifc$interactive_condition;
    condition.interactive_condition := interactive_condition;
    save_area := #PREVIOUS_SAVE_AREA ();
    pmp$test_condition_handler (condition, save_area, ignore_status);

  PROCEND pmp$dispose_interactive_cond;
?? SKIP := 3 ??

  PROCEDURE [XDCL] pmp$load_from_library
    (    name: pmt$program_name;
         ring: ost$ring;
         global_key: ost$key_lock_value;
         kind: pmt$loaded_address_kind;
         library: ^SEQ ( * );
         library_name: amt$local_file_name;
     VAR address: pmt$loaded_address;
     VAR status: ost$status);

    pmp$load (name, kind, address, status);

  PROCEND pmp$load_from_library;
?? SKIP := 3 ??

  PROCEDURE [XDCL] pmp$outward_call (callee: ^ost$external_code_base_pointer;
    ring: ost$ring;
    parameter_list: ^cell;
    preceding_sfsa: ^ost$stack_frame_save_area;
    VAR stack_segment: ^pmt$stack_segment);

  PROCEND pmp$outward_call;
?? SKIP := 3 ??

  PROCEDURE [XDCL] rap$establish_variables
    (VAR status: ost$status);

    status.normal := TRUE;

  PROCEND rap$establish_variables;
?? SKIP := 3 ??

  PROCEDURE [XDCL] syp$store_system_constant
    (    name: string ( * );
         index: integer;
         value: integer;
     VAR status: ost$status);

    status.normal := TRUE;

  PROCEND syp$store_system_constant;
?? SKIP := 3 ??

  PROCEDURE [XDCL] jmp$disable_user_breaks;

  PROCEND jmp$disable_user_breaks;
?? SKIP := 3 ??

  PROCEDURE [XDCL] jmp$enable_exit_processing;

  PROCEND jmp$enable_exit_processing;
?? SKIP := 3 ??

  PROCEDURE [XDCL] jmp$enable_terminal_io;

  PROCEND jmp$enable_terminal_io;
?? SKIP := 3 ??

  PROCEDURE [XDCL] jmp$enable_user_breaks;

  PROCEND jmp$enable_user_breaks;
?? SKIP := 3 ??
  PROCEDURE [XDCL] jmp$end_application_scheduling
    (VAR status: ost$status);

    status.normal := TRUE;

  PROCEND jmp$end_application_scheduling;
?? SKIP := 3 ??
  PROCEDURE [XDCL] jmp$get_job_class_prolog
    (VAR job_class_prolog: fst$file_reference;
     VAR status: ost$status);

    status.normal := TRUE;
    job_class_prolog := '';

  PROCEND jmp$get_job_class_prolog;
?? SKIP := 3 ??

  PROCEDURE [XDCL] jmp$inhibit_exit_processing;

  PROCEND jmp$inhibit_exit_processing;
?? SKIP := 3 ??
?? NEWTITLE := '[XDCL] jmp$log_edited_login_command', EJECT ??

  PROCEDURE [XDCL] jmp$log_edited_login_command
    (VAR status: ost$status);

    CONST
      line_size_maximum = 2000;

    VAR
      ascii_logset: pmt$ascii_logset,
      line: string (line_size_maximum),
      line_size: 0 .. line_size_maximum;

?? NEWTITLE := '[INLINE] add_to_line', EJECT ??

    PROCEDURE [INLINE] add_to_line
      (    text: string ( * ));

      line (line_size + 1, STRLENGTH (text)) := text;
      line_size := line_size + STRLENGTH (text);
      WHILE (line_size > 0) AND (line (line_size) = ' ') DO
        line_size := line_size - 1;
      WHILEND;

    PROCEND add_to_line;
?? OLDTITLE ??

    status.normal := TRUE;

    line_size := 0;
    add_to_line ('LOGIN, LOGIN_USER=');
    add_to_line (clv$user_identification.user.value (1, clv$user_identification.user.size));
    add_to_line (', LOGIN_FAMILY=');
    add_to_line (clv$user_identification.family.value (1, clv$user_identification.family.size));
    add_to_line (', LOGIN_ACCOUNT=');
    add_to_line ('NONE');
    add_to_line (', LOGIN_PROJECT=');
    add_to_line ('NONE');
    add_to_line (', JOB_CLASS=SCL_TEST_HARNESS');

    ascii_logset := $pmt$ascii_logset [pmc$job_log];

    pmp$log_ascii (line (1, line_size), ascii_logset, pmc$msg_origin_command, status);

  PROCEND jmp$log_edited_login_command;
?? SKIP := 3 ??
  PROCEDURE [XDCL] jmp$read_application_record
    (    application_name: jmt$application_name;
     VAR application_index: {input, output} jmt$application_index;
     VAR application_record: jmt$application_attributes;
     VAR status: ost$status);

     status.normal := TRUE;

  PROCEND jmp$read_application_record;

?? SKIP := 3 ??
  PROCEDURE [XDCL] jmp$set_application_scheduling
    (    application_attributes: jmt$application_attributes;
         new_service_accumulator: jmt$service_accumulator;
     VAR old_service_accumulator: jmt$service_accumulator;
     VAR status: ost$status);

     status.normal := TRUE;

   PROCEND jmp$set_application_scheduling;

?? SKIP := 3 ??
  PROCEDURE [XDCL] jmp$reset_dispatching_priority;

  PROCEND jmp$reset_dispatching_priority;
?? TITLE := 'Stubbed command processors', EJECT ??

  PROCEDURE [XDCL] avp$change_password_command
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND avp$change_password_command;

  PROCEDURE [XDCL] avp$emit_permanent_file_stats
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND avp$emit_permanent_file_stats;

  PROCEDURE [XDCL] clp$activate_keypoints
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND clp$activate_keypoints;

  PROCEDURE [XDCL] clp$deactivate_keypoints
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND clp$deactivate_keypoints;

  PROCEDURE [XDCL] clp$display_job_attr_def_cmnd
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND clp$display_job_attr_def_cmnd;

  PROCEDURE [XDCL] clp$display_job_data_command
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND clp$display_job_data_command;

  PROCEDURE [XDCL] clp$display_job_history_command
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND clp$display_job_history_command;

  PROCEDURE [XDCL] clp$display_keypoint_env
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND clp$display_keypoint_env;

  PROCEDURE [XDCL] clp$display_keypoint_file
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND clp$display_keypoint_file;

  PROCEDURE [XDCL] clp$display_multipro_opt_cmd
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND clp$display_multipro_opt_cmd;

  PROCEDURE [XDCL] clp$display_output_history_cmd
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND clp$display_output_history_cmd;

  PROCEDURE [XDCL] clp$display_system_data_command
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND clp$display_system_data_command;

  PROCEDURE [XDCL] clp$release_spi_environment
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND clp$release_spi_environment;

  PROCEDURE [XDCL] clp$reserve_spi_environment
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND clp$reserve_spi_environment;

  PROCEDURE [XDCL] clp$start_spi_collection
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND clp$start_spi_collection;

  PROCEDURE [XDCL] clp$stop_spi_collection
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND clp$stop_spi_collection;

  PROCEDURE [XDCL] mmp$manage_memory
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND mmp$manage_memory;

  PROCEDURE [XDCL] ofp$send_operator_message_cmd
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND ofp$send_operator_message_cmd;

  PROCEDURE [XDCL] pfp$change_catalog_contents_cmd
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND pfp$change_catalog_contents_cmd;

  PROCEDURE [XDCL] pfp$move_classes_command
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND pfp$move_classes_command;

  PROCEDURE [XDCL] pfp$process_storage
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND pfp$process_storage;

  PROCEDURE [XDCL] pfp$_update_perm_file_space_lim
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND pfp$_update_perm_file_space_lim;

  PROCEDURE [XDCL] sfp$_activate_job_statistic
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND sfp$_activate_job_statistic;

  PROCEDURE [XDCL] sfp$activate_local_stat_command
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND sfp$activate_local_stat_command;

  PROCEDURE [XDCL] sfp$activate_sys_stat_command
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND sfp$activate_sys_stat_command;

  PROCEDURE [XDCL] sfp$_change_job_limit
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND sfp$_change_job_limit;

  PROCEDURE [XDCL] sfp$_deactivate_job_statistic
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND sfp$_deactivate_job_statistic;

  PROCEDURE [XDCL] sfp$deactivate_local_stat_cmd
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND sfp$deactivate_local_stat_cmd;

  PROCEDURE [XDCL] sfp$deactivate_sys_stat_command
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND sfp$deactivate_sys_stat_command;

  PROCEDURE [XDCL] sfp$_display_active_job_statist
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND sfp$_display_active_job_statist;

  PROCEDURE [XDCL] sfp$_display_active_system_stat
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND sfp$_display_active_system_stat;

  PROCEDURE [XDCL] sfp$_display_job_limit
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND sfp$_display_job_limit;

  PROCEDURE [XDCL] sfp$_set_job_limit
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND sfp$_set_job_limit;

  ?IF NOT fsc$compiling_for_test_harness THEN

    PROCEDURE [XDCL] rhp$_get_file
      (    parameter_list: clt$parameter_list;
       VAR status: ost$status);

    PROCEND rhp$_get_file;
  ?IFEND

  PROCEDURE [XDCL] clp$issue_keypoint
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND clp$issue_keypoint;

  PROCEDURE [XDCL] clp$issue_string_as_keypoint
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND clp$issue_string_as_keypoint;

  PROCEDURE [XDCL] clp$link_user_command
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND clp$link_user_command;

  PROCEDURE [XDCL] clp$release_keypoint_env
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND clp$release_keypoint_env;

  ?IF NOT fsc$compiling_for_test_harness THEN

    PROCEDURE [XDCL] rhp$_replace_file
      (    parameter_list: clt$parameter_list;
       VAR status: ost$status);

    PROCEND rhp$_replace_file;
  ?IFEND

  PROCEDURE [XDCL] clp$request_op_action_command
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND clp$request_op_action_command;

  PROCEDURE [XDCL] clp$reserve_keypoint_env
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND clp$reserve_keypoint_env;

  PROCEDURE [XDCL] clp$set_multipro_opt_cmd
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND clp$set_multipro_opt_cmd;

  PROCEDURE [XDCL] clp$set_spy_identifier
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND clp$set_spy_identifier;

  PROCEDURE [XDCL] clp$start_keypoint_collection
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND clp$start_keypoint_collection;

  PROCEDURE [XDCL] clp$stop_keypoint_collection
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND clp$stop_keypoint_collection;

  PROCEDURE [XDCL] clp$test_keypoint_collection
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND clp$test_keypoint_collection;

  PROCEDURE [XDCL] jmp$wait_system_idle_comnd
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND jmp$wait_system_idle_comnd;

  PROCEDURE [XDCL] nfp$_create_remote_validation
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND nfp$_create_remote_validation;

  PROCEDURE [XDCL] nfp$_delete_remote_validation
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND nfp$_delete_remote_validation;

  PROCEDURE [XDCL] nfp$_submit_multi_record_job
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND nfp$_submit_multi_record_job;

  PROCEDURE [XDCL] nfp$display_remote_validation
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND nfp$display_remote_validation;

  PROCEDURE [XDCL] nfp$manage_remote_files
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND nfp$manage_remote_files;

  PROCEDURE [XDCL] osp$deactivate_job_template
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);
  PROCEND osp$deactivate_job_template;

  PROCEDURE [XDCL] rhp$_change_link_attributes
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND rhp$_change_link_attributes;

  PROCEDURE [XDCL] rhp$_set_link_attributes
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND rhp$_set_link_attributes;

  PROCEDURE [XDCL] rhp$display_link_attributes
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND rhp$display_link_attributes;

  PROCEDURE [XDCL] clp$suspend_simulation_command
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

  PROCEND clp$suspend_simulation_command;

?? TITLE := 'Stubbed function processors', EJECT ??
  ?IF NOT fsc$compiling_for_test_harness THEN

  PROCEDURE [XDCL] avp$$security_option
    (    parameter_list: clt$parameter_list;
     VAR work_area: ^clt$work_area;
     VAR result: ^clt$data_value;
     VAR status: ost$status);

    status.normal := TRUE;

  PROCEND avp$$security_option;

  PROCEDURE [XDCL] avp$$validation_level
    (    parameter_list: clt$parameter_list;
     VAR work_area: ^clt$work_area;
     VAR result: ^clt$data_value;
     VAR status: ost$status);

    status.normal := TRUE;

  PROCEND avp$$validation_level;

  PROCEDURE [XDCL] avp$$job_validation
    (    parameter_list: clt$parameter_list;
     VAR work_area: ^clt$work_area;
     VAR result: ^clt$data_value;
     VAR status: ost$status);

    status.normal := TRUE;

  PROCEND avp$$job_validation;
  ?IFEND

  PROCEDURE [XDCL] nfp$$remote_validation
    (    parameter_list: clt$parameter_list;
     VAR work_area: ^clt$work_area;
     VAR result: ^clt$data_value;
     VAR status: ost$status);

  PROCEND nfp$$remote_validation;

  PROCEDURE [XDCL] sfp$$job_limit
    (    parameter_list: clt$parameter_list;
     VAR work_area: ^clt$work_area;
     VAR result: ^clt$data_value;
     VAR status: ost$status);

  PROCEND sfp$$job_limit;
?? OLDTITLE ??

MODEND clm$test_harness_scl_support;

