diff --git a/kernel/include/kernel/Device/FramebufferDevice.h b/kernel/include/kernel/Device/FramebufferDevice.h index bce2b3ca..8a095c40 100644 --- a/kernel/include/kernel/Device/FramebufferDevice.h +++ b/kernel/include/kernel/Device/FramebufferDevice.h @@ -10,6 +10,7 @@ namespace Kernel { public: static BAN::ErrorOr> create_from_boot_framebuffer(); + static BAN::RefPtr boot_framebuffer(); ~FramebufferDevice(); uint32_t width() const { return m_width; } diff --git a/kernel/kernel/Device/FramebufferDevice.cpp b/kernel/kernel/Device/FramebufferDevice.cpp index 60943df9..1f4ad793 100644 --- a/kernel/kernel/Device/FramebufferDevice.cpp +++ b/kernel/kernel/Device/FramebufferDevice.cpp @@ -12,12 +12,19 @@ namespace Kernel { + static BAN::RefPtr s_boot_framebuffer; + static uint32_t get_framebuffer_device_index() { static uint32_t index = 0; return index++; } + BAN::RefPtr FramebufferDevice::boot_framebuffer() + { + return s_boot_framebuffer; + } + BAN::ErrorOr> FramebufferDevice::create_from_boot_framebuffer() { ASSERT(g_boot_info.framebuffer.type == FramebufferInfo::Type::RGB); @@ -37,6 +44,7 @@ namespace Kernel auto device = BAN::RefPtr::adopt(device_ptr); TRY(device->initialize()); DevFileSystem::get().add_device(device); + s_boot_framebuffer = device; return device; }