--- nono/vm/scsicmd.cpp 2026/04/29 17:05:28 1.1.1.5 +++ nono/vm/scsicmd.cpp 2026/04/29 17:05:42 1.1.1.6 @@ -13,7 +13,7 @@ #define LUN (cmdseq[1] >> 5) -// LUN != 0 のリクエストをエラーにする (Command() 内で使う)。 +// LUN != 0 のリクエストをエラーにする (ExecCommand() 内で使う)。 #define CheckLUN do { \ if (LUN != 0) { \ parent->sensekey = SCSI::SenseKey::NotReady; \ @@ -22,7 +22,7 @@ return SCSI::XferPhase::Status; \ } \ } while (0) -// メディアがなければエラーにする (Command() 内で使う)。 +// メディアがなければエラーにする (ExecCommand() 内で使う)。 #define CheckMedium do { \ if (disk->IsMediumLoaded() == false) { \ parent->sensekey = SCSI::SenseKey::NotReady; \ @@ -50,7 +50,7 @@ SCSICmd::~SCSICmd() // コマンドフェーズ SCSI::XferPhase -SCSICmd::Command(std::vector& cmdseq) +SCSICmd::ExecCommand(std::vector& cmdseq) { // コマンド開始前に直前のセンスデータをクリア parent->ClearSense(); @@ -71,14 +71,9 @@ SCSICmdNotSupportedCommand::SCSICmdNotSu { } -// デストラクタ -SCSICmdNotSupportedCommand::~SCSICmdNotSupportedCommand() -{ -} - // コマンドフェーズ SCSI::XferPhase -SCSICmdNotSupportedCommand::Command(std::vector& cmdseq) +SCSICmdNotSupportedCommand::ExecCommand(std::vector& cmdseq) { // XXX センスキーよく分からんけどとりあえず parent->sensekey = SCSI::SenseKey::IllegalRequest; @@ -111,14 +106,9 @@ SCSICmdRequestSense::SCSICmdRequestSense { } -// デストラクタ -SCSICmdRequestSense::~SCSICmdRequestSense() -{ -} - // コマンドフェーズ SCSI::XferPhase -SCSICmdRequestSense::Command(std::vector& cmdseq) +SCSICmdRequestSense::ExecCommand(std::vector& cmdseq) { CheckLUN; @@ -216,14 +206,9 @@ SCSICmdRead::SCSICmdRead(SCSIDisk *paren disk = parent_; } -// デストラクタ -SCSICmdRead::~SCSICmdRead() -{ -} - // コマンドフェーズ SCSI::XferPhase -SCSICmdRead::Command(std::vector& cmdseq) +SCSICmdRead::ExecCommand(std::vector& cmdseq) { uint32 lba; uint32 blks; @@ -325,14 +310,9 @@ SCSICmdWrite::SCSICmdWrite(SCSIDisk *par disk = parent_; } -// デストラクタ -SCSICmdWrite::~SCSICmdWrite() -{ -} - // コマンドフェーズ SCSI::XferPhase -SCSICmdWrite::Command(std::vector& cmdseq) +SCSICmdWrite::ExecCommand(std::vector& cmdseq) { // コマンド開始前に直前のセンスデータをクリア parent->ClearSense(); @@ -445,14 +425,9 @@ SCSICmdInquiry::SCSICmdInquiry(SCSITarge { } -// デストラクタ -SCSICmdInquiry::~SCSICmdInquiry() -{ -} - // コマンドフェーズ SCSI::XferPhase -SCSICmdInquiry::Command(std::vector& cmdseq) +SCSICmdInquiry::ExecCommand(std::vector& cmdseq) { // コマンド開始前に直前のセンスデータをクリア parent->ClearSense(); @@ -589,14 +564,9 @@ SCSICmdModeSelect::SCSICmdModeSelect(SCS { } -// デストラクタ -SCSICmdModeSelect::~SCSICmdModeSelect() -{ -} - // コマンドフェーズ SCSI::XferPhase -SCSICmdModeSelect::Command(std::vector& cmdseq) +SCSICmdModeSelect::ExecCommand(std::vector& cmdseq) { // コマンド開始前に直前のセンスデータをクリア parent->ClearSense(); @@ -694,14 +664,9 @@ SCSICmdModeSense::SCSICmdModeSense(SCSIT { } -// デストラクタ -SCSICmdModeSense::~SCSICmdModeSense() -{ -} - // コマンドフェーズ SCSI::XferPhase -SCSICmdModeSense::Command(std::vector& cmdseq) +SCSICmdModeSense::ExecCommand(std::vector& cmdseq) { uint reqlen; @@ -929,14 +894,9 @@ SCSICmdStartStopUnit::SCSICmdStartStopUn disk = parent_; } -// デストラクタ -SCSICmdStartStopUnit::~SCSICmdStartStopUnit() -{ -} - // コマンドフェーズ SCSI::XferPhase -SCSICmdStartStopUnit::Command(std::vector& cmdseq) +SCSICmdStartStopUnit::ExecCommand(std::vector& cmdseq) { bool immed = (cmdseq[1] & 0x01); if (immed) { @@ -973,7 +933,7 @@ SCSICmdStartStopUnit::Command(std::vecto } else { // 固定デバイスなら黙って成功しておく? } - return inherited::Command(cmdseq); + return inherited::ExecCommand(cmdseq); } @@ -1004,14 +964,9 @@ SCSICmdPreventAllowMediumRemoval::SCSICm disk = parent_; } -// デストラクタ -SCSICmdPreventAllowMediumRemoval::~SCSICmdPreventAllowMediumRemoval() -{ -} - // コマンドフェーズ SCSI::XferPhase -SCSICmdPreventAllowMediumRemoval::Command(std::vector& cmdseq) +SCSICmdPreventAllowMediumRemoval::ExecCommand(std::vector& cmdseq) { // コマンド開始前に直前のセンスデータをクリア parent->ClearSense(); @@ -1064,14 +1019,9 @@ SCSICmdReadCapacity::SCSICmdReadCapacity disk = parent_; } -// デストラクタ -SCSICmdReadCapacity::~SCSICmdReadCapacity() -{ -} - // コマンドフェーズ SCSI::XferPhase -SCSICmdReadCapacity::Command(std::vector& cmdseq) +SCSICmdReadCapacity::ExecCommand(std::vector& cmdseq) { // コマンド開始前に直前のセンスデータをクリア parent->ClearSense(); @@ -1134,14 +1084,9 @@ SCSICmdReadTOC::SCSICmdReadTOC(SCSIDisk disk = parent_; } -// デストラクタ -SCSICmdReadTOC::~SCSICmdReadTOC() -{ -} - // コマンドフェーズ SCSI::XferPhase -SCSICmdReadTOC::Command(std::vector& cmdseq) +SCSICmdReadTOC::ExecCommand(std::vector& cmdseq) { // コマンド開始前に直前のセンスデータをクリア parent->ClearSense(); @@ -1207,3 +1152,55 @@ SCSICmdReadTOC::Command(std::vector