#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::ErrorOr RegisterListener( glcr::RefPtr port); private: const uint64_t IRQ_OFFSET = 0x60; glcr::Vector> driver_list_; };