#pragma once namespace Kernel { class Semaphore { public: void block_indefinite(); void block_with_timeout(uint64_t timeout_ms); void block_with_wake_time(uint64_t wake_time_ms); void unblock(); }; }