diff options
| author | Amlal El Mahrouss <amlal@el-mahrouss-logic.com> | 2024-03-17 10:59:07 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@el-mahrouss-logic.com> | 2024-03-17 11:00:09 +0100 |
| commit | 9898520f721220a2af4be59fd92e8ad8afcd4287 (patch) | |
| tree | 35662af54535ccc07366b1a3a554f6296e76f4ce /Private | |
| parent | 45548d516ddf5e88bf80940365d151e1bd69c29f (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.hxx | 24 | ||||
| -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.TXT | 16 | ||||
| -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.hxx | 4 | ||||
| -rw-r--r-- | Private/Drivers/README.TXT | 21 | ||||
| -rw-r--r-- | Private/FSKit/Defines.hxx | 2 | ||||
| -rw-r--r-- | Private/FSKit/NewFS.hxx | 2 | ||||
| -rw-r--r-- | Private/FirmwareKit/Handover.hxx | 4 | ||||
| -rw-r--r-- | Private/HALKit/AMD64/HalACPIManager.cpp | 2 | ||||
| -rw-r--r-- | Private/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp | 2 | ||||
| -rw-r--r-- | Private/HALKit/AMD64/HalKernelMouse.cxx | 180 | ||||
| -rw-r--r-- | Private/KernelKit/Defines.hpp | 2 | ||||
| -rw-r--r-- | Private/KernelKit/FileManager.hpp | 2 | ||||
| -rw-r--r-- | Private/NewBoot/BootKit/Arch/ATA.hxx | 3 | ||||
| -rw-r--r-- | Private/NewBoot/BootKit/Arch/SATA.hxx | 4 | ||||
| -rw-r--r-- | Private/NewBoot/NetBoot/EfiModule.cxx | 6 | ||||
| -rw-r--r-- | Private/NewBoot/Source/BootMain.cxx | 2 | ||||
| -rw-r--r-- | Private/NewBoot/Source/HEL/AMD64/AMD64-ATA.cxx | 2 | ||||
| -rw-r--r-- | Private/NewKit/Defines.hpp | 2 | ||||
| -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.hpp | 6 |
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> + |
