Allocate SENSE buffer only once.

This commit is contained in:
2025-08-22 19:57:09 +01:00
parent 8e2fdd91a6
commit e4f55d3b3c
73 changed files with 1892 additions and 2565 deletions

View File

@@ -141,12 +141,11 @@ static class ArchiveCorp
start:
Console.Clear();
bool sense =
dev.ArchiveCorpRequestBlockAddress(out byte[] buffer,
out byte[] senseBuffer,
lba,
dev.Timeout,
out double duration);
bool sense = dev.ArchiveCorpRequestBlockAddress(out byte[] buffer,
out ReadOnlySpan<byte> senseBuffer,
lba,
dev.Timeout,
out double duration);
menu:
AaruLogging.WriteLine(Localization.Device_0, devPath);
@@ -156,11 +155,9 @@ static class ArchiveCorp
AaruLogging.WriteLine(Localization.Buffer_is_0_bytes, buffer?.Length.ToString() ?? Localization._null);
AaruLogging.WriteLine(Localization.Buffer_is_null_or_empty_0_Q, ArrayHelpers.ArrayIsNullOrEmpty(buffer));
AaruLogging.WriteLine(Localization.Sense_buffer_is_0_bytes,
senseBuffer?.Length.ToString() ?? Localization._null);
AaruLogging.WriteLine(Localization.Sense_buffer_is_0_bytes, senseBuffer.Length.ToString());
AaruLogging.WriteLine(Localization.Sense_buffer_is_null_or_empty_0,
ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
AaruLogging.WriteLine(Localization.Sense_buffer_is_null_or_empty_0, senseBuffer.IsEmpty);
AaruLogging.WriteLine();
AaruLogging.WriteLine(Localization.Choose_what_to_do);
@@ -208,7 +205,7 @@ static class ArchiveCorp
AaruLogging.WriteLine(Localization.Device_0, devPath);
AaruLogging.WriteLine(Localization.ArchiveCorp_RequestBlockAddress_REQUEST_BLOCK_ADDRESS_sense);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer.ToArray(), 64);
AaruLogging.WriteLine(Localization.Press_any_key_to_continue);
Console.ReadKey();
@@ -220,7 +217,7 @@ static class ArchiveCorp
Console.Clear();
AaruLogging.WriteLine(Localization.Device_0, devPath);
AaruLogging.WriteLine(Localization.ArchiveCorp_RequestBlockAddress_REQUEST_BLOCK_ADDRESS_decoded_sense);
AaruLogging.Write("{0}", Sense.PrettifySense(senseBuffer));
AaruLogging.Write("{0}", Sense.PrettifySense(senseBuffer.ToArray()));
AaruLogging.WriteLine(Localization.Press_any_key_to_continue);
Console.ReadKey();
Console.Clear();
@@ -311,7 +308,11 @@ static class ArchiveCorp
start:
Console.Clear();
bool sense = dev.ArchiveCorpSeekBlock(out byte[] senseBuffer, immediate, lba, dev.Timeout, out double duration);
bool sense = dev.ArchiveCorpSeekBlock(out ReadOnlySpan<byte> senseBuffer,
immediate,
lba,
dev.Timeout,
out double duration);
menu:
AaruLogging.WriteLine(Localization.Device_0, devPath);
@@ -319,14 +320,12 @@ static class ArchiveCorp
AaruLogging.WriteLine(Localization.Command_took_0_ms, duration);
AaruLogging.WriteLine(Localization.Sense_is_0, sense);
AaruLogging.WriteLine(Localization.Sense_buffer_is_0_bytes,
senseBuffer?.Length.ToString() ?? Localization._null);
AaruLogging.WriteLine(Localization.Sense_buffer_is_0_bytes, senseBuffer.Length.ToString());
AaruLogging.WriteLine(Localization.Sense_buffer_is_null_or_empty_0,
ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
AaruLogging.WriteLine(Localization.Sense_buffer_is_null_or_empty_0, senseBuffer.IsEmpty);
AaruLogging.WriteLine(Localization.SEEK_BLOCK_decoded_sense);
AaruLogging.Write("{0}", Sense.PrettifySense(senseBuffer));
AaruLogging.Write("{0}", Sense.PrettifySense(senseBuffer.ToArray()));
AaruLogging.WriteLine();
AaruLogging.WriteLine(Localization.Choose_what_to_do);
AaruLogging.WriteLine(Localization._1_Print_sense_buffer);
@@ -358,7 +357,7 @@ static class ArchiveCorp
AaruLogging.WriteLine(Localization.Device_0, devPath);
AaruLogging.WriteLine(Localization.SEEK_BLOCK_sense);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer.ToArray(), 64);
AaruLogging.WriteLine(Localization.Press_any_key_to_continue);
Console.ReadKey();