mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 19:24:25 +00:00
Colorify SCSI MODE PAGE 0Ah
This commit is contained in:
@@ -179,88 +179,70 @@ public static partial class Modes
|
||||
ModePage_0A page = modePage.Value;
|
||||
var sb = new StringBuilder();
|
||||
|
||||
sb.AppendLine(Localization.SCSI_Control_mode_page);
|
||||
sb.AppendLine($"[bold][blue]{Localization.SCSI_Control_mode_page}[/][/]");
|
||||
|
||||
if(page.PS) sb.AppendLine("\t" + Localization.Parameters_can_be_saved);
|
||||
if(page.PS) sb.AppendLine($"\t[slateblue1]{Localization.Parameters_can_be_saved}[/]");
|
||||
|
||||
if(page.RLEC) sb.AppendLine("\t" + Localization.If_set_target_shall_report_log_exception_conditions);
|
||||
if(page.RLEC)
|
||||
sb.AppendLine($"\t[slateblue1]{Localization.If_set_target_shall_report_log_exception_conditions}[/]");
|
||||
|
||||
if(page.DQue) sb.AppendLine("\t" + Localization.Tagged_queuing_is_disabled);
|
||||
if(page.DQue) sb.AppendLine($"\t[slateblue1]{Localization.Tagged_queuing_is_disabled}[/]");
|
||||
|
||||
if(page.EECA) sb.AppendLine("\t" + Localization.Extended_Contingent_Allegiance_is_enabled);
|
||||
if(page.EECA) sb.AppendLine($"\t[slateblue1]{Localization.Extended_Contingent_Allegiance_is_enabled}[/]");
|
||||
|
||||
if(page.RAENP)
|
||||
{
|
||||
sb.AppendLine("\t" +
|
||||
Localization
|
||||
.Target_may_issue_an_asynchronous_event_notification_upon_completing_its_initialization);
|
||||
}
|
||||
sb.AppendLine($"\t[slateblue1]{Localization.Target_may_issue_an_asynchronous_event_notification_upon_completing_its_initialization}[/]");
|
||||
|
||||
if(page.UAAENP)
|
||||
{
|
||||
sb.AppendLine("\t" +
|
||||
Localization
|
||||
.Target_may_issue_an_asynchronous_event_notification_instead_of_a_unit_attention_condition);
|
||||
}
|
||||
sb.AppendLine($"\t[slateblue1]{Localization.Target_may_issue_an_asynchronous_event_notification_instead_of_a_unit_attention_condition}[/]");
|
||||
|
||||
if(page.EAENP)
|
||||
{
|
||||
sb.AppendLine("\t" +
|
||||
Localization.Target_may_issue_an_asynchronous_event_notification_instead_of_a_deferred_error);
|
||||
}
|
||||
sb.AppendLine($"\t[slateblue1]{Localization.Target_may_issue_an_asynchronous_event_notification_instead_of_a_deferred_error}[/]");
|
||||
|
||||
if(page.GLTSD) sb.AppendLine("\t" + Localization.Global_logging_target_save_disabled);
|
||||
if(page.GLTSD) sb.AppendLine($"\t[slateblue1]{Localization.Global_logging_target_save_disabled}[/]");
|
||||
|
||||
if(page.RAC)
|
||||
sb.AppendLine("\t" + Localization.CHECK_CONDITION_should_be_reported_rather_than_a_long_busy_condition);
|
||||
sb.AppendLine($"\t[slateblue1]{Localization.CHECK_CONDITION_should_be_reported_rather_than_a_long_busy_condition}[/]");
|
||||
|
||||
if(page.SWP) sb.AppendLine("\t" + Localization.Software_write_protect_is_enabled);
|
||||
if(page.SWP) sb.AppendLine($"\t[slateblue1]{Localization.Software_write_protect_is_enabled}[/]");
|
||||
|
||||
if(page.TAS)
|
||||
{
|
||||
sb.AppendLine("\t" +
|
||||
Localization
|
||||
.Tasks_aborted_by_other_initiator_s_actions_should_be_terminated_with_TASK_ABORTED);
|
||||
}
|
||||
sb.AppendLine($"\t[slateblue1]{Localization.Tasks_aborted_by_other_initiator_s_actions_should_be_terminated_with_TASK_ABORTED}[/]");
|
||||
|
||||
if(page.TMF_ONLY)
|
||||
{
|
||||
sb.AppendLine("\t" +
|
||||
Localization
|
||||
.All_tasks_received_in_nexus_with_ACA_ACTIVE_is_set_and_an_ACA_condition_is_established_shall_terminate);
|
||||
}
|
||||
sb.AppendLine($"\t[slateblue1]{Localization.All_tasks_received_in_nexus_with_ACA_ACTIVE_is_set_and_an_ACA_condition_is_established_shall_terminate}[/]");
|
||||
|
||||
if(page.D_SENSE)
|
||||
{
|
||||
sb.AppendLine("\t" +
|
||||
Localization
|
||||
.Device_shall_return_descriptor_format_sense_data_when_returning_sense_data_in_the_same_transactions_as_a_CHECK_CONDITION);
|
||||
}
|
||||
sb.AppendLine($"\t[slateblue1]{Localization.Device_shall_return_descriptor_format_sense_data_when_returning_sense_data_in_the_same_transactions_as_a_CHECK_CONDITION}[/]");
|
||||
|
||||
if(page.ATO) sb.AppendLine("\t" + Localization.LOGICAL_BLOCK_APPLICATION_TAG_should_not_be_modified);
|
||||
if(page.ATO)
|
||||
sb.AppendLine($"\t[slateblue1]{Localization.LOGICAL_BLOCK_APPLICATION_TAG_should_not_be_modified}[/]");
|
||||
|
||||
if(page.DPICZ) sb.AppendLine("\t" + Localization.Protector_information_checking_is_disabled);
|
||||
if(page.DPICZ) sb.AppendLine($"\t[slateblue1]{Localization.Protector_information_checking_is_disabled}[/]");
|
||||
|
||||
if(page.NUAR) sb.AppendLine("\t" + Localization.No_unit_attention_on_release);
|
||||
if(page.NUAR) sb.AppendLine($"\t[slateblue1]{Localization.No_unit_attention_on_release}[/]");
|
||||
|
||||
if(page.ATMPE) sb.AppendLine("\t" + Localization.Application_Tag_mode_page_is_enabled);
|
||||
if(page.ATMPE) sb.AppendLine($"\t[slateblue1]{Localization.Application_Tag_mode_page_is_enabled}[/]");
|
||||
|
||||
if(page.RWWP) sb.AppendLine("\t" + Localization.Abort_any_write_command_without_protection_information);
|
||||
if(page.RWWP)
|
||||
sb.AppendLine($"\t[slateblue1]{Localization.Abort_any_write_command_without_protection_information}[/]");
|
||||
|
||||
if(page.SBLP) sb.AppendLine("\t" + Localization.Supports_block_lengths_and_protection_information);
|
||||
if(page.SBLP)
|
||||
sb.AppendLine($"\t[slateblue1]{Localization.Supports_block_lengths_and_protection_information}[/]");
|
||||
|
||||
switch(page.TST)
|
||||
{
|
||||
case 0:
|
||||
sb.AppendLine("\t" + Localization.The_logical_unit_maintains_one_task_set_for_all_nexuses);
|
||||
sb.AppendLine($"\t[slateblue1]{Localization.The_logical_unit_maintains_one_task_set_for_all_nexuses}[/]");
|
||||
|
||||
break;
|
||||
case 1:
|
||||
sb.AppendLine("\t" + Localization.The_logical_unit_maintains_separate_task_sets_for_each_nexus);
|
||||
sb.AppendLine($"\t[slateblue1]{Localization.The_logical_unit_maintains_separate_task_sets_for_each_nexus}[/]");
|
||||
|
||||
break;
|
||||
default:
|
||||
sb.AppendFormat("\t" + Localization.Unknown_Task_set_type_0, page.TST).AppendLine();
|
||||
sb.AppendFormat($"\t[slateblue1]{Localization.Unknown_Task_set_type_0}[/]", $"[teal]{page.TST}[/]")
|
||||
.AppendLine();
|
||||
|
||||
break;
|
||||
}
|
||||
@@ -268,15 +250,16 @@ public static partial class Modes
|
||||
switch(page.QueueAlgorithm)
|
||||
{
|
||||
case 0:
|
||||
sb.AppendLine("\t" + Localization.Commands_should_be_sent_strictly_ordered);
|
||||
sb.AppendLine($"\t[slateblue1]{Localization.Commands_should_be_sent_strictly_ordered}[/]");
|
||||
|
||||
break;
|
||||
case 1:
|
||||
sb.AppendLine("\t" + Localization.Commands_can_be_reordered_in_any_manner);
|
||||
sb.AppendLine($"\t[slateblue1]{Localization.Commands_can_be_reordered_in_any_manner}[/]");
|
||||
|
||||
break;
|
||||
default:
|
||||
sb.AppendFormat("\t" + Localization.Unknown_Queue_Algorithm_Modifier_0, page.QueueAlgorithm)
|
||||
sb.AppendFormat($"\t[slateblue1]{Localization.Unknown_Queue_Algorithm_Modifier_0}[/]",
|
||||
$"[teal]{page.QueueAlgorithm}[/]")
|
||||
.AppendLine();
|
||||
|
||||
break;
|
||||
@@ -285,25 +268,19 @@ public static partial class Modes
|
||||
switch(page.QErr)
|
||||
{
|
||||
case 0:
|
||||
sb.AppendLine("\t" +
|
||||
Localization
|
||||
.If_ACA_is_established_the_task_set_commands_shall_resume_after_it_is_cleared_otherwise_they_shall_terminate_with_CHECK_CONDITION);
|
||||
sb.AppendLine($"\t[slateblue1]{Localization.If_ACA_is_established_the_task_set_commands_shall_resume_after_it_is_cleared_otherwise_they_shall_terminate_with_CHECK_CONDITION}[/]");
|
||||
|
||||
break;
|
||||
case 1:
|
||||
sb.AppendLine("\t" +
|
||||
Localization
|
||||
.All_the_affected_commands_in_the_task_set_shall_be_aborted_when_CHECK_CONDITION_is_returned);
|
||||
sb.AppendLine($"\t[slateblue1]{Localization.All_the_affected_commands_in_the_task_set_shall_be_aborted_when_CHECK_CONDITION_is_returned}[/]");
|
||||
|
||||
break;
|
||||
case 3:
|
||||
sb.AppendLine("\t" +
|
||||
Localization
|
||||
.Affected_commands_in_the_task_set_belonging_with_the_CHECK_CONDITION_nexus_shall_be_aborted);
|
||||
sb.AppendLine($"\t[slateblue1]{Localization.Affected_commands_in_the_task_set_belonging_with_the_CHECK_CONDITION_nexus_shall_be_aborted}[/]");
|
||||
|
||||
break;
|
||||
default:
|
||||
sb.AppendLine("\t" + Localization.Reserved_QErr_value_2_is_set);
|
||||
sb.AppendLine($"\t[slateblue1]{Localization.Reserved_QErr_value_2_is_set}[/]");
|
||||
|
||||
break;
|
||||
}
|
||||
@@ -311,22 +288,19 @@ public static partial class Modes
|
||||
switch(page.UA_INTLCK_CTRL)
|
||||
{
|
||||
case 0:
|
||||
sb.AppendLine("\t" + Localization.LUN_shall_clear_unit_attention_condition_reported_in_the_same_nexus);
|
||||
sb.AppendLine($"\t[slateblue1]{Localization.LUN_shall_clear_unit_attention_condition_reported_in_the_same_nexus}[/]");
|
||||
|
||||
break;
|
||||
case 2:
|
||||
sb.AppendLine("\t" +
|
||||
Localization.LUN_shall_not_clear_unit_attention_condition_reported_in_the_same_nexus);
|
||||
sb.AppendLine($"\t[slateblue1]{Localization.LUN_shall_not_clear_unit_attention_condition_reported_in_the_same_nexus}[/]");
|
||||
|
||||
break;
|
||||
case 3:
|
||||
sb.AppendLine("\t" +
|
||||
Localization
|
||||
.LUN_shall_not_clear_unit_attention_condition_reported_in_the_same_nexus_and_shall_establish_a_unit_attention_condition_for_the_initiator);
|
||||
sb.AppendLine($"\t[slateblue1]{Localization.LUN_shall_not_clear_unit_attention_condition_reported_in_the_same_nexus_and_shall_establish_a_unit_attention_condition_for_the_initiator}[/]");
|
||||
|
||||
break;
|
||||
default:
|
||||
sb.AppendLine("\t" + Localization.Reserved_UA_INTLCK_CTRL_value_1_is_set);
|
||||
sb.AppendLine($"\t[slateblue1]{Localization.Reserved_UA_INTLCK_CTRL_value_1_is_set}[/]");
|
||||
|
||||
break;
|
||||
}
|
||||
@@ -334,48 +308,49 @@ public static partial class Modes
|
||||
switch(page.AutoloadMode)
|
||||
{
|
||||
case 0:
|
||||
sb.AppendLine("\t" + Localization.On_medium_insertion_it_shall_be_loaded_for_full_access);
|
||||
sb.AppendLine($"\t[slateblue1]{Localization.On_medium_insertion_it_shall_be_loaded_for_full_access}[/]");
|
||||
|
||||
break;
|
||||
case 1:
|
||||
sb.AppendLine("\t" +
|
||||
Localization.On_medium_insertion_it_shall_be_loaded_for_auxiliary_memory_access_only);
|
||||
sb.AppendLine($"\t[slateblue1]{Localization.On_medium_insertion_it_shall_be_loaded_for_auxiliary_memory_access_only}[/]");
|
||||
|
||||
break;
|
||||
case 2:
|
||||
sb.AppendLine("\t" + Localization.On_medium_insertion_it_shall_not_be_loaded);
|
||||
sb.AppendLine($"\t[slateblue1]{Localization.On_medium_insertion_it_shall_not_be_loaded}[/]");
|
||||
|
||||
break;
|
||||
default:
|
||||
sb.AppendFormat("\t" + Localization.Reserved_autoload_mode_0_set, page.AutoloadMode).AppendLine();
|
||||
sb.AppendFormat($"\t[slateblue1]{Localization.Reserved_autoload_mode_0_set}[/]",
|
||||
$"[teal]{page.AutoloadMode}[/]")
|
||||
.AppendLine();
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
if(page.ReadyAENHoldOffPeriod > 0)
|
||||
{
|
||||
sb.AppendFormat("\t" +
|
||||
Localization._0_ms_before_attempting_asynchronous_event_notifications_after_initialization,
|
||||
page.ReadyAENHoldOffPeriod)
|
||||
.AppendLine();
|
||||
sb
|
||||
.AppendFormat($"\t[slateblue1]{Localization._0_ms_before_attempting_asynchronous_event_notifications_after_initialization}[/]",
|
||||
$"[teal]{page.ReadyAENHoldOffPeriod}[/]")
|
||||
.AppendLine();
|
||||
}
|
||||
|
||||
if(page.BusyTimeoutPeriod > 0)
|
||||
{
|
||||
if(page.BusyTimeoutPeriod == 0xFFFF)
|
||||
sb.AppendLine("\t" + Localization.There_is_no_limit_on_the_maximum_time_that_is_allowed_to_remain_busy);
|
||||
sb.AppendLine($"\t[slateblue1]{Localization.There_is_no_limit_on_the_maximum_time_that_is_allowed_to_remain_busy}[/]");
|
||||
else
|
||||
{
|
||||
sb.AppendFormat("\t" + Localization.A_maximum_of_0_ms_are_allowed_to_remain_busy,
|
||||
page.BusyTimeoutPeriod * 100)
|
||||
sb.AppendFormat($"\t[slateblue1]{Localization.A_maximum_of_0_ms_are_allowed_to_remain_busy}[/]",
|
||||
$"[teal]{page.BusyTimeoutPeriod * 100}[/]")
|
||||
.AppendLine();
|
||||
}
|
||||
}
|
||||
|
||||
if(page.ExtendedSelfTestCompletionTime > 0)
|
||||
{
|
||||
sb.AppendFormat("\t" + Localization._0_seconds_to_complete_extended_self_test,
|
||||
page.ExtendedSelfTestCompletionTime);
|
||||
sb.AppendFormat($"\t[slateblue1]{Localization._0_seconds_to_complete_extended_self_test}[/]",
|
||||
$"[teal]{page.ExtendedSelfTestCompletionTime}[/]");
|
||||
}
|
||||
|
||||
return sb.ToString();
|
||||
@@ -440,34 +415,30 @@ public static partial class Modes
|
||||
ModePage_0A_S01 page = modePage.Value;
|
||||
var sb = new StringBuilder();
|
||||
|
||||
sb.AppendLine(Localization.SCSI_Control_extension_page);
|
||||
sb.AppendLine($"[bold][blue]{Localization.SCSI_Control_extension_page}[/][/]");
|
||||
|
||||
if(page.PS) sb.AppendLine("\t" + Localization.Parameters_can_be_saved);
|
||||
if(page.PS) sb.AppendLine($"\t[green]{Localization.Parameters_can_be_saved}[/]");
|
||||
|
||||
if(page.TCMOS)
|
||||
{
|
||||
if(page.SCSIP)
|
||||
{
|
||||
sb.AppendLine("\t" +
|
||||
Localization
|
||||
.S01_Timestamp_can_be_initialized_by_methods_outside_of_the_SCSI_standards_but_SCSI_SET_TIMESTAMP_shall_take_precedence_over_them);
|
||||
}
|
||||
sb.AppendLine($"\t[slateblue1]{Localization.S01_Timestamp_can_be_initialized_by_methods_outside_of_the_SCSI_standards_but_SCSI_SET_TIMESTAMP_shall_take_precedence_over_them}[/]");
|
||||
else
|
||||
{
|
||||
sb.AppendLine("\t" +
|
||||
Localization.Timestamp_can_be_initialized_by_methods_outside_of_the_SCSI_standards);
|
||||
}
|
||||
sb.AppendLine($"\t[slateblue1]{Localization.Timestamp_can_be_initialized_by_methods_outside_of_the_SCSI_standards}[/]");
|
||||
}
|
||||
|
||||
if(page.IALUAE) sb.AppendLine("\t" + Localization.Implicit_Asymmetric_Logical_Unit_Access_is_enabled);
|
||||
if(page.IALUAE)
|
||||
sb.AppendLine($"\t[slateblue1]{Localization.Implicit_Asymmetric_Logical_Unit_Access_is_enabled}[/]");
|
||||
|
||||
sb.AppendFormat("\t" + Localization.Initial_priority_is_0, page.InitialPriority).AppendLine();
|
||||
sb.AppendFormat($"\t[slateblue1]{Localization.Initial_priority_is_0}[/]", page.InitialPriority).AppendLine();
|
||||
|
||||
if(page.DLC) sb.AppendLine("\t" + Localization.Device_will_not_degrade_performance_to_extend_its_life);
|
||||
if(page.DLC)
|
||||
sb.AppendLine($"\t[slateblue1]{Localization.Device_will_not_degrade_performance_to_extend_its_life}[/]");
|
||||
|
||||
if(page.MaximumSenseLength > 0)
|
||||
{
|
||||
sb.AppendFormat("\t" + Localization.Maximum_sense_data_would_be_0_bytes, page.MaximumSenseLength)
|
||||
sb.AppendFormat($"\t[slateblue1]{Localization.Maximum_sense_data_would_be_0_bytes}[/]",
|
||||
$"[teal]{page.MaximumSenseLength}[/]")
|
||||
.AppendLine();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user