summaryrefslogtreecommitdiffhomepage
path: root/Private
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@el-mahrouss-logic.com>2024-03-17 10:59:07 +0100
committerAmlal El Mahrouss <amlal@el-mahrouss-logic.com>2024-03-17 11:00:09 +0100
commit9898520f721220a2af4be59fd92e8ad8afcd4287 (patch)
tree35662af54535ccc07366b1a3a554f6296e76f4ce /Private
parent45548d516ddf5e88bf80940365d151e1bd69c29f (diff)
Unstable: See below.
These changes are related to the current ticket regarding AHCI support. This commit is just to upstream changes from local. Signed-off-by: Amlal El Mahrouss <amlal@el-mahrouss-logic.com>
Diffstat (limited to 'Private')
-rw-r--r--Private/Builtins/.gitkeep (renamed from Private/Drivers/.gitkeep)0
-rw-r--r--Private/Builtins/ACPI/.gitkeep (renamed from Private/Drivers/ACPI/.gitkeep)0
-rw-r--r--Private/Builtins/ACPI/ACPI.hpp (renamed from Private/Drivers/ACPI/ACPI.hpp)0
-rw-r--r--Private/Builtins/ACPI/ACPIManager.hxx (renamed from Private/Drivers/ACPI/ACPIManager.hxx)6
-rw-r--r--Private/Builtins/ACPI/compile_flags.txt (renamed from Private/Drivers/ACPI/compile_flags.txt)0
-rw-r--r--Private/Builtins/AHCI/.gitkeep (renamed from Private/Drivers/AHCI/.gitkeep)0
-rw-r--r--Private/Builtins/AHCI/API.hxx24
-rw-r--r--Private/Builtins/AHCI/Defines.hxx (renamed from Private/Drivers/AHCI/Defines.hxx)0
-rw-r--r--Private/Builtins/AHCI/compile_flags.txt (renamed from Private/Drivers/AHCI/compile_flags.txt)0
-rw-r--r--Private/Builtins/ATA/Defines.hxx (renamed from Private/Drivers/ATA/Defines.hxx)2
-rw-r--r--Private/Builtins/ATA/compile_flags.txt (renamed from Private/Drivers/ATA/compile_flags.txt)0
-rw-r--r--Private/Builtins/Ethernet/.gitkeep (renamed from Private/Drivers/Ethernet/.gitkeep)0
-rw-r--r--Private/Builtins/Ethernet/compile_flags.txt (renamed from Private/Drivers/Ethernet/compile_flags.txt)0
-rw-r--r--Private/Builtins/HPET/.gitkeep (renamed from Private/Drivers/HPET/.gitkeep)0
-rw-r--r--Private/Builtins/NVME/.gitkeep (renamed from Private/Drivers/NVME/.gitkeep)0
-rw-r--r--Private/Builtins/NVME/compile_flags.txt (renamed from Private/Drivers/NVME/compile_flags.txt)0
-rw-r--r--Private/Builtins/PS2/PS2MouseInterface.hxx (renamed from Private/Drivers/PS2/PS2KernelMouse.hxx)12
-rw-r--r--Private/Builtins/README.TXT16
-rw-r--r--Private/Builtins/WiFi/.gitkeep (renamed from Private/Drivers/WiFi/.gitkeep)0
-rw-r--r--Private/Builtins/WiFi/compile_flags.txt (renamed from Private/Drivers/WiFi/compile_flags.txt)0
-rw-r--r--Private/Builtins/XHCI/.gitkeep (renamed from Private/Drivers/XHCI/.gitkeep)0
-rw-r--r--Private/Builtins/XHCI/Defines.hxx (renamed from Private/Drivers/XHCI/Defines.hxx)2
-rw-r--r--Private/Builtins/XHCI/compile_flags.txt (renamed from Private/Drivers/XHCI/compile_flags.txt)0
-rw-r--r--Private/CompilerKit/Version.hxx4
-rw-r--r--Private/Drivers/README.TXT21
-rw-r--r--Private/FSKit/Defines.hxx2
-rw-r--r--Private/FSKit/NewFS.hxx2
-rw-r--r--Private/FirmwareKit/Handover.hxx4
-rw-r--r--Private/HALKit/AMD64/HalACPIManager.cpp2
-rw-r--r--Private/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp2
-rw-r--r--Private/HALKit/AMD64/HalKernelMouse.cxx180
-rw-r--r--Private/KernelKit/Defines.hpp2
-rw-r--r--Private/KernelKit/FileManager.hpp2
-rw-r--r--Private/NewBoot/BootKit/Arch/ATA.hxx3
-rw-r--r--Private/NewBoot/BootKit/Arch/SATA.hxx4
-rw-r--r--Private/NewBoot/NetBoot/EfiModule.cxx6
-rw-r--r--Private/NewBoot/Source/BootMain.cxx2
-rw-r--r--Private/NewBoot/Source/HEL/AMD64/AMD64-ATA.cxx2
-rw-r--r--Private/NewKit/Defines.hpp2
-rw-r--r--Private/Source/Storage/AHCIDeviceInterface.cxx (renamed from Private/Source/Storage/AHCI.cxx)0
-rw-r--r--Private/Source/Storage/ATA-Wrapper.cxx (renamed from Private/Source/Storage/ATA.cxx)10
-rw-r--r--Private/Source/Storage/NVMEDeviceInterface.cxx (renamed from Private/Source/Storage/NVME.cxx)0
-rw-r--r--Private/Source/Storage/StorageBase.cxx (renamed from Private/Source/Storage/Storage.cxx)0
-rw-r--r--Private/StorageKit/Storage.hpp6
44 files changed, 175 insertions, 143 deletions
diff --git a/Private/Drivers/.gitkeep b/Private/Builtins/.gitkeep
index e69de29b..e69de29b 100644
--- a/Private/Drivers/.gitkeep
+++ b/Private/Builtins/.gitkeep
diff --git a/Private/Drivers/ACPI/.gitkeep b/Private/Builtins/ACPI/.gitkeep
index e69de29b..e69de29b 100644
--- a/Private/Drivers/ACPI/.gitkeep
+++ b/Private/Builtins/ACPI/.gitkeep
diff --git a/Private/Drivers/ACPI/ACPI.hpp b/Private/Builtins/ACPI/ACPI.hpp
index 1a4329fc..1a4329fc 100644
--- a/Private/Drivers/ACPI/ACPI.hpp
+++ b/Private/Builtins/ACPI/ACPI.hpp
diff --git a/Private/Drivers/ACPI/ACPIManager.hxx b/Private/Builtins/ACPI/ACPIManager.hxx
index dc3dd573..1fa5e714 100644
--- a/Private/Drivers/ACPI/ACPIManager.hxx
+++ b/Private/Builtins/ACPI/ACPIManager.hxx
@@ -7,7 +7,7 @@
#ifndef __ACPI_MANAGER__
#define __ACPI_MANAGER__
-#include <Drivers/ACPI/ACPI.hpp>
+#include <Builtins/ACPI/ACPI.hpp>
#include <KernelKit/DebugOutput.hpp>
#include <NewKit/Defines.hpp>
#include <NewKit/Ref.hpp>
@@ -15,7 +15,7 @@
namespace HCore {
class ACPIManager final {
public:
- explicit ACPIManager(voidPtr rsdptr);
+ explicit ACPIManager(voidPtr rsdPtr);
~ACPIManager() = default;
ACPIManager &operator=(const ACPIManager &) = default;
@@ -41,4 +41,4 @@ class ACPIManager final {
};
} // namespace HCore
-#endif // !__ACPI_MANAGER__
+#endif // !__ACPI_MANAGER__
diff --git a/Private/Drivers/ACPI/compile_flags.txt b/Private/Builtins/ACPI/compile_flags.txt
index 1bc51142..1bc51142 100644
--- a/Private/Drivers/ACPI/compile_flags.txt
+++ b/Private/Builtins/ACPI/compile_flags.txt
diff --git a/Private/Drivers/AHCI/.gitkeep b/Private/Builtins/AHCI/.gitkeep
index e69de29b..e69de29b 100644
--- a/Private/Drivers/AHCI/.gitkeep
+++ b/Private/Builtins/AHCI/.gitkeep
diff --git a/Private/Builtins/AHCI/API.hxx b/Private/Builtins/AHCI/API.hxx
new file mode 100644
index 00000000..90e68bad
--- /dev/null
+++ b/Private/Builtins/AHCI/API.hxx
@@ -0,0 +1,24 @@
+/* -------------------------------------------
+
+ Copyright Mahrouss Logic
+
+ File: API.hxx
+ Purpose: AHCI API.
+
+ Revision History:
+
+ 03/17/24: Added file (amlel)
+
+------------------------------------------- */
+
+#pragma once
+
+#include <AHCI/Defines.hxx>
+#include <NewKit/Defines.hpp>
+#include <ObjectKit/Object.hxx>
+
+#define kObjectAHCINamespace "AHCI_DRV\\"
+
+namespace HCore::Builtins {
+inline Boolean ke_get_ahci_handle(ObjectPtr* ppAhciObject);
+} // namespace HCore::Builtins \ No newline at end of file
diff --git a/Private/Drivers/AHCI/Defines.hxx b/Private/Builtins/AHCI/Defines.hxx
index c1d3c063..c1d3c063 100644
--- a/Private/Drivers/AHCI/Defines.hxx
+++ b/Private/Builtins/AHCI/Defines.hxx
diff --git a/Private/Drivers/AHCI/compile_flags.txt b/Private/Builtins/AHCI/compile_flags.txt
index 1bc51142..1bc51142 100644
--- a/Private/Drivers/AHCI/compile_flags.txt
+++ b/Private/Builtins/AHCI/compile_flags.txt
diff --git a/Private/Drivers/ATA/Defines.hxx b/Private/Builtins/ATA/Defines.hxx
index f4a02467..a4a212bd 100644
--- a/Private/Drivers/ATA/Defines.hxx
+++ b/Private/Builtins/ATA/Defines.hxx
@@ -116,3 +116,5 @@ using namespace HCore;
#define ATA_ADDRESS2(x) (x + 4)
#define ATA_ADDRESS3(x) (x + 5)
#define ATA_COMMAND(x) (x + 7)
+
+#define kATASectorSize 4096
diff --git a/Private/Drivers/ATA/compile_flags.txt b/Private/Builtins/ATA/compile_flags.txt
index 1bc51142..1bc51142 100644
--- a/Private/Drivers/ATA/compile_flags.txt
+++ b/Private/Builtins/ATA/compile_flags.txt
diff --git a/Private/Drivers/Ethernet/.gitkeep b/Private/Builtins/Ethernet/.gitkeep
index e69de29b..e69de29b 100644
--- a/Private/Drivers/Ethernet/.gitkeep
+++ b/Private/Builtins/Ethernet/.gitkeep
diff --git a/Private/Drivers/Ethernet/compile_flags.txt b/Private/Builtins/Ethernet/compile_flags.txt
index 545816fc..545816fc 100644
--- a/Private/Drivers/Ethernet/compile_flags.txt
+++ b/Private/Builtins/Ethernet/compile_flags.txt
diff --git a/Private/Drivers/HPET/.gitkeep b/Private/Builtins/HPET/.gitkeep
index e69de29b..e69de29b 100644
--- a/Private/Drivers/HPET/.gitkeep
+++ b/Private/Builtins/HPET/.gitkeep
diff --git a/Private/Drivers/NVME/.gitkeep b/Private/Builtins/NVME/.gitkeep
index e69de29b..e69de29b 100644
--- a/Private/Drivers/NVME/.gitkeep
+++ b/Private/Builtins/NVME/.gitkeep
diff --git a/Private/Drivers/NVME/compile_flags.txt b/Private/Builtins/NVME/compile_flags.txt
index 1bc51142..1bc51142 100644
--- a/Private/Drivers/NVME/compile_flags.txt
+++ b/Private/Builtins/NVME/compile_flags.txt
diff --git a/Private/Drivers/PS2/PS2KernelMouse.hxx b/Private/Builtins/PS2/PS2MouseInterface.hxx
index e78bd97f..682151e9 100644
--- a/Private/Drivers/PS2/PS2KernelMouse.hxx
+++ b/Private/Builtins/PS2/PS2MouseInterface.hxx
@@ -2,7 +2,7 @@
Copyright Mahrouss Logic
- File: PS2KernelMouse.hxx
+ File: PS2MouseInterface.hxx
Purpose: PS/2 mouse.
Revision History:
@@ -18,13 +18,13 @@
#include <NewKit/Defines.hpp>
namespace HCore {
-/// @brief Enabled for kernel purposes, kernel mouse.
-class PS2KernelMouse final {
+/// @brief PS/2 Mouse driver interface
+class PS2MouseInterface final {
public:
- explicit PS2KernelMouse() = default;
- ~PS2KernelMouse() = default;
+ explicit PS2MouseInterface() = default;
+ ~PS2MouseInterface() = default;
- HCORE_COPY_DEFAULT(PS2KernelMouse);
+ HCORE_COPY_DEFAULT(PS2MouseInterface);
public:
Void Init() noexcept {
diff --git a/Private/Builtins/README.TXT b/Private/Builtins/README.TXT
new file mode 100644
index 00000000..ce39f472
--- /dev/null
+++ b/Private/Builtins/README.TXT
@@ -0,0 +1,16 @@
+==============
+HCore Builtins
+==============
+
+===============
+What are these?
+===============
+
+These are HCore builtins device drivers.
+
+===========
+Maintainers
+===========
+
+ACPIManager: Amlal EL Mahrouss
+AHCI: Amlal EL Mahrouss \ No newline at end of file
diff --git a/Private/Drivers/WiFi/.gitkeep b/Private/Builtins/WiFi/.gitkeep
index e69de29b..e69de29b 100644
--- a/Private/Drivers/WiFi/.gitkeep
+++ b/Private/Builtins/WiFi/.gitkeep
diff --git a/Private/Drivers/WiFi/compile_flags.txt b/Private/Builtins/WiFi/compile_flags.txt
index 1bc51142..1bc51142 100644
--- a/Private/Drivers/WiFi/compile_flags.txt
+++ b/Private/Builtins/WiFi/compile_flags.txt
diff --git a/Private/Drivers/XHCI/.gitkeep b/Private/Builtins/XHCI/.gitkeep
index e69de29b..e69de29b 100644
--- a/Private/Drivers/XHCI/.gitkeep
+++ b/Private/Builtins/XHCI/.gitkeep
diff --git a/Private/Drivers/XHCI/Defines.hxx b/Private/Builtins/XHCI/Defines.hxx
index d67809af..32eb8cca 100644
--- a/Private/Drivers/XHCI/Defines.hxx
+++ b/Private/Builtins/XHCI/Defines.hxx
@@ -60,7 +60,7 @@ typedef struct USBInterruptEnableRegister final {
/*
Some terminology:
- Frame Number: Number of processed entry of Frame List.
+ Frame Number: Number of processed entry of the Frame List.
Frame List Base Address:
32-bit physical adress of Frame List. Remember that first 12 bytes are
always 0. The Frame List must contain 1024 entries.
diff --git a/Private/Drivers/XHCI/compile_flags.txt b/Private/Builtins/XHCI/compile_flags.txt
index 1bc51142..1bc51142 100644
--- a/Private/Drivers/XHCI/compile_flags.txt
+++ b/Private/Builtins/XHCI/compile_flags.txt
diff --git a/Private/CompilerKit/Version.hxx b/Private/CompilerKit/Version.hxx
index d29e0543..5c1e3bd0 100644
--- a/Private/CompilerKit/Version.hxx
+++ b/Private/CompilerKit/Version.hxx
@@ -1,4 +1,4 @@
#pragma once
-#define BOOTLOADER_VERSION L"v1.13.A"
-#define KERNEL_VERSION "v1.13.A"
+#define BOOTLOADER_VERSION L"v1.14.0"
+#define KERNEL_VERSION "v1.14.0"
diff --git a/Private/Drivers/README.TXT b/Private/Drivers/README.TXT
deleted file mode 100644
index e6af72bc..00000000
--- a/Private/Drivers/README.TXT
+++ /dev/null
@@ -1,21 +0,0 @@
-==========================
-Basic Device Drivers (BDD)
-==========================
-
-1 - Build them
-2 - Place them inside Private/Root
-3 - And continue your build.
-
-===============
-What are these?
-===============
-
-These are HCore device drivers.
-Some of them are running in Ring-3, to let the driver restart in case of a crash.
-
-===========
-Maintainers
-===========
-
-ACPIManager: Amlal EL Mahrouss
-AHCI: Amlal EL Mahrouss \ No newline at end of file
diff --git a/Private/FSKit/Defines.hxx b/Private/FSKit/Defines.hxx
index 73c422be..3d3ce2ec 100644
--- a/Private/FSKit/Defines.hxx
+++ b/Private/FSKit/Defines.hxx
@@ -8,4 +8,4 @@
#include <NewKit/Defines.hpp>
-#define FSKIT_VERSION "1.0.0"
+#define FSKIT_VERSION "1.00"
diff --git a/Private/FSKit/NewFS.hxx b/Private/FSKit/NewFS.hxx
index 63e4a017..8632e650 100644
--- a/Private/FSKit/NewFS.hxx
+++ b/Private/FSKit/NewFS.hxx
@@ -28,7 +28,7 @@
#define kNewFSInvalidCatalog -1
#define kNewFSNodeNameLen 256
-#define kNewFSMinimumSectorSz 2048
+#define kNewFSMinimumSectorSz 4096
#define kNewFSIdentLen 8
#define kNewFSIdent " NewFS"
diff --git a/Private/FirmwareKit/Handover.hxx b/Private/FirmwareKit/Handover.hxx
index e7d27020..cdf7d896 100644
--- a/Private/FirmwareKit/Handover.hxx
+++ b/Private/FirmwareKit/Handover.hxx
@@ -68,9 +68,7 @@ struct HandoverInformationHeader {
WideChar f_FirmwareVendorName[32];
SizeT f_FirmwareVendorLen;
struct {
- VoidPtr f_AcpiTable;
- VoidPtr f_SmBIOS;
- VoidPtr f_RTC;
+ VoidPtr f_VendorTables;
} f_HardwareTables;
struct {
UIntPtr f_The;
diff --git a/Private/HALKit/AMD64/HalACPIManager.cpp b/Private/HALKit/AMD64/HalACPIManager.cpp
index 945ae6d8..b73dd996 100644
--- a/Private/HALKit/AMD64/HalACPIManager.cpp
+++ b/Private/HALKit/AMD64/HalACPIManager.cpp
@@ -4,7 +4,7 @@
------------------------------------------- */
-#include <Drivers/ACPI/ACPIManager.hxx>
+#include <Builtins/ACPI/ACPIManager.hxx>
#include <HALKit/AMD64/Processor.hpp>
#include <NewKit/String.hpp>
diff --git a/Private/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp b/Private/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp
index 0727aff0..edb821b9 100644
--- a/Private/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp
+++ b/Private/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp
@@ -4,7 +4,7 @@
------------------------------------------- */
-#include <Drivers/ACPI/ACPIManager.hxx>
+#include <Builtins/ACPI/ACPIManager.hxx>
#include <HALKit/AMD64/Processor.hpp>
///////////////////////////////////////////////////////////////////////////////////////
diff --git a/Private/HALKit/AMD64/HalKernelMouse.cxx b/Private/HALKit/AMD64/HalKernelMouse.cxx
index bce6272f..2427ff2d 100644
--- a/Private/HALKit/AMD64/HalKernelMouse.cxx
+++ b/Private/HALKit/AMD64/HalKernelMouse.cxx
@@ -1,139 +1,143 @@
-#include <KernelKit/Rsrc/Util.hxx>
+/* -------------------------------------------
+
+ Copyright Mahrouss Logic
+
+------------------------------------------- */
+
+#include <Builtins/PS2/PS2MouseInterface.hxx>
+#include <KernelKit/Framebuffer.hpp>
#include <KernelKit/Rsrc/Cursor.rsrc>
-#include <Drivers/PS2/PS2KernelMouse.hxx>
+#include <KernelKit/Rsrc/Util.hxx>
#include <NewKit/Defines.hpp>
-#include <KernelKit/Framebuffer.hpp>
STATIC HCore::Int32 kPrevX = 0;
STATIC HCore::Int32 kPrevY = 0;
STATIC HCore::Int32 kX = 0;
STATIC HCore::Int32 kY = 0;
STATIC HCore::Int32 kMouseCycle = 0;
-STATIC HCore::PS2KernelMouse kMousePS2;
+STATIC HCore::PS2MouseInterface kMousePS2;
STATIC HCore::Int32 kMousePacket[4];
STATIC HCore::Boolean kMousePacketReady = false;
-#define kPS2LeftButton 0b00000001
-#define kPS2MiddleButton 0b00000010
-#define kPS2RightButton 0b00000100
+#define kPS2LeftButton 0b00000001
+#define kPS2MiddleButton 0b00000010
+#define kPS2RightButton 0b00000100
+
+#define kPS2XSign 0b00010000
+#define kPS2YSign 0b00100000
+#define kPS2XOverflow 0b01000000
+#define kPS2YOverflow 0b10000000
-#define kPS2XSign 0b00010000
-#define kPS2YSign 0b00100000
-#define kPS2XOverflow 0b01000000
-#define kPS2YOverflow 0b10000000
+using namespace HCore;
-EXTERN_C void _hal_mouse_handler()
-{
+/// @brief Interrupt handler for the mouse.
+/// @return
+EXTERN_C Void _hal_mouse_handler() {
#ifdef __DEBUG__
- HCore::UInt8 data = HCore::HAL::In8(0x60);
+ HCore::UInt8 data = HCore::HAL::In8(0x60);
- switch (kMouseCycle)
- {
- case 0:
- {
- if (kMousePacketReady) break;
- if ((data & 0b00001000) == 0) break;
+ switch (kMouseCycle) {
+ case 0: {
+ if (kMousePacketReady) break;
+ if ((data & 0b00001000) == 0) break;
- kMousePacket[0] = data;
- ++kMouseCycle;
+ kMousePacket[0] = data;
+ ++kMouseCycle;
- break;
+ break;
}
- case 1:
- {
- if (kMousePacketReady) break;
+ case 1: {
+ if (kMousePacketReady) break;
- kMousePacket[1] = data;
- ++kMouseCycle;
+ kMousePacket[1] = data;
+ ++kMouseCycle;
- break;
+ break;
}
- case 2:
- {
- if (kMousePacketReady) break;
+ case 2: {
+ if (kMousePacketReady) break;
- kMousePacket[2] = data;
- ++kMouseCycle;
- kMousePacketReady = true;
- kMouseCycle = 0;
+ kMousePacket[2] = data;
+ ++kMouseCycle;
+ kMousePacketReady = true;
+ kMouseCycle = 0;
- break;
+ break;
}
default:
- break;
- }
+ break;
+ }
- // Notify PIC controller that we're done with it's interrupt.
+ // Notify PIC controller that we're done with it's interrupt.
- HCore::HAL::Out8(0x20, 0x20);
- HCore::HAL::Out8(0xA0, 0x20);
+ HCore::HAL::Out8(0x20, 0x20);
+ HCore::HAL::Out8(0xA0, 0x20);
#endif
}
-EXTERN_C void _hal_mouse_draw()
-{
+/// @brief Draws the kernel's mouse.
+/// @return void
+EXTERN_C Void _hal_mouse_draw() {
#ifdef __DEBUG__
- if (!kMousePacketReady) return;
-
- bool xNeg, yNeg, xOvf, yOvf;
+ if (!kMousePacketReady) return;
- xNeg = (kMousePacket[0] & kPS2XSign);
- yNeg = (kMousePacket[0] & kPS2YSign);
-
- xOvf = (kMousePacket[0] & kPS2XOverflow);
- yOvf = (kMousePacket[0] & kPS2YOverflow);
+ bool xNeg, yNeg, xOvf, yOvf;
- kX += xNeg ? (256 - kMousePacket[1]) : (256 - (-kMousePacket[1]));
- kY += yNeg ? (256 - kMousePacket[2]) : (256 - (-kMousePacket[2]));;
+ xNeg = (kMousePacket[0] & kPS2XSign);
+ yNeg = (kMousePacket[0] & kPS2YSign);
- if (xOvf) {
- kX += xNeg ? 255 : -255;
- }
+ xOvf = (kMousePacket[0] & kPS2XOverflow);
+ yOvf = (kMousePacket[0] & kPS2YOverflow);
- if (yOvf) {
- kY += yNeg ? 255 : -255;
- }
+ kX += xNeg ? (256 - kMousePacket[1]) : (256 - (-kMousePacket[1]));
+ kY += yNeg ? (256 - kMousePacket[2]) : (256 - (-kMousePacket[2]));
+ ;
- if (kY > kHandoverHeader->f_GOP.f_Height)
- {
- return;
- }
+ if (xOvf) {
+ kX += xNeg ? 255 : -255;
+ }
- if (kX > kHandoverHeader->f_GOP.f_Width)
- {
- return;
- }
+ if (yOvf) {
+ kY += yNeg ? 255 : -255;
+ }
+
+ if (kY > kHandoverHeader->f_GOP.f_Height) {
+ return;
+ }
+
+ if (kX > kHandoverHeader->f_GOP.f_Width) {
+ return;
+ }
- KeClearZone(POINTER_HEIGHT, POINTER_WIDTH, kPrevX, kPrevY);
+ KeClearZone(POINTER_HEIGHT, POINTER_WIDTH, kPrevX, kPrevY);
- KeInitRsrc();
- KeDrawRsrc(Pointer, POINTER_HEIGHT, POINTER_WIDTH, kX, kY);
- KeClearRsrc();
+ KeInitRsrc();
+ KeDrawRsrc(Pointer, POINTER_HEIGHT, POINTER_WIDTH, kX, kY);
+ KeClearRsrc();
- kPrevX = kMousePacket[1];
- kPrevY = kMousePacket[2];
+ kPrevX = kMousePacket[1];
+ kPrevY = kMousePacket[2];
- kMousePacketReady = false;
+ kMousePacketReady = false;
#endif
}
/// @brief Inital kernel mouse initializer
-/// @param
-EXTERN_C void _hal_init_mouse(void)
-{
+/// @param
+EXTERN_C Void _hal_init_mouse(void) {
#ifdef __DEBUG__
- kMousePS2.Init();
+ kMousePS2.Init();
- auto pic1Port = 0x20;
- auto pic2Port = 0xA0;
+ auto pic1Port = 0x20;
+ auto pic2Port = 0xA0;
- auto mask = 1 << 12;
- auto currentMask = HCore::HAL::In8(pic1Port + 1);
- auto newMask = currentMask & ~mask;
- HCore::HAL::Out8(pic1Port + 1, newMask);
+ auto mask = 1 << 12;
+ auto currentMask = HCore::HAL::In8(pic1Port + 1);
+ auto newMask = currentMask & ~mask;
+ HCore::HAL::Out8(pic1Port + 1, newMask);
- currentMask = HCore::HAL::In8(pic2Port + 1);
- newMask = currentMask & ~mask;
- HCore::HAL::Out8(pic2Port + 1, newMask);
+ currentMask = HCore::HAL::In8(pic2Port + 1);
+ newMask = currentMask & ~mask;
+ HCore::HAL::Out8(pic2Port + 1, newMask);
#endif
} \ No newline at end of file
diff --git a/Private/KernelKit/Defines.hpp b/Private/KernelKit/Defines.hpp
index b3fb8b8d..f89f66c1 100644
--- a/Private/KernelKit/Defines.hpp
+++ b/Private/KernelKit/Defines.hpp
@@ -8,5 +8,5 @@
#include <NewKit/Defines.hpp>
-#define KERNELKIT_VERSION "1.0.1"
+#define KERNELKIT_VERSION "1.01"
#define KERNELKIT_RELEASE "Cairo"
diff --git a/Private/KernelKit/FileManager.hpp b/Private/KernelKit/FileManager.hpp
index a00476bd..7af1ab0d 100644
--- a/Private/KernelKit/FileManager.hpp
+++ b/Private/KernelKit/FileManager.hpp
@@ -30,8 +30,6 @@
#define kBinFolder "/Programs"
#define kShLibsFolder "/Library"
-#define kSectorSz 512
-
/// refer to first enum.
#define kFileOpsCount 4
diff --git a/Private/NewBoot/BootKit/Arch/ATA.hxx b/Private/NewBoot/BootKit/Arch/ATA.hxx
index 15d36317..74bdc630 100644
--- a/Private/NewBoot/BootKit/Arch/ATA.hxx
+++ b/Private/NewBoot/BootKit/Arch/ATA.hxx
@@ -6,7 +6,7 @@
#pragma once
-#include <Drivers/ATA/Defines.hxx>
+#include <Builtins/ATA/Defines.hxx>
class BDeviceATA final {
public:
@@ -48,4 +48,3 @@ enum {
kATADeviceCount,
};
-#define kATASectorSz 512
diff --git a/Private/NewBoot/BootKit/Arch/SATA.hxx b/Private/NewBoot/BootKit/Arch/SATA.hxx
index 3e37be19..409601ec 100644
--- a/Private/NewBoot/BootKit/Arch/SATA.hxx
+++ b/Private/NewBoot/BootKit/Arch/SATA.hxx
@@ -7,7 +7,7 @@
#pragma once
#include <CompilerKit/CompilerKit.hxx>
-#include <Drivers/AHCI/Defines.hxx>
+#include <Builtins/AHCI/Defines.hxx>
class BDeviceSATA final {
public:
@@ -35,4 +35,4 @@ class BDeviceSATA final {
AHCITraits mTraits;
};
-#define kAHCISectorSz 512
+#define kAHCISectorSz 4096
diff --git a/Private/NewBoot/NetBoot/EfiModule.cxx b/Private/NewBoot/NetBoot/EfiModule.cxx
index 42415dc7..419a2be4 100644
--- a/Private/NewBoot/NetBoot/EfiModule.cxx
+++ b/Private/NewBoot/NetBoot/EfiModule.cxx
@@ -11,5 +11,11 @@
EXTERN_C Int32 EfiMain(EfiHandlePtr handle, EfiSystemTable* SystemTable)
{
+ InitEFI(ST);
+
+ /// - Find a network drive called ".\\HCoreWorkgroup"
+ /// - Download our image
+ /// - Boot from it.
+
return kEfiOk;
}
diff --git a/Private/NewBoot/Source/BootMain.cxx b/Private/NewBoot/Source/BootMain.cxx
index 650196f6..c0412797 100644
--- a/Private/NewBoot/Source/BootMain.cxx
+++ b/Private/NewBoot/Source/BootMain.cxx
@@ -179,6 +179,8 @@ EFI_EXTERN_C EFI_API Int EfiMain(EfiHandlePtr ImageHandle,
SystemTable->FirmwareVendor,
handoverHdrPtr->f_FirmwareVendorLen);
+ handoverHdrPtr->f_HardwareTables.f_VendorTables = ST->ConfigurationTable->VendorTable;
+
EFI::ExitBootServices(MapKey, ImageHandle);
bool isIniNotFound = (systemIni.Blob() == nullptr);
diff --git a/Private/NewBoot/Source/HEL/AMD64/AMD64-ATA.cxx b/Private/NewBoot/Source/HEL/AMD64/AMD64-ATA.cxx
index 145976c1..fc09a3a7 100644
--- a/Private/NewBoot/Source/HEL/AMD64/AMD64-ATA.cxx
+++ b/Private/NewBoot/Source/HEL/AMD64/AMD64-ATA.cxx
@@ -261,7 +261,7 @@ BDeviceATA& BDeviceATA::Write(CharacterType* Buf, const SizeT& SectorSz) {
boot_ata_write(this->Leak().mBase + i, this->Leak().mBus, this->Leak().mMaster,
Buf, Off);
- Off += kATASectorSz;
+ Off += kATASectorSize;
boot_ata_wait_io(this->Leak().mBus);
}
diff --git a/Private/NewKit/Defines.hpp b/Private/NewKit/Defines.hpp
index 4527df91..bc41633f 100644
--- a/Private/NewKit/Defines.hpp
+++ b/Private/NewKit/Defines.hpp
@@ -8,7 +8,7 @@
#include <NewKit/Macros.hpp>
-#define NEWKIT_VERSION "1.0.0"
+#define NEWKIT_VERSION "1.00"
#if !defined(_INC_NO_STDC_HEADERS) && defined(__GNUC__)
#include <CRT/__cxxkit_defines.hxx>
diff --git a/Private/Source/Storage/AHCI.cxx b/Private/Source/Storage/AHCIDeviceInterface.cxx
index 31fbce67..31fbce67 100644
--- a/Private/Source/Storage/AHCI.cxx
+++ b/Private/Source/Storage/AHCIDeviceInterface.cxx
diff --git a/Private/Source/Storage/ATA.cxx b/Private/Source/Storage/ATA-Wrapper.cxx
index 61a58fb1..407cd30f 100644
--- a/Private/Source/Storage/ATA.cxx
+++ b/Private/Source/Storage/ATA-Wrapper.cxx
@@ -27,7 +27,7 @@ bool set_prdt_struct(Ref<PRDT*>& refCtrl) {
return true;
}
- kcout << "[set_prdt_struct] [WARNING] Tried to change PRDT.\n";
+ kcout << "[set_prdt_struct] [WARNING] Trying to change PRDT.\n";
return false;
}
@@ -64,7 +64,7 @@ const char* ata_read_48(ULong lba) {
UIntPtr* packet = reinterpret_cast<UIntPtr*>(kPrdt.Leak()->PhysicalAddress());
packet[0] = k48BitRead;
- packet[1] = (UIntPtr)&buffer;
+ packet[1] = (UIntPtr)buffer;
packet[4] = lba;
rt_wait_400ns();
@@ -78,7 +78,7 @@ Int32 ata_write_48(ULong lba, const char* buffer) {
UIntPtr* packet = reinterpret_cast<UIntPtr*>(kPrdt.Leak()->PhysicalAddress());
packet[0] = k48BitWrite;
- packet[1] = (UIntPtr)&buffer;
+ packet[1] = (UIntPtr)buffer;
packet[2] = lba;
rt_wait_400ns();
@@ -86,13 +86,13 @@ Int32 ata_write_48(ULong lba, const char* buffer) {
return packet[1] == 2 ? kATAError : 0;
}
-Int32 ata_write_28(ULong lba, const char* text) {
+Int32 ata_write_28(ULong lba, const char* buffer) {
if (!kPrdt) return kATAError;
UIntPtr* packet = (UIntPtr*)kPrdt.Leak()->PhysicalAddress();
packet[0] = k28BitWrite;
- packet[1] = (UIntPtr)&text;
+ packet[1] = (UIntPtr)buffer;
packet[2] = lba;
rt_wait_400ns();
diff --git a/Private/Source/Storage/NVME.cxx b/Private/Source/Storage/NVMEDeviceInterface.cxx
index fc75604d..fc75604d 100644
--- a/Private/Source/Storage/NVME.cxx
+++ b/Private/Source/Storage/NVMEDeviceInterface.cxx
diff --git a/Private/Source/Storage/Storage.cxx b/Private/Source/Storage/StorageBase.cxx
index bba4be1f..bba4be1f 100644
--- a/Private/Source/Storage/Storage.cxx
+++ b/Private/Source/Storage/StorageBase.cxx
diff --git a/Private/StorageKit/Storage.hpp b/Private/StorageKit/Storage.hpp
index 8e05f557..51b2fdd6 100644
--- a/Private/StorageKit/Storage.hpp
+++ b/Private/StorageKit/Storage.hpp
@@ -14,7 +14,11 @@ typedef HCore::UInt16 SKScsiPacket[12];
extern const SKScsiPacket kCDRomPacketTemplate;
-#define f_kDriveSectorSize (512)
+#define f_kDriveSectorSizeHDD (512)
+#define f_kDriveSectorSizeSSD (4096)
+#define f_kDriveSectorSizeCDROM (2048)
+
#define f_kDriveSize(LAST_LBA) ((LAST_LBA + 1) * f_kDriveSectorSize)
#include <StorageKit/StorageCore.inl>
+