--- nono/vm/scsicmd.h 2026/04/29 17:05:03 1.1.1.2 +++ nono/vm/scsicmd.h 2026/04/29 17:05:29 1.1.1.7 @@ -4,7 +4,9 @@ // Licensed under nono-license.txt // +// // SCSI コマンド +// #pragma once @@ -14,6 +16,7 @@ // READ/WRITE は多すぎるのでログを省略したい場合に定義。 //#define NO_READWRITE_LOG +class SCSIDisk; class SCSITarget; // @@ -23,7 +26,7 @@ class SCSITarget; class SCSICmd { public: - SCSICmd(SCSITarget *parent_); + explicit SCSICmd(SCSITarget *parent_); virtual ~SCSICmd(); // 転送バッファと転送バイト数。 @@ -33,8 +36,8 @@ class SCSICmd // OUT(ターゲットが受信側)なら、各フェーズ開始前までに受信バイト数を // recvbytes にセットすること。buf は操作不要。 // なお parent は OUT(受信)フェーズ中にこの recvbytes を変更しない。 - std::vector buf; - uint32 recvbytes; + std::vector buf {}; + uint32 recvbytes {}; // このコマンドの動作時間 [nsec] // シークタイムとかを簡易的に再現するため、次フェーズ遷移時の最初の @@ -95,7 +98,7 @@ class SCSICmd protected: // このコマンドを実行しているターゲットデバイス。 - SCSITarget *parent; + SCSITarget *parent {}; // ステータスバイト (デフォルトは 0 = Good) uint8 status_byte {}; @@ -108,8 +111,8 @@ class SCSICmdNotSupportedCommand : publi { using inherited = SCSICmd; public: - SCSICmdNotSupportedCommand(SCSITarget *); - virtual ~SCSICmdNotSupportedCommand() override; + explicit SCSICmdNotSupportedCommand(SCSITarget *); + ~SCSICmdNotSupportedCommand() override; SCSI::XferPhase Command(std::vector& cmdseq) override; }; @@ -121,8 +124,8 @@ class SCSICmdRequestSense : public SCSIC { using inherited = SCSICmd; public: - SCSICmdRequestSense(SCSITarget *); - virtual ~SCSICmdRequestSense() override; + explicit SCSICmdRequestSense(SCSITarget *); + ~SCSICmdRequestSense() override; SCSI::XferPhase Command(std::vector& cmdseq) override; }; @@ -135,8 +138,8 @@ class SCSICmdRead : public SCSICmd { using inherited = SCSICmd; public: - SCSICmdRead(SCSIDisk *); - virtual ~SCSICmdRead() override; + explicit SCSICmdRead(SCSIDisk *); + ~SCSICmdRead() override; SCSI::XferPhase Command(std::vector& cmdseq) override; @@ -152,8 +155,8 @@ class SCSICmdWrite : public SCSICmd { using inherited = SCSICmd; public: - SCSICmdWrite(SCSIDisk *); - virtual ~SCSICmdWrite() override; + explicit SCSICmdWrite(SCSIDisk *); + ~SCSICmdWrite() override; SCSI::XferPhase Command(std::vector& cmdseq) override; SCSI::XferPhase DoneDataOut() override; @@ -172,8 +175,8 @@ class SCSICmdInquiry : public SCSICmd { using inherited = SCSICmd; public: - SCSICmdInquiry(SCSITarget *); - virtual ~SCSICmdInquiry() override; + explicit SCSICmdInquiry(SCSITarget *); + ~SCSICmdInquiry() override; SCSI::XferPhase Command(std::vector& cmdseq) override; }; @@ -186,8 +189,8 @@ class SCSICmdModeSelect : public SCSICmd { using inherited = SCSICmd; public: - SCSICmdModeSelect(SCSITarget *); - virtual ~SCSICmdModeSelect() override; + explicit SCSICmdModeSelect(SCSITarget *); + ~SCSICmdModeSelect() override; SCSI::XferPhase Command(std::vector& cmdseq) override; SCSI::XferPhase DoneDataOut() override; @@ -204,8 +207,8 @@ class SCSICmdModeSense : public SCSICmd { using inherited = SCSICmd; public: - SCSICmdModeSense(SCSITarget *); - virtual ~SCSICmdModeSense() override; + explicit SCSICmdModeSense(SCSITarget *); + ~SCSICmdModeSense() override; SCSI::XferPhase Command(std::vector& cmdseq) override; @@ -219,7 +222,7 @@ class SCSICmdModeSense : public SCSICmd }; // ページ処理関数の戻り値 (この値は大小比較する) enum ModePageResult { - NotImplemented = -1, // 未実装や知らないページ + NotSupported = -1, // 未実装や知らないページ Failed = 0, // 対応しない/出来ないと分かっているページ Success = 1, // 成功 }; @@ -248,8 +251,8 @@ class SCSICmdStartStopUnit : public SCSI { using inherited = SCSICmd; public: - SCSICmdStartStopUnit(SCSIDisk *); - virtual ~SCSICmdStartStopUnit() override; + explicit SCSICmdStartStopUnit(SCSIDisk *); + ~SCSICmdStartStopUnit() override; SCSI::XferPhase Command(std::vector& cmdseq) override; @@ -264,8 +267,8 @@ class SCSICmdPreventAllowMediumRemoval : { using inherited = SCSICmd; public: - SCSICmdPreventAllowMediumRemoval(SCSIDisk *); - virtual ~SCSICmdPreventAllowMediumRemoval() override; + explicit SCSICmdPreventAllowMediumRemoval(SCSIDisk *); + ~SCSICmdPreventAllowMediumRemoval() override; SCSI::XferPhase Command(std::vector& cmdseq) override; @@ -282,8 +285,8 @@ class SCSICmdReadCapacity : public SCSIC { using inherited = SCSICmd; public: - SCSICmdReadCapacity(SCSIDisk *); - virtual ~SCSICmdReadCapacity() override; + explicit SCSICmdReadCapacity(SCSIDisk *); + ~SCSICmdReadCapacity() override; SCSI::XferPhase Command(std::vector& cmdseq) override; @@ -298,8 +301,8 @@ class SCSICmdReadTOC : public SCSICmd { using inherited = SCSICmd; public: - SCSICmdReadTOC(SCSIDisk *); - virtual ~SCSICmdReadTOC() override; + explicit SCSICmdReadTOC(SCSIDisk *); + ~SCSICmdReadTOC() override; SCSI::XferPhase Command(std::vector& cmdseq) override;