openMSX
IDEHD.hh
Go to the documentation of this file.
1 #ifndef IDEHD_HH
2 #define IDEHD_HH
3 
4 #include "HD.hh"
5 #include "AbstractIDEDevice.hh"
6 
7 namespace openmsx {
8 
9 class DeviceConfig;
10 class DiskManipulator;
11 
12 class IDEHD final : public HD, public AbstractIDEDevice
13 {
14 public:
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 
24 private:
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 
33 private:
34  DiskManipulator& diskManipulator;
35  unsigned transferSectorNumber;
36 };
37 
38 } // namespace openmsx
39 
40 #endif
~IDEHD() override
Definition: IDEHD.cc:25
IDEHD & operator=(const IDEHD &)=delete
void serialize(Archive &ar, unsigned version)
Definition: IDEHD.cc:134
IDEHD(const IDEHD &)=delete
ALWAYS_INLINE unsigned count(const uint8_t *pIn, const uint8_t *pMatch, const uint8_t *pInLimit)
Definition: lz4.cc:207
This file implemented 3 utility functions:
Definition: Autofire.cc:9