#pragma once #include #include #include #include class KeyboardDriver { public: KeyboardDriver(); KeyboardDriver(const KeyboardDriver&) = delete; KeyboardDriver(KeyboardDriver&&) = delete; void RegisterListener(uint64_t port_cap); Thread StartInterruptLoop(); void InterruptLoop(); private: z_cap_t irq_cap_; glcr::LinkedList listeners_; };