mirror of
https://github.com/akuker/RASCSI.git
synced 2024-11-25 20:33:35 +00:00
c41373d9bd
* Using lambdas instead of member function pointers simplifies the command dispatching and reduces the code volume * Removed duplicate error handling * Fix for issue #956 * Unit test updates * Resolved SonarQube issues
33 lines
800 B
C++
33 lines
800 B
C++
//---------------------------------------------------------------------------
|
|
//
|
|
// SCSI Target Emulator RaSCSI Reloaded
|
|
// for Raspberry Pi
|
|
//
|
|
// Copyright (C) 2021-2022 Uwe Seimet
|
|
//
|
|
// Interface for SCSI primary commands (see https://www.t10.org/drafts.htm, SPC-6)
|
|
//
|
|
//---------------------------------------------------------------------------
|
|
|
|
#pragma once
|
|
|
|
class ScsiPrimaryCommands
|
|
{
|
|
|
|
public:
|
|
|
|
ScsiPrimaryCommands() = default;
|
|
virtual ~ScsiPrimaryCommands() = default;
|
|
|
|
// Mandatory commands
|
|
virtual void TestUnitReady() = 0;
|
|
virtual void Inquiry() = 0;
|
|
virtual void ReportLuns() = 0;
|
|
|
|
// Optional commands implemented by all RaSCSI device types
|
|
virtual void RequestSense() = 0;
|
|
virtual void ReleaseUnit() = 0;
|
|
virtual void ReserveUnit() = 0;
|
|
virtual void SendDiagnostic() = 0;
|
|
};
|