PROCEDURE (HIDDEN) cmp$activate_configuration (
  deadstart_phase, dp: key
      installation, reinstallation, continuation
    keyend = $optional
  operator_intervention_required, oir: boolean = $required
  prolog_procedure_name, ppn: name = $required
  operator_intervention_occurred, oio: (VAR) boolean = $required
  status)

"$FORMAT=OFF
VAR
   ignore_status: status
   intervene: boolean=operator_intervention_required
   local_status: status
   prolog_status: status
   utility_status: status
VAREND

"$FORMAT=ON

  IF prolog_procedure_name <> none THEN
    IF deadstart_phase = installation THEN
      LOGICAL_CONFIGURATION_UTILITY status=utility_status
        cmp$execute_prolog_commands ..
              prolog_procedure_name=prolog_procedure_name ..
              prolog_file=lcu_mainframe_subcommands status=prolog_status
      QUIT
      IF NOT prolog_status.normal THEN
        rap$display_message message_module=sysdp_messages ..
              message_name=report_prolog_error ..
              message_parameters=$string(prolog_procedure_name) to=$output
        display_value prolog_status o=$output
        intervene = true
      IFEND
      IF NOT utility_status.normal THEN
        rap$display_message message_module=sysdp_messages ..
              message_name=report_lcu_error ..
              message_parameters=$string(prolog_procedure_name) to=$output
        display_value utility_status o=$output
        intervene = true
      IFEND
    ELSEIF deadstart_phase = reinstallation THEN
      rap$display_message message_module=sysdp_messages ..
            message_name=report_prolog_suppressed to=$output
    IFEND
  IFEND

  IF intervene THEN
    cmp$perform_lcu_intervention deadstart_phase=deadstart_phase ..
          status=ignore_status
  ELSEIF deadstart_phase <> installation THEN
    LOGICAL_CONFIGURATION_UTILITY status=local_status
    QUIT
    IF local_status.normal THEN
      rap$display_message message_module=sysdp_messages ..
            message_name= configuration_activated to=$output
    ELSE
      intervene = true
      rap$display_message message_module=sysdp_messages ..
            message_name=report_lcu_error to=$output
      display_value local_status o=$output
      cmp$perform_lcu_intervention deadstart_phase=deadstart_phase ..
            status=ignore_status
    IFEND
  IFEND

  operator_intervention_occurred = intervene

PROCEND cmp$activate_configuration
