summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--Comm/compile_flags.txt3
-rw-r--r--Comm/herror.hxx8
-rw-r--r--Comm/newstd.hxx2
-rw-r--r--Kernel/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp9
-rw-r--r--Kernel/HALKit/AMD64/HalKernelMain.cxx5
-rw-r--r--Kernel/KernelKit/ProcessScheduler.hxx17
-rw-r--r--Kernel/KernelKit/SMPManager.hpp6
-rw-r--r--Kernel/KernelKit/Semaphore.hpp5
-rw-r--r--Kernel/Sources/KernelHeap.cxx1
-rw-r--r--Kernel/Sources/ProcessScheduler.cxx13
-rw-r--r--Kernel/Sources/Semaphore.cxx19
-rw-r--r--newoskrnl.cflags1
-rw-r--r--newoskrnl.config5
-rw-r--r--newoskrnl.creator1
-rw-r--r--newoskrnl.cxxflags1
-rw-r--r--newoskrnl.files308
-rw-r--r--newoskrnl.includes2
17 files changed, 375 insertions, 31 deletions
diff --git a/Comm/compile_flags.txt b/Comm/compile_flags.txt
new file mode 100644
index 00000000..e1f07ac3
--- /dev/null
+++ b/Comm/compile_flags.txt
@@ -0,0 +1,3 @@
+-I./
+-I../Kerne;
+-std=c++20
diff --git a/Comm/herror.hxx b/Comm/herror.hxx
index 8cf15d17..e5042b60 100644
--- a/Comm/herror.hxx
+++ b/Comm/herror.hxx
@@ -8,6 +8,10 @@
#include <Comm/newstd.hxx>
+#define DbgOk() (kLastError == kErrorSuccess)
+#define DbgFailed() (kLastError != kErrorSuccess)
+#define DbgLastError() kLastError
+
typedef SInt32 HError;
inline constexpr HError kErrorSuccess = 0;
@@ -39,8 +43,4 @@ inline constexpr HError kErrorAsync = 57;
inline constexpr HError kErrorNonBlocking = 58;
inline constexpr HError kErrorUnimplemented = 0;
-#define DbgOk() (kLastError == kErrorSuccess)
-#define DbgFailed() (kLastError != kErrorSuccess)
-#define DbgLastError() kLastError
-
inline HError kLastError = 0;
diff --git a/Comm/newstd.hxx b/Comm/newstd.hxx
index a56d1993..51216296 100644
--- a/Comm/newstd.hxx
+++ b/Comm/newstd.hxx
@@ -136,7 +136,7 @@ public:
};
/**
-This class contains an URL
+@brief This class contains an URL
*/
class NURL
{
diff --git a/Kernel/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp b/Kernel/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp
index e4a2d99c..dfa02b11 100644
--- a/Kernel/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp
+++ b/Kernel/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp
@@ -160,6 +160,7 @@ namespace NewOS::HAL
}
STATIC HAL::StackFramePtr cFramePtr = nullptr;
+ STATIC Int32 cSMPInterrupt = 0x40;
EXTERN_C Void hal_apic_acknowledge_cont(Void)
{
@@ -186,12 +187,13 @@ namespace NewOS::HAL
{
Semaphore sem;
- sem.LockOrWait(&ProcessScheduler::The().Leak().TheCurrent().Leak(), Seconds(5));
+ HardwareTimer timer(Seconds(5));
+ sem.LockOrWait(&ProcessScheduler::The().Leak().TheCurrent().Leak(), &timer);
cFramePtr = stackFrame;
/// yes the exception field contains the core id.
- hal_send_start_ipi(stackFrame->Rcx, 0x40, cBaseAddressAPIC);
+ hal_send_start_ipi(stackFrame->Rcx, cSMPInterrupt, cBaseAddressAPIC);
sem.Unlock();
}
@@ -245,10 +247,9 @@ namespace NewOS::HAL
cProgramInitialized = new Boolean(true);
- constexpr auto cWhereToInterrupt = 0x40;
constexpr auto cWhatCore = 1;
- hal_send_start_ipi(cWhatCore, cWhereToInterrupt, cBaseAddressAPIC);
+ hal_send_start_ipi(cWhatCore, cSMPInterrupt, cBaseAddressAPIC);
}
else
{
diff --git a/Kernel/HALKit/AMD64/HalKernelMain.cxx b/Kernel/HALKit/AMD64/HalKernelMain.cxx
index 31732022..7d641153 100644
--- a/Kernel/HALKit/AMD64/HalKernelMain.cxx
+++ b/Kernel/HALKit/AMD64/HalKernelMain.cxx
@@ -16,6 +16,7 @@
#include <NewKit/Json.hpp>
#include <Modules/CoreCG/Accessibility.hxx>
#include <KernelKit/CodeManager.hpp>
+#include <Modules/ACPI/ACPIFactoryInterface.hxx>
#define KERNEL_INIT(X) X; \
NewOS::ke_stop(RUNTIME_CHECK_BOOTSTRAP);
@@ -179,12 +180,12 @@ EXTERN_C void hal_init_platform(
};
kSyscalls[cRebootInterrupt].Leak().Leak()->fProc = [](NewOS::VoidPtr rdx) -> void {
- NewOS::ACPIFactoryInterface acpi;
+ NewOS::ACPIFactoryInterface acpi(kHandoverHeader->f_HardwareTables.f_RsdPtr);
acpi.Reboot();
};
kSyscalls[cShutdownInterrupt].Leak().Leak()->fProc = [](NewOS::VoidPtr rdx) -> void {
- NewOS::ACPIFactoryInterface acpi;
+ NewOS::ACPIFactoryInterface acpi(kHandoverHeader->f_HardwareTables.f_RsdPtr);
acpi.Shutdown();
};
diff --git a/Kernel/KernelKit/ProcessScheduler.hxx b/Kernel/KernelKit/ProcessScheduler.hxx
index 98008d69..11555b1d 100644
--- a/Kernel/KernelKit/ProcessScheduler.hxx
+++ b/Kernel/KernelKit/ProcessScheduler.hxx
@@ -141,7 +141,8 @@ namespace NewOS
NEWOS_COPY_DEFAULT(ProcessHeader)
public:
- void SetEntrypoint(UIntPtr& imageStart) noexcept;
+ void SetEntrypoint(UIntPtr& imageStart) noexcept;
+ const Int32& GetExitCode() noexcept;
public:
Char Name[kProcessLen] = {"Process"};
@@ -179,30 +180,32 @@ namespace NewOS
}
//! @brief Crash the app, exits with code ~0.
- void Crash();
+ Void Crash();
//! @brief Exits app.
- void Exit(Int32 exitCode = 0);
+ Void Exit(Int32 exitCode = 0);
//! @brief TLS Allocate
- VoidPtr New(const SizeT& sz);
+ VoidPtr New(const SizeT& sz);
//! @brief TLS Free.
- Boolean Delete(VoidPtr ptr, const SizeT& sz);
+ Boolean Delete(VoidPtr ptr, const SizeT& sz);
//! @brief Wakes up threads.
- void Wake(const bool wakeup = false);
+ Void Wake(const bool wakeup = false);
// ProcessHeader getters.
public:
//! @brief ProcessHeader name getter, example: "C RunTime"
- const Char* GetName();
+ const Char* GetName();
const ProcessSelector& GetSelector();
const ProcessStatus& GetStatus();
const AffinityKind& GetAffinity();
private:
+ Int32 fLastExitCode{0};
+
friend ProcessScheduler;
friend ProcessHelper;
};
diff --git a/Kernel/KernelKit/SMPManager.hpp b/Kernel/KernelKit/SMPManager.hpp
index 1840dd20..9f4166ad 100644
--- a/Kernel/KernelKit/SMPManager.hpp
+++ b/Kernel/KernelKit/SMPManager.hpp
@@ -4,8 +4,8 @@
------------------------------------------- */
-#ifndef __SMP_MANAGER__
-#define __SMP_MANAGER__
+#ifndef __INC_SMP_MANAGER_HPP__
+#define __INC_SMP_MANAGER_HPP__
#include <ArchKit/ArchKit.hpp>
#include <CompilerKit/CompilerKit.hxx>
@@ -126,4 +126,4 @@ namespace NewOS
Void rt_hang_thread(HAL::StackFramePtr stack);
} // namespace NewOS
-#endif // !__SMP_MANAGER__
+#endif // !__INC_SMP_MANAGER_HPP__
diff --git a/Kernel/KernelKit/Semaphore.hpp b/Kernel/KernelKit/Semaphore.hpp
index 7850804d..83d711ed 100644
--- a/Kernel/KernelKit/Semaphore.hpp
+++ b/Kernel/KernelKit/Semaphore.hpp
@@ -7,6 +7,7 @@
#pragma once
#include <NewKit/Defines.hpp>
+#include <KernelKit/Timer.hpp>
#include <CompilerKit/CompilerKit.hxx>
namespace NewOS
@@ -27,11 +28,11 @@ namespace NewOS
bool Unlock() noexcept;
public:
- void Sync() noexcept;
+ void WaitForProcess() noexcept;
public:
bool Lock(ProcessHeader* process);
- bool LockOrWait(ProcessHeader* process, const Int64& seconds);
+ bool LockOrWait(ProcessHeader* process, HardwareTimerInterface* timer);
public:
NEWOS_COPY_DEFAULT(Semaphore);
diff --git a/Kernel/Sources/KernelHeap.cxx b/Kernel/Sources/KernelHeap.cxx
index c3e8e86b..875e00fb 100644
--- a/Kernel/Sources/KernelHeap.cxx
+++ b/Kernel/Sources/KernelHeap.cxx
@@ -185,6 +185,7 @@ namespace NewOS
{
virtualAddress->fCRC32 =
ke_calculate_crc32((Char*)virtualAddress->fTargetPtr, virtualAddress->fTargetPtrSize);
+
return true;
}
}
diff --git a/Kernel/Sources/ProcessScheduler.cxx b/Kernel/Sources/ProcessScheduler.cxx
index 315dc07a..ca9a3435 100644
--- a/Kernel/Sources/ProcessScheduler.cxx
+++ b/Kernel/Sources/ProcessScheduler.cxx
@@ -27,13 +27,19 @@ namespace NewOS
/// @brief Exit Code global
/***********************************************************************************/
- STATIC Int32 kLastExitCode = 0U;
+ STATIC Int32 cLastExitCode = 0U;
/// @brief Gets the latest exit code.
/// @note Not thread-safe.
+ /// @return Int32 the last exit code.
+ const Int32& ProcessHeader::GetExitCode() noexcept
+ {
+ return fLastExitCode;
+ }
+
const Int32& rt_get_exit_code() noexcept
{
- return kLastExitCode;
+ return cLastExitCode;
}
/***********************************************************************************/
@@ -164,7 +170,8 @@ namespace NewOS
ProcessScheduler::The().Leak().TheCurrent().Leak().ProcessId)
ke_stop(RUNTIME_CHECK_PROCESS);
- kLastExitCode = exit_code;
+ fLastExitCode = exit_code;
+ cLastExitCode = exit_code;
//! Delete image if not done already.
if (this->Image)
diff --git a/Kernel/Sources/Semaphore.cxx b/Kernel/Sources/Semaphore.cxx
index d52cf447..45fccbca 100644
--- a/Kernel/Sources/Semaphore.cxx
+++ b/Kernel/Sources/Semaphore.cxx
@@ -6,7 +6,6 @@
#include <KernelKit/ProcessScheduler.hxx>
#include <KernelKit/Semaphore.hpp>
-#include <KernelKit/Timer.hpp>
namespace NewOS
{
@@ -33,21 +32,31 @@ namespace NewOS
return fLockingProcess;
}
- bool Semaphore::LockOrWait(ProcessHeader* process, const Int64& seconds)
+ bool Semaphore::LockOrWait(ProcessHeader* process, HardwareTimerInterface* timer)
{
if (process == nullptr)
return false;
- HardwareTimer timer(Seconds(seconds));
- timer.Wait();
+ if (timer == nullptr)
+ return false;
+
+ this->Lock(process);
+
+ timer->Wait();
return this->Lock(process);
}
- void Semaphore::Sync() noexcept
+ /// @brief Wait with process, either wait for process being invalid, or not being run.
+ Void Semaphore::WaitForProcess() noexcept
{
while (fLockingProcess)
{
+ if (fLockingProcess->GetStatus() != ProcessStatus::kRunning)
+ {
+ this->Unlock();
+ break;
+ }
}
}
} // namespace NewOS
diff --git a/newoskrnl.cflags b/newoskrnl.cflags
new file mode 100644
index 00000000..68d51653
--- /dev/null
+++ b/newoskrnl.cflags
@@ -0,0 +1 @@
+-std=c17 \ No newline at end of file
diff --git a/newoskrnl.config b/newoskrnl.config
new file mode 100644
index 00000000..38552b7d
--- /dev/null
+++ b/newoskrnl.config
@@ -0,0 +1,5 @@
+// Add predefined macros for your project here. For example:
+// #define THE_ANSWER 42
+#define __KERNEL__
+#define __NEWOS_AMD64__
+#define __FSKIT_NEWFS__
diff --git a/newoskrnl.creator b/newoskrnl.creator
new file mode 100644
index 00000000..c03804d8
--- /dev/null
+++ b/newoskrnl.creator
@@ -0,0 +1 @@
+[General]
diff --git a/newoskrnl.cxxflags b/newoskrnl.cxxflags
new file mode 100644
index 00000000..e2c0e08a
--- /dev/null
+++ b/newoskrnl.cxxflags
@@ -0,0 +1 @@
+-std=c++20
diff --git a/newoskrnl.files b/newoskrnl.files
new file mode 100644
index 00000000..4f78121e
--- /dev/null
+++ b/newoskrnl.files
@@ -0,0 +1,308 @@
+.clang-format
+.gitignore
+Boot/BootKit/BitManip.hxx
+Boot/BootKit/BootKit.hxx
+Boot/BootKit/Device.hxx
+Boot/BootKit/EPM.hxx
+Boot/BootKit/HW/ATA.hxx
+Boot/BootKit/HW/SATA.hxx
+Boot/BootKit/Platform.hxx
+Boot/BootKit/Protocol.hxx
+Boot/BootKit/Vendor/Qr.hxx
+Boot/BootKit/Vendor/QrPrelude.hxx
+Boot/BootKit/Vendor/Shared/base.h
+Boot/BootKit/Vendor/Shared/bit.h
+Boot/BootKit/Vendor/Support.hxx
+Boot/BootKit/compile_flags.txt
+Boot/NetBoot/Module.cxx
+Boot/NetBoot/NetBoot.hxx
+Boot/ReadMe.md
+Boot/Sources/HEL/AMD64/BootAHCI.cxx
+Boot/Sources/HEL/AMD64/BootATA.cxx
+Boot/Sources/HEL/AMD64/BootFileReader.cxx
+Boot/Sources/HEL/AMD64/BootJump.S
+Boot/Sources/HEL/AMD64/BootMain.cxx
+Boot/Sources/HEL/AMD64/BootPlatform.cxx
+Boot/Sources/HEL/AMD64/BootString.cxx
+Boot/Sources/HEL/AMD64/BootTextWriter.cxx
+Boot/Sources/HEL/AMD64/New+Delete.cxx
+Boot/Sources/HEL/AMD64/Support.cxx
+Boot/Sources/HEL/AMD64/compile_flags.txt
+Boot/Sources/HEL/POWER/CoreBootStartup.S
+Boot/Sources/HEL/RISCV/BootRISCV.S
+Boot/Sources/compile_flags.txt
+Boot/amd64-efi.make
+Comm/compile_flags.txt
+Comm/herror.hxx
+Comm/newstd.hxx
+DDK/KernelCall.c
+DDK/KernelDev.c
+DDK/KernelDev.h
+DDK/KernelDispatchCall.S
+DDK/KernelPrint.c
+DDK/KernelPrint.h
+DDK/KernelStd.h
+DDK/KernelStdCxx.cc
+DDK/KernelString.c
+DDK/KernelString.h
+DDK/ReadMe.txt
+Doxyfile
+Drv/Bonjour/Bonjour.c
+Drv/Bonjour/x86_64.mk
+Drv/SampleDriver/CheckStck.c
+Drv/SampleDriver/SampleDriver.c
+Drv/SampleDriver/x86_64.mk
+Drv/VideoDrv/CheckStck.c
+Drv/VideoDrv/VideoDrv.c
+Drv/VideoDrv/x86_64.make
+Kernel/ArchKit/ArchKit.hpp
+Kernel/ArchKit/compile_flags.txt
+Kernel/CFKit/GUIDWizard.hpp
+Kernel/CFKit/GUIDWrapper.hpp
+Kernel/CFKit/Property.hpp
+Kernel/CFKit/URL.hpp
+Kernel/CFKit/compile_flags.txt
+Kernel/CRT/__mpcc_alloca.hxx
+Kernel/CRT/__mpcc_defines.hxx
+Kernel/CRT/__mpcc_exception.hxx
+Kernel/CRT/__mpcc_malloc.hxx
+Kernel/CompilerKit/CompilerKit.hxx
+Kernel/CompilerKit/Detail.hxx
+Kernel/CompilerKit/Version.hxx
+Kernel/Docs/SPECIFICATION.md
+Kernel/Docs/TODO-LIST.md
+Kernel/FSKit/Defines.hxx
+Kernel/FSKit/FAT32.hxx
+Kernel/FSKit/IndexableProperty.hxx
+Kernel/FSKit/NewFS.hxx
+Kernel/FirmwareKit/EFI.hxx
+Kernel/FirmwareKit/EFI/API.hxx
+Kernel/FirmwareKit/EFI/EFI.hxx
+Kernel/FirmwareKit/EPM.hxx
+Kernel/FirmwareKit/Handover.hxx
+Kernel/HALKit/64x0/HalVirtualMemory.cxx
+Kernel/HALKit/64x0/ReadMe.md
+Kernel/HALKit/AMD64/CPUID.hxx
+Kernel/HALKit/AMD64/HalACPIFactoryInterface.cxx
+Kernel/HALKit/AMD64/HalControlRegister.s
+Kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cpp
+Kernel/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp
+Kernel/HALKit/AMD64/HalDebugOutput.cxx
+Kernel/HALKit/AMD64/HalDebugPort.cxx
+Kernel/HALKit/AMD64/HalDescriptorLoader.cpp
+Kernel/HALKit/AMD64/HalHart.cpp
+Kernel/HALKit/AMD64/HalInstallTIB.asm
+Kernel/HALKit/AMD64/HalInterruptAPI.asm
+Kernel/HALKit/AMD64/HalKernelMain.cxx
+Kernel/HALKit/AMD64/HalKernelMouse.cxx
+Kernel/HALKit/AMD64/HalNewBoot.asm
+Kernel/HALKit/AMD64/HalPageAlloc.hpp
+Kernel/HALKit/AMD64/HalProcessor.cpp
+Kernel/HALKit/AMD64/HalRoutines.s
+Kernel/HALKit/AMD64/HalSMPCore.cxx
+Kernel/HALKit/AMD64/HalSMPCoreManager.asm
+Kernel/HALKit/AMD64/HalTimer.cxx
+Kernel/HALKit/AMD64/Hypervisor.hpp
+Kernel/HALKit/AMD64/PCI/Database.cxx
+Kernel/HALKit/AMD64/PCI/Device.cxx
+Kernel/HALKit/AMD64/PCI/Dma.cxx
+Kernel/HALKit/AMD64/PCI/Express.cxx
+Kernel/HALKit/AMD64/PCI/IO.cxx
+Kernel/HALKit/AMD64/PCI/Iterator.cxx
+Kernel/HALKit/AMD64/PCI/PCI.cxx
+Kernel/HALKit/AMD64/Processor.hpp
+Kernel/HALKit/AMD64/ReadMe.md
+Kernel/HALKit/AMD64/Storage/AHCI.cxx
+Kernel/HALKit/AMD64/Storage/ATA-DMA.cxx
+Kernel/HALKit/AMD64/Storage/ATA-PIO.cxx
+Kernel/HALKit/ARM64/HalPageAlloc.hpp
+Kernel/HALKit/ARM64/HalPageInternal.S
+Kernel/HALKit/ARM64/HalTimer.cxx
+Kernel/HALKit/ARM64/Processor.hxx
+Kernel/HALKit/ARM64/ReadMe.md
+Kernel/HALKit/ARM64/Storage/HalFlash.cxx
+Kernel/HALKit/AXP/CR.s
+Kernel/HALKit/AXP/CoreInterruptHandlerDEC.cpp
+Kernel/HALKit/AXP/CoreSyscallHandlerDEC.cpp
+Kernel/HALKit/AXP/HAL.s
+Kernel/HALKit/AXP/Processor.hpp
+Kernel/HALKit/AXP/SYSCALL.s
+Kernel/HALKit/AXP/VM.s
+Kernel/HALKit/POWER/HalContextSwitchPowerPC.s
+Kernel/HALKit/POWER/HalHardware.cxx
+Kernel/HALKit/POWER/HalHart.cxx
+Kernel/HALKit/POWER/HalSerialPort.cxx
+Kernel/HALKit/POWER/HalStartSequence.s
+Kernel/HALKit/POWER/HalThread.cxx
+Kernel/HALKit/POWER/HalVirtualMemory.cxx
+Kernel/HALKit/POWER/Hart.hxx
+Kernel/HALKit/POWER/MBCI/HalMBCIHost.cxx
+Kernel/HALKit/POWER/Processor.hpp
+Kernel/HALKit/POWER/ReadMe.md
+Kernel/HALKit/POWER/ppc-cpu.h
+Kernel/HALKit/POWER/ppc-mmu.h
+Kernel/HALKit/RISCV/Hart.hxx
+Kernel/HALKit/RISCV/ReadMe.md
+Kernel/HALKit/compile_flags.txt
+Kernel/HintKit/CompilerHint.hxx
+Kernel/KernelKit/CodeManager.hpp
+Kernel/KernelKit/DebugOutput.hpp
+Kernel/KernelKit/Defines.hpp
+Kernel/KernelKit/DeviceManager.hpp
+Kernel/KernelKit/DriveManager.hxx
+Kernel/KernelKit/FileManager.hpp
+Kernel/KernelKit/Framebuffer.hpp
+Kernel/KernelKit/HError.hpp
+Kernel/KernelKit/KernelHeap.hpp
+Kernel/KernelKit/LoaderInterface.hpp
+Kernel/KernelKit/LockDelegate.hpp
+Kernel/KernelKit/MSDOS.hpp
+Kernel/KernelKit/PCI/Database.hpp
+Kernel/KernelKit/PCI/Device.hpp
+Kernel/KernelKit/PCI/Dma.hpp
+Kernel/KernelKit/PCI/Express.hpp
+Kernel/KernelKit/PCI/IO.hpp
+Kernel/KernelKit/PCI/Iterator.hpp
+Kernel/KernelKit/PCI/PCI.hpp
+Kernel/KernelKit/PE.hxx
+Kernel/KernelKit/PECodeManager.hxx
+Kernel/KernelKit/PEF.hpp
+Kernel/KernelKit/PEFCodeManager.hxx
+Kernel/KernelKit/PEFSharedObject.hxx
+Kernel/KernelKit/PermissionSelector.hxx
+Kernel/KernelKit/ProcessScheduler.hxx
+Kernel/KernelKit/SMPManager.hpp
+Kernel/KernelKit/Semaphore.hpp
+Kernel/KernelKit/ThreadLocalStorage.hxx
+Kernel/KernelKit/Timer.hpp
+Kernel/KernelKit/UserHeap.hpp
+Kernel/KernelKit/XCOFF.hxx
+Kernel/KernelKit/compile_flags.txt
+Kernel/Modules/ACPI/ACPI.hxx
+Kernel/Modules/ACPI/ACPIFactoryInterface.hxx
+Kernel/Modules/ACPI/compile_flags.txt
+Kernel/Modules/AHCI/AHCI.hxx
+Kernel/Modules/AHCI/compile_flags.txt
+Kernel/Modules/ATA/ATA.hxx
+Kernel/Modules/ATA/compile_flags.txt
+Kernel/Modules/CoreCG/Accessibility.hxx
+Kernel/Modules/CoreCG/CoreCG.hxx
+Kernel/Modules/CoreCG/Lerp.hxx
+Kernel/Modules/Flash/Flash.hxx
+Kernel/Modules/HPET/Defines.hxx
+Kernel/Modules/IEEE802/compile_flags.txt
+Kernel/Modules/LTE/IO.hxx
+Kernel/Modules/MBCI/Interface.hxx
+Kernel/Modules/MBCI/MBCI.hxx
+Kernel/Modules/NVME/compile_flags.txt
+Kernel/Modules/PS2/PS2MouseInterface.hxx
+Kernel/Modules/ReadMe.txt
+Kernel/Modules/SCSI/SCSI.hxx
+Kernel/Modules/WiFi/compile_flags.txt
+Kernel/Modules/XHCI/Defines.hxx
+Kernel/Modules/XHCI/compile_flags.txt
+Kernel/MoveAll.ARM64.sh
+Kernel/MoveAll.X64.sh
+Kernel/NetworkKit/IP.hpp
+Kernel/NetworkKit/IPCEP.hxx
+Kernel/NetworkKit/LTE.hxx
+Kernel/NetworkKit/MAC.hxx
+Kernel/NetworkKit/NetworkDevice.hpp
+Kernel/NetworkKit/compile_flags.txt
+Kernel/NewKit/ApplicationInterface.hxx
+Kernel/NewKit/Array.hpp
+Kernel/NewKit/ArrayList.hpp
+Kernel/NewKit/Atom.hpp
+Kernel/NewKit/Crc32.hpp
+Kernel/NewKit/CxxAbi.hpp
+Kernel/NewKit/Defines.hpp
+Kernel/NewKit/ErrorOr.hpp
+Kernel/NewKit/Function.hpp
+Kernel/NewKit/Json.hpp
+Kernel/NewKit/KernelCheck.hpp
+Kernel/NewKit/Macros.hpp
+Kernel/NewKit/MutableArray.hpp
+Kernel/NewKit/New.hpp
+Kernel/NewKit/NewKit.hpp
+Kernel/NewKit/OwnPtr.hpp
+Kernel/NewKit/PageAllocator.hpp
+Kernel/NewKit/PageManager.hpp
+Kernel/NewKit/Pair.hpp
+Kernel/NewKit/Pmm.hpp
+Kernel/NewKit/Ref.hpp
+Kernel/NewKit/Stream.hpp
+Kernel/NewKit/String.hpp
+Kernel/NewKit/Utils.hpp
+Kernel/NewKit/Variant.hpp
+Kernel/NewKit/compile_flags.txt
+Kernel/Sources/Array.cxx
+Kernel/Sources/ArrayList.cxx
+Kernel/Sources/Atom.cxx
+Kernel/Sources/CodeManager.cxx
+Kernel/Sources/Crc32.cxx
+Kernel/Sources/CxxAbi.cxx
+Kernel/Sources/Defines.cxx
+Kernel/Sources/DeviceManager.cxx
+Kernel/Sources/DriveManager.cxx
+Kernel/Sources/ErrorOr.cxx
+Kernel/Sources/FS/NewFS.cxx
+Kernel/Sources/FileManager.cxx
+Kernel/Sources/Framebuffer.cxx
+Kernel/Sources/GUIDWizard.cxx
+Kernel/Sources/GUIDWrapper.cxx
+Kernel/Sources/HError.cxx
+Kernel/Sources/HalPageAlloc.cxx
+Kernel/Sources/IndexableProperty.cxx
+Kernel/Sources/Json.cxx
+Kernel/Sources/KeMain.cxx
+Kernel/Sources/KernelCheck.cxx
+Kernel/Sources/KernelHeap.cxx
+Kernel/Sources/LockDelegate.cxx
+Kernel/Sources/MutableArray.cxx
+Kernel/Sources/Network/IP.cxx
+Kernel/Sources/Network/IPCEP.cxx
+Kernel/Sources/Network/NetworkDevice.cxx
+Kernel/Sources/New+Delete.cxx
+Kernel/Sources/NewFS+FileManager.cxx
+Kernel/Sources/NewFS+IO.cxx
+Kernel/Sources/NewFS+Journal.cxx
+Kernel/Sources/OwnPtr.cxx
+Kernel/Sources/PEFCodeManager.cxx
+Kernel/Sources/PEFSharedObject.cxx
+Kernel/Sources/PRDT.cxx
+Kernel/Sources/PageAllocator.cxx
+Kernel/Sources/PageManager.cxx
+Kernel/Sources/PermissionSelector.cxx
+Kernel/Sources/Pmm.cxx
+Kernel/Sources/ProcessScheduler.cxx
+Kernel/Sources/ProcessTeam.cxx
+Kernel/Sources/Property.cxx
+Kernel/Sources/Ref.cxx
+Kernel/Sources/SMPManager.cxx
+Kernel/Sources/Semaphore.cxx
+Kernel/Sources/Storage/AHCIDeviceInterface.cxx
+Kernel/Sources/Storage/ATADeviceInterface.cxx
+Kernel/Sources/Storage/NVMEDeviceInterface.cxx
+Kernel/Sources/Storage/SCSIDeviceInterface.cxx
+Kernel/Sources/Stream.cxx
+Kernel/Sources/String.cxx
+Kernel/Sources/ThreadLocalStorage.cxx
+Kernel/Sources/Timer.cxx
+Kernel/Sources/URL.cxx
+Kernel/Sources/UserHeap.cxx
+Kernel/Sources/Utils.cxx
+Kernel/Sources/Variant.cxx
+Kernel/Sources/compile_flags.txt
+Kernel/StorageKit/AHCI.hpp
+Kernel/StorageKit/ATA.hpp
+Kernel/StorageKit/NVME.hpp
+Kernel/StorageKit/PRDT.hpp
+Kernel/StorageKit/SCSI.hxx
+Kernel/StorageKit/Storage.hpp
+Kernel/amd64-efi.make
+Kernel/arm64-cb.make
+Kernel/compile_flags.txt
+License.QR.txt
+MailMap
+ReadMe.md
+run_format.sh
diff --git a/newoskrnl.includes b/newoskrnl.includes
new file mode 100644
index 00000000..396902fb
--- /dev/null
+++ b/newoskrnl.includes
@@ -0,0 +1,2 @@
+./
+./Kernel