/* ------------------------------------------- Copyright (C) 2024, t& Corporation, all rights reserved. ------------------------------------------- */ #pragma once #include #include #include namespace Kernel { class AHCIDeviceInterface ZKA_DEVICE { public: explicit AHCIDeviceInterface(void (*Out)(MountpointInterface* outpacket), void (*In)(MountpointInterface* inpacket), void (*Cleanup)(void)); virtual ~AHCIDeviceInterface(); public: AHCIDeviceInterface& operator=(const AHCIDeviceInterface&) = default; AHCIDeviceInterface(const AHCIDeviceInterface&) = default; const Char* Name() const override; private: void (*fCleanup)(void) = {nullptr}; }; } // namespace Kernel