openMSX
IDEHD.hh
Go to the documentation of this file.
1#ifndef IDEHD_HH
2#define IDEHD_HH
3
4#include "HD.hh"
6
7namespace openmsx {
8
9class DeviceConfig;
10class DiskManipulator;
11
12class IDEHD final : public HD, public AbstractIDEDevice
13{
14public:
15 IDEHD(const IDEHD&) = delete;
16 IDEHD& operator=(const IDEHD&) = delete;
17
18 explicit IDEHD(const DeviceConfig& config);
19 ~IDEHD() override;
20
21 template<typename Archive>
22 void serialize(Archive& ar, unsigned version);
23
24private:
25 // AbstractIDEDevice:
26 [[nodiscard]] bool isPacketDevice() override;
27 [[nodiscard]] std::string_view getDeviceName() override;
28 void fillIdentifyBlock (AlignedBuffer& buffer) override;
29 [[nodiscard]] unsigned readBlockStart(AlignedBuffer& buffer, unsigned count) override;
30 void writeBlockComplete(AlignedBuffer& buffer, unsigned count) override;
31 void executeCommand(byte cmd) override;
32
33private:
34 DiskManipulator& diskManipulator;
35 unsigned transferSectorNumber = 0; // avoid UMR in serialize()
36};
37
38} // namespace openmsx
39
40#endif
IDEHD & operator=(const IDEHD &)=delete
~IDEHD() override
Definition: IDEHD.cc:25
void serialize(Archive &ar, unsigned version)
Definition: IDEHD.cc:134
IDEHD(const IDEHD &)=delete
This file implemented 3 utility functions:
Definition: Autofire.cc:9