summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlalelmahrouss@icloud.com>2024-02-01 12:46:54 +0100
committerAmlal El Mahrouss <amlalelmahrouss@icloud.com>2024-02-01 12:46:54 +0100
commit54a426e7d11eb12a8c3710f3632b7084edf423fd (patch)
treee818b906f607b15fcb8bc204baf4aeb746d142f1
parent6d7e78543509af471568cf698c58a9f526dba129 (diff)
See below.
- Implement Framebuffer object. - Print Firmware name in NewBoot. Signed-off-by: Amlal El Mahrouss <amlalelmahrouss@icloud.com>
-rw-r--r--Private/KernelKit/Framebuffer.hpp82
-rw-r--r--Private/NewBoot/Source/HEL/AMD64/Entrypoint.cxx4
-rw-r--r--Private/Source/Framebuffer.cxx48
3 files changed, 66 insertions, 68 deletions
diff --git a/Private/KernelKit/Framebuffer.hpp b/Private/KernelKit/Framebuffer.hpp
index 6dc94a3b..8ad23571 100644
--- a/Private/KernelKit/Framebuffer.hpp
+++ b/Private/KernelKit/Framebuffer.hpp
@@ -13,47 +13,45 @@
#include <NewKit/Defines.hpp>
#include <NewKit/Ref.hpp>
-namespace HCore
-{
- enum class FramebufferColorKind : UChar
- {
- RGB32,
- RGB16,
- RGB8,
- INVALID,
- };
-
- class FramebufferContext final
- {
- public:
- UIntPtr m_Base;
- UIntPtr m_Bpp;
- UInt m_Width;
- UInt m_Height;
-
- };
-
- class Framebuffer final
- {
- public:
- Framebuffer(Ref<FramebufferContext*> &addr);
- ~Framebuffer();
-
- Framebuffer &operator=(const Framebuffer &) = delete;
- Framebuffer(const Framebuffer &) = default;
-
- volatile UIntPtr* operator[](const UIntPtr &width_and_height);
- operator bool();
-
- const FramebufferColorKind& Color(const FramebufferColorKind &colour = FramebufferColorKind::INVALID);
-
- Ref<FramebufferContext*>& Leak();
-
- private:
- Ref<FramebufferContext*> m_FrameBufferAddr;
- FramebufferColorKind m_Colour;
-
- };
-} // namespace HCore
+namespace HCore {
+enum class FramebufferColorKind : UChar {
+ RGB32,
+ RGB16,
+ RGB8,
+ INVALID,
+};
+
+class FramebufferContext final {
+ public:
+ UIntPtr m_Base;
+ UIntPtr m_Bpp;
+ UInt m_Width;
+ UInt m_Height;
+};
+
+class Framebuffer final {
+ public:
+ Framebuffer(Ref<FramebufferContext *> &addr) : m_FrameBufferAddr(addr) {}
+ ~Framebuffer() {}
+
+ Framebuffer &operator=(const Framebuffer &) = delete;
+ Framebuffer(const Framebuffer &) = default;
+
+ volatile UIntPtr *operator[](const UIntPtr &width_and_height);
+
+ operator bool() {
+ return m_FrameBufferAddr && m_Colour != FramebufferColorKind::INVALID;
+ }
+
+ const FramebufferColorKind &Color(
+ const FramebufferColorKind &colour = FramebufferColorKind::INVALID);
+
+ Ref<FramebufferContext *> &Leak();
+
+ private:
+ Ref<FramebufferContext *> m_FrameBufferAddr;
+ FramebufferColorKind m_Colour;
+};
+} // namespace HCore
#endif /* ifndef __INC_FB_HPP__ */
diff --git a/Private/NewBoot/Source/HEL/AMD64/Entrypoint.cxx b/Private/NewBoot/Source/HEL/AMD64/Entrypoint.cxx
index d1d230b6..d06338b5 100644
--- a/Private/NewBoot/Source/HEL/AMD64/Entrypoint.cxx
+++ b/Private/NewBoot/Source/HEL/AMD64/Entrypoint.cxx
@@ -19,7 +19,9 @@ EFI_EXTERN_C int EfiMain(EfiHandlePtr ImageHandle,
KeInitEFI(SystemTable);
BTextWriter writer;
- writer.WriteString(L"HCoreLdr: Booting from \\Volume0\\...")
+ writer.WriteString(L"HCoreLdr: Firmware: ")
+ .WriteString(SystemTable->FirmwareVendor)
+ .WriteString(L"\r\nHCoreLdr: Booting on \\Volume0\\ (FAT32)")
.WriteString(L"\r\n");
UInt64 mapKey = 0;
diff --git a/Private/Source/Framebuffer.cxx b/Private/Source/Framebuffer.cxx
index 251cdb93..3b8fa229 100644
--- a/Private/Source/Framebuffer.cxx
+++ b/Private/Source/Framebuffer.cxx
@@ -1,36 +1,34 @@
-/*
- * ========================================================
- *
- * HCore
- * Copyright Mahrouss Logic, all rights reserved.
- *
- * ========================================================
- */
+/* -------------------------------------------
-#include <KernelKit/Framebuffer.hpp>
+ Copyright Mahrouss Logic
-namespace HCore {
-Framebuffer::Framebuffer(HCore::Ref<FramebufferContext*>& addr)
- : m_FrameBufferAddr(addr), m_Colour(FramebufferColorKind::RGB32) {}
+ File: Framebuffer.cxx
+ Purpose: EFI C++ library
-Framebuffer::~Framebuffer() = default;
+ Revision History:
-volatile UIntPtr* Framebuffer::operator[](const UIntPtr& width_and_height) {
- if (m_FrameBufferAddr)
- return reinterpret_cast<volatile HCore::UIntPtr*>(
- m_FrameBufferAddr->m_Base + width_and_height);
+ 01/02/24: Added file (amlel)
- return nullptr;
-}
+------------------------------------------- */
-Ref<FramebufferContext*>& Framebuffer::Leak() { return m_FrameBufferAddr; }
+#include <KernelKit/Framebuffer.hpp>
-Framebuffer::operator bool() { return m_FrameBufferAddr; }
+using namespace HCore;
-const FramebufferColorKind& Framebuffer::Color(
- const FramebufferColorKind& colour) {
- if (colour != FramebufferColorKind::INVALID) m_Colour = colour;
+volatile UIntPtr *Framebuffer::operator[](const UIntPtr &width_and_height) {
+ return (UIntPtr *)(m_FrameBufferAddr->m_Base * width_and_height);
+}
+
+const FramebufferColorKind &Framebuffer::Color(
+ const FramebufferColorKind &colour) {
+ if (m_Colour != FramebufferColorKind::INVALID &&
+ colour != FramebufferColorKind::INVALID) {
+ m_Colour = colour;
+ }
return m_Colour;
}
-} // namespace HCore
+
+Ref<FramebufferContext *> &Framebuffer::Leak() {
+ return this->m_FrameBufferAddr;
+}