diff --git a/cpp/s2pdump/board_executor.cpp b/cpp/s2pdump/board_executor.cpp index ce11d88e..5bd19174 100644 --- a/cpp/s2pdump/board_executor.cpp +++ b/cpp/s2pdump/board_executor.cpp @@ -12,27 +12,27 @@ using namespace memory_util; -void BoardExecutor::TestUnitReady(vector &cdb) const +void BoardExecutor::TestUnitReady(span cdb) const { Execute(ScsiCommand::TEST_UNIT_READY, cdb, { }, 0, 1, false); } -int BoardExecutor::RequestSense(vector &cdb, span buf) const +int BoardExecutor::RequestSense(span cdb, span buf) const { return Execute(ScsiCommand::REQUEST_SENSE, cdb, buf, static_cast(buf.size()), 1, false); } -bool BoardExecutor::Inquiry(vector &cdb, span buf) const +bool BoardExecutor::Inquiry(span cdb, span buf) const { return !Execute(ScsiCommand::INQUIRY, cdb, buf, static_cast(buf.size()), 1, false); } -bool BoardExecutor::ModeSense6(vector &cdb, span buf) const +bool BoardExecutor::ModeSense6(span cdb, span buf) const { return !Execute(ScsiCommand::MODE_SENSE_6, cdb, buf, static_cast(buf.size()), 1, false); } -set BoardExecutor::ReportLuns(vector &cdb, span buf) +set BoardExecutor::ReportLuns(span cdb, span buf) { // Assume 8 LUNs in case REPORT LUNS is not available if (Execute(ScsiCommand::REPORT_LUNS, cdb, buf, static_cast(buf.size()), 1, false)) { @@ -58,49 +58,49 @@ set BoardExecutor::ReportLuns(vector &cdb, span buf) return luns; } -int BoardExecutor::ReadCapacity10(vector &cdb, span buf) const +int BoardExecutor::ReadCapacity10(span cdb, span buf) const { return Execute(ScsiCommand::READ_CAPACITY_10, cdb, buf, 8, 1, true); } -int BoardExecutor::ReadCapacity16(vector &cdb, span buf) const +int BoardExecutor::ReadCapacity16(span cdb, span buf) const { return Execute(ScsiCommand::READ_CAPACITY_READ_LONG_16, cdb, buf, 14, 1, true); } -bool BoardExecutor::ReadWrite(vector &cdb, span buf, int length) +bool BoardExecutor::ReadWrite(span cdb, span buf, int length) { return !Execute(static_cast(cdb[0]), cdb, buf, length, 10, true); } -void BoardExecutor::SynchronizeCache(vector &cdb) const +void BoardExecutor::SynchronizeCache(span cdb) const { Execute(ScsiCommand::SYNCHRONIZE_CACHE_10, cdb, { }, 0, 3, true); } -int BoardExecutor::Rewind(vector &cdb) const +int BoardExecutor::Rewind(span cdb) const { return Execute(ScsiCommand::REWIND, cdb, { }, 0, LONG_TIMEOUT, true); } -void BoardExecutor::SpaceBack(vector &cdb) const +void BoardExecutor::SpaceBack(span cdb) const { if (Execute(ScsiCommand::SPACE_6, cdb, { }, 0, LONG_TIMEOUT, false)) { throw IoException("Can't space back one block"); } } -int BoardExecutor::WriteFilemark(vector &cdb) const +int BoardExecutor::WriteFilemark(span cdb) const { return Execute(ScsiCommand::WRITE_FILEMARKS_6, cdb, { }, 0, LONG_TIMEOUT, true); } -bool BoardExecutor::Read(vector &cdb, span buf, int length) +bool BoardExecutor::Read(span cdb, span buf, int length) { return Execute(ScsiCommand::READ_6, cdb, buf, length, LONG_TIMEOUT, false); } -bool BoardExecutor::Write(vector &cdb, span buf, int length) +bool BoardExecutor::Write(span cdb, span buf, int length) { return Execute(ScsiCommand::WRITE_6, cdb, buf, length, LONG_TIMEOUT, false); } diff --git a/cpp/s2pdump/board_executor.h b/cpp/s2pdump/board_executor.h index 1493c3fc..b338f9ad 100644 --- a/cpp/s2pdump/board_executor.h +++ b/cpp/s2pdump/board_executor.h @@ -29,23 +29,23 @@ class BoardExecutor : public S2pDumpExecutor } // Disk and tape support - void TestUnitReady(vector&) const override; - int RequestSense(vector&, span) const override; - bool Inquiry(vector&, span) const override; - bool ModeSense6(vector&, span) const override; - set ReportLuns(vector&, span) override; + void TestUnitReady(span) const override; + int RequestSense(span, span) const override; + bool Inquiry(span, span) const override; + bool ModeSense6(span, span) const override; + set ReportLuns(span, span) override; // Disk support - int ReadCapacity10(vector&, span) const override; - int ReadCapacity16(vector&, span) const override; - bool ReadWrite(vector&, span, int) override; - void SynchronizeCache(vector&) const override; + int ReadCapacity10(span, span) const override; + int ReadCapacity16(span, span) const override; + bool ReadWrite(span, span, int) override; + void SynchronizeCache(span) const override; // Tape support - int Rewind(vector&) const override; - int WriteFilemark(vector&) const override; - bool Read(vector&, span, int) override; - bool Write(vector&, span, int) override; + int Rewind(span) const override; + int WriteFilemark(span) const override; + bool Read(span, span, int) override; + bool Write(span, span, int) override; void SetTarget(int id, int lun, bool sasi) { @@ -54,7 +54,7 @@ class BoardExecutor : public S2pDumpExecutor protected: - void SpaceBack(vector&) const override; + void SpaceBack(span) const override; private: diff --git a/cpp/s2pdump/s2pdump_executor.cpp b/cpp/s2pdump/s2pdump_executor.cpp index d3c56f91..363f6299 100644 --- a/cpp/s2pdump/s2pdump_executor.cpp +++ b/cpp/s2pdump/s2pdump_executor.cpp @@ -15,14 +15,13 @@ using namespace memory_util; void S2pDumpExecutor::TestUnitReady() const { - vector cdb(6); - + array cdb = { }; TestUnitReady(cdb); } void S2pDumpExecutor::RequestSense(span buf) const { - vector cdb(6); + array cdb = { }; cdb[0] = static_cast(ScsiCommand::REQUEST_SENSE); cdb[4] = static_cast(buf.size()); @@ -31,7 +30,7 @@ void S2pDumpExecutor::RequestSense(span buf) const bool S2pDumpExecutor::Inquiry(span buf) const { - vector cdb(6); + array cdb = { }; cdb[0] = static_cast(ScsiCommand::INQUIRY); cdb[4] = static_cast(buf.size()); @@ -40,7 +39,7 @@ bool S2pDumpExecutor::Inquiry(span buf) const bool S2pDumpExecutor::ModeSense6(span buf) const { - vector cdb(6); + array cdb = { }; cdb[0] = static_cast(ScsiCommand::MODE_SENSE_6); cdb[1] = 0x08; cdb[2] = 0x3f; @@ -51,8 +50,9 @@ bool S2pDumpExecutor::ModeSense6(span buf) const set S2pDumpExecutor::ReportLuns() { - vector buf(512); - vector cdb(12); + array buf = { }; + array cdb = { }; + cdb[0] = static_cast(ScsiCommand::REPORT_LUNS); SetInt16(cdb, 8, buf.size()); return ReportLuns(cdb, buf); @@ -60,7 +60,7 @@ set S2pDumpExecutor::ReportLuns() pair S2pDumpExecutor::ReadCapacity() const { - vector buf(14); + array buf = { }; vector cdb(10); cdb[0] = static_cast(ScsiCommand::READ_CAPACITY_10); @@ -92,7 +92,7 @@ pair S2pDumpExecutor::ReadCapacity() const bool S2pDumpExecutor::ReadWrite(span buf, uint32_t bstart, uint32_t blength, int length, bool is_write) { - vector cdb(10); + array cdb = { }; cdb[0] = static_cast(is_write ? ScsiCommand::WRITE_10 : ScsiCommand::READ_10); SetInt32(cdb, 2, bstart); SetInt16(cdb, 7, blength); @@ -102,7 +102,7 @@ bool S2pDumpExecutor::ReadWrite(span buf, uint32_t bstart, uint32_t ble void S2pDumpExecutor::SynchronizeCache() const { - vector cdb(10); + array cdb = { }; cdb[0] = static_cast(ScsiCommand::SYNCHRONIZE_CACHE_10); SynchronizeCache(cdb); @@ -110,9 +110,8 @@ void S2pDumpExecutor::SynchronizeCache() const void S2pDumpExecutor::SpaceBack() const { - vector cdb(6); + array cdb = { }; cdb[0] = static_cast(ScsiCommand::SPACE_6); - cdb[1] = 0b000; SetInt24(cdb, 2, -1); SpaceBack(cdb); @@ -120,7 +119,7 @@ void S2pDumpExecutor::SpaceBack() const int S2pDumpExecutor::Rewind() { - vector cdb(6); + array cdb = { }; cdb[0] = static_cast(ScsiCommand::REWIND); return Rewind(cdb); @@ -128,7 +127,7 @@ int S2pDumpExecutor::Rewind() int S2pDumpExecutor::WriteFilemark() const { - vector cdb(6); + array cdb = { }; cdb[0] = static_cast(ScsiCommand::WRITE_FILEMARKS_6); SetInt24(cdb, 2, 1); @@ -137,7 +136,7 @@ int S2pDumpExecutor::WriteFilemark() const int S2pDumpExecutor::ReadWrite(span buf, int length) { - vector cdb(6); + array cdb = { }; // Restore if (length) { @@ -160,7 +159,7 @@ int S2pDumpExecutor::ReadWrite(span buf, int length) return default_length; } - vector sense_data(14); + array sense_data = { }; fill_n(cdb.begin(), cdb.size(), 0); cdb[4] = static_cast(sense_data.size()); const int status = RequestSense(cdb, sense_data); diff --git a/cpp/s2pdump/s2pdump_executor.h b/cpp/s2pdump/s2pdump_executor.h index dd55a0e4..e9e0c9b4 100644 --- a/cpp/s2pdump/s2pdump_executor.h +++ b/cpp/s2pdump/s2pdump_executor.h @@ -55,26 +55,26 @@ class S2pDumpExecutor virtual ~S2pDumpExecutor() = default; // Disk and tape support - virtual void TestUnitReady(vector&) const = 0; - virtual int RequestSense(vector&, span) const = 0; - virtual bool Inquiry(vector&, span) const = 0; - virtual bool ModeSense6(vector&, span) const = 0; - virtual set ReportLuns(vector&, span) = 0; + virtual void TestUnitReady(span) const = 0; + virtual int RequestSense(span, span) const = 0; + virtual bool Inquiry(span, span) const = 0; + virtual bool ModeSense6(span, span) const = 0; + virtual set ReportLuns(span, span) = 0; // Disk support - virtual int ReadCapacity10(vector&, span) const = 0; - virtual int ReadCapacity16(vector&, span) const = 0; - virtual bool ReadWrite(vector&, span, int) = 0; - virtual void SynchronizeCache(vector&) const = 0; + virtual int ReadCapacity10(span, span) const = 0; + virtual int ReadCapacity16(span, span) const = 0; + virtual bool ReadWrite(span, span, int) = 0; + virtual void SynchronizeCache(span) const = 0; // Tape support - virtual int Rewind(vector&) const = 0; - virtual int WriteFilemark(vector&) const = 0; - virtual bool Read(vector&, span, int) = 0; - virtual bool Write(vector&, span, int) = 0; + virtual int Rewind(span) const = 0; + virtual int WriteFilemark(span) const = 0; + virtual bool Read(span, span, int) = 0; + virtual bool Write(span, span, int) = 0; void SpaceBack() const; - virtual void SpaceBack(vector&) const = 0; + virtual void SpaceBack(span) const = 0; static void SetInt24(span, int, int); diff --git a/cpp/s2pdump/sg_executor.cpp b/cpp/s2pdump/sg_executor.cpp index dad696d8..5f5c41aa 100644 --- a/cpp/s2pdump/sg_executor.cpp +++ b/cpp/s2pdump/sg_executor.cpp @@ -13,74 +13,74 @@ using namespace memory_util; -void SgExecutor::TestUnitReady(vector &cdb) const +void SgExecutor::TestUnitReady(span cdb) const { sg_adapter.SendCommand(cdb, { }, 0, 1); } -int SgExecutor::RequestSense(vector &cdb, span buf) const +int SgExecutor::RequestSense(span cdb, span buf) const { return sg_adapter.SendCommand(cdb, buf, static_cast(buf.size()), 1).status; } -bool SgExecutor::Inquiry(vector &cdb, span buf) const +bool SgExecutor::Inquiry(span cdb, span buf) const { return !sg_adapter.SendCommand(cdb, buf, static_cast(buf.size()), 1).status; } -bool SgExecutor::ModeSense6(vector &cdb, span buf) const +bool SgExecutor::ModeSense6(span cdb, span buf) const { return !sg_adapter.SendCommand(cdb, buf, static_cast(buf.size()), 1).status; } -set SgExecutor::ReportLuns(vector&, span) +set SgExecutor::ReportLuns(span, span) { return {0}; } -int SgExecutor::ReadCapacity10(vector &cdb, span buf) const +int SgExecutor::ReadCapacity10(span cdb, span buf) const { return sg_adapter.SendCommand(cdb, buf, 8, 1).status; } -int SgExecutor::ReadCapacity16(vector &cdb, span buf) const +int SgExecutor::ReadCapacity16(span cdb, span buf) const { return sg_adapter.SendCommand(cdb, buf, 14, 1).status; } -bool SgExecutor::ReadWrite(vector &cdb, span buf, int length) +bool SgExecutor::ReadWrite(span cdb, span buf, int length) { return !sg_adapter.SendCommand(cdb, buf, length, LONG_TIMEOUT).status; } -void SgExecutor::SynchronizeCache(vector &cdb) const +void SgExecutor::SynchronizeCache(span cdb) const { sg_adapter.SendCommand(cdb, { }, 0, 3); } -int SgExecutor::Rewind(vector &cdb) const +int SgExecutor::Rewind(span cdb) const { return !sg_adapter.SendCommand(cdb, { }, 0, LONG_TIMEOUT).status; } -void SgExecutor::SpaceBack(vector &cdb) const +void SgExecutor::SpaceBack(span cdb) const { if (sg_adapter.SendCommand(cdb, { }, 0, LONG_TIMEOUT).status) { throw IoException("Can't space back one block"); } } -int SgExecutor::WriteFilemark(vector &cdb) const +int SgExecutor::WriteFilemark(span cdb) const { return sg_adapter.SendCommand(cdb, { }, 0, LONG_TIMEOUT).status; } -bool SgExecutor::Read(vector &cdb, span buf, int length) +bool SgExecutor::Read(span cdb, span buf, int length) { return sg_adapter.SendCommand(cdb, buf, length, LONG_TIMEOUT).status; } -bool SgExecutor::Write(vector &cdb, span buf, int length) +bool SgExecutor::Write(span cdb, span buf, int length) { return sg_adapter.SendCommand(cdb, buf, length, LONG_TIMEOUT).status; } diff --git a/cpp/s2pdump/sg_executor.h b/cpp/s2pdump/sg_executor.h index 830c861d..163efc30 100644 --- a/cpp/s2pdump/sg_executor.h +++ b/cpp/s2pdump/sg_executor.h @@ -29,27 +29,27 @@ class SgExecutor : public S2pDumpExecutor } // Disk and tape support - void TestUnitReady(vector&) const override; - int RequestSense(vector&, span) const override; - bool Inquiry(vector&, span) const override; - bool ModeSense6(vector&, span) const override; - set ReportLuns(vector&, span) override; + void TestUnitReady(span) const override; + int RequestSense(span, span) const override; + bool Inquiry(span, span) const override; + bool ModeSense6(span, span) const override; + set ReportLuns(span, span) override; // Disk support - int ReadCapacity10(vector&, span) const override; - int ReadCapacity16(vector&, span) const override; - bool ReadWrite(vector&, span, int) override; - void SynchronizeCache(vector&) const override; + int ReadCapacity10(span, span) const override; + int ReadCapacity16(span, span) const override; + bool ReadWrite(span, span, int) override; + void SynchronizeCache(span) const override; // Tape support - int Rewind(vector&) const override; - int WriteFilemark(vector&) const override; - bool Read(vector&, span, int) override; - bool Write(vector&, span, int) override; + int Rewind(span) const override; + int WriteFilemark(span) const override; + bool Read(span, span, int) override; + bool Write(span, span, int) override; protected: - void SpaceBack(vector&) const override; + void SpaceBack(span) const override; private: