37 template<
typename Archive>
38 void serialize(Archive& ar,
unsigned version);
43 SectorBuffer* buffers,
size_t startSector,
size_t num)
override;
44 void writeSectorImpl(
size_t sector,
const SectorBuffer& buf)
override;
45 [[nodiscard]]
size_t getNbSectorsImpl()
const override;
46 [[nodiscard]]
bool isWriteProtectedImpl()
const override;
51 [[nodiscard]] std::string_view getContainerName()
const override;
52 [[nodiscard]]
bool diskChanged()
override;
53 int insertDisk(
const std::string&
filename)
override;
56 void reset()
override;
57 [[nodiscard]]
bool isSelected()
override;
58 [[nodiscard]]
unsigned executeCmd(
const byte* cdb,
SCSI::Phase& phase,
unsigned& blocks)
override;
59 [[nodiscard]]
unsigned executingCmd(
SCSI::Phase& phase,
unsigned& blocks)
override;
60 [[nodiscard]]
byte getStatusCode()
override;
61 int msgOut(
byte value)
override;
62 byte msgIn()
override;
63 void disconnect()
override;
64 void busReset()
override;
65 [[nodiscard]]
unsigned dataIn(
unsigned& blocks)
override;
66 [[nodiscard]]
unsigned dataOut(
unsigned& blocks)
override;
69 void insert(
const std::string&
filename);
71 [[nodiscard]]
bool getReady();
74 [[nodiscard]]
unsigned inquiry();
75 [[nodiscard]]
unsigned modeSense();
76 [[nodiscard]]
unsigned requestSense();
77 [[nodiscard]]
bool checkReadOnly();
78 [[nodiscard]]
unsigned readCapacity();
79 [[nodiscard]]
bool checkAddress();
80 [[nodiscard]]
unsigned readSector(
unsigned& blocks);
81 [[nodiscard]]
unsigned writeSector(
unsigned& blocks);
88 std::unique_ptr<LSXCommand> lsxCommand;
92 unsigned currentSector;
93 unsigned currentLength;
101 static constexpr
unsigned MAX_LS = 26;
102 using LSInUse = std::bitset<MAX_LS>;
103 std::shared_ptr<LSInUse> lsInUse;
SCSILS120 operator=(const SCSILS120 &)=delete
SCSILS120(const SCSILS120 &)=delete
void serialize(Archive &ar, unsigned version)
This class represents the result of a sha1 calculation (a 160-bit value).
This file implemented 3 utility functions:
constexpr const char *const filename