// ============================================================================ // drivers/driver_registry.cpp — Driver/device registry globals // // Provides storage for per-category driver lists, the active console // pointer, and the platform bus singleton. Always compiled. // ============================================================================ #include #include // ── ConsoleDriver default write implementation ──────────────────────────── void ConsoleDriver::write(const char* s, size_t len) { for (size_t i = 0; i < len; ++i) { putchar(s[i]); } } // ── Console registry ────────────────────────────────────────────────────── static DriverList g_console_drivers; static ConsoleDriver* g_active_console = nullptr; namespace console { void register_driver(ConsoleDriver* driver) { g_console_drivers.add(driver); } void set_active(ConsoleDriver* driver) { g_active_console = driver; } ConsoleDriver* active() { return g_active_console; } DriverList& drivers() { return g_console_drivers; } } // namespace console // ── Platform bus (lazy singleton) ───────────────────────────────────────── namespace platform { Bus& bus() { if (!PlatformBus::instance()) { PlatformBus::create(); } return *PlatformBus::instance(); } } // namespace platform