#pragma once #include #include #include "object/port.h" class DriverManager { public: static DriverManager& Get(); DriverManager(); DriverManager(const DriverManager&) = delete; DriverManager(DriverManager&&) = delete; void WriteMessage(uint64_t irq_num, IpcMessage&& message); [[nodiscard]] glcr::ErrorCode RegisterListener(uint64_t irq_num, glcr::RefPtr port); private: glcr::HashMap> driver_map_; };