summaryrefslogtreecommitdiffhomepage
path: root/Kernel/KernelKit
diff options
context:
space:
mode:
authorAmlal EL Mahrouss <amlalelmahrouss@icloud.com>2024-08-01 18:25:14 +0200
committerAmlal EL Mahrouss <amlalelmahrouss@icloud.com>2024-08-01 18:25:14 +0200
commit86e291120d124dec7244202b1766901a59dfb2e6 (patch)
tree1aa92d3b8a05216941986cf2724ff20ad01b3884 /Kernel/KernelKit
parentf9579f444b1791d2b73d4d841569728fb203cb29 (diff)
[IMP] newoskrnl: Add symbol for cred_construct_token, reworked
ProcessHeap, new SCI.hxx for SCI and SCM. [IMP] newosldr: Loads the kernel correctly and can launch it, improved erorr handling. [META] newoskrnl, newosldr: Improved code and refactors. Signed-off-by: Amlal EL Mahrouss <amlalelmahrouss@icloud.com>
Diffstat (limited to 'Kernel/KernelKit')
-rw-r--r--Kernel/KernelKit/PE.hxx5
-rw-r--r--Kernel/KernelKit/ProcessHeap.hxx1
-rw-r--r--Kernel/KernelKit/ThreadLocalStorage.hxx24
3 files changed, 17 insertions, 13 deletions
diff --git a/Kernel/KernelKit/PE.hxx b/Kernel/KernelKit/PE.hxx
index 0788cd2d..13b002d7 100644
--- a/Kernel/KernelKit/PE.hxx
+++ b/Kernel/KernelKit/PE.hxx
@@ -129,4 +129,9 @@ typedef struct ExecImageHeader {
ExecOptionalHeader mOptHdr;
} ExecImageHeader, *ExecImageHeaderPtr;
+enum
+{
+ eUserSection = 0x00000020,
+};
+
#endif /* ifndef __KERNELKIT_INC_PE_HXX__ */
diff --git a/Kernel/KernelKit/ProcessHeap.hxx b/Kernel/KernelKit/ProcessHeap.hxx
index 377e6009..c7522da5 100644
--- a/Kernel/KernelKit/ProcessHeap.hxx
+++ b/Kernel/KernelKit/ProcessHeap.hxx
@@ -17,7 +17,6 @@
/// @file ProcessHeap.hxx
/// @brief Process heap allocator.
-#define kUserHeapMaxSz (4096)
#define kUserHeapMag (0xFAF0FEF0)
namespace Kernel
diff --git a/Kernel/KernelKit/ThreadLocalStorage.hxx b/Kernel/KernelKit/ThreadLocalStorage.hxx
index 4a0d7528..9332a47b 100644
--- a/Kernel/KernelKit/ThreadLocalStorage.hxx
+++ b/Kernel/KernelKit/ThreadLocalStorage.hxx
@@ -17,21 +17,21 @@
#define kTLSCookieLen (3U)
-/// @brief Thread Information Block for Local Storage.
+struct THREAD_INFORMATION_BLOCK;
+
+/// @brief Thread Information Block.
/// Located in GS on AMD64, other architectures have their own stuff. (64x0, 32x0, ARM64)
-struct PACKED ThreadInformationBlock final
+struct PACKED THREAD_INFORMATION_BLOCK final
{
- Kernel::Char Cookie[kTLSCookieLen]; // Process cookie.
- Kernel::UIntPtr StartCode; // Start Address
- Kernel::UIntPtr StartData; // Allocation Heap
- Kernel::UIntPtr StartStack; // Stack Pointer.
- Kernel::Int32 ThreadID; // Thread execution ID.
+ Kernel::Char f_Cookie[kTLSCookieLen]; // Process cookie.
+ Kernel::UIntPtr f_Code; // Start Address
+ Kernel::UIntPtr f_Data; // Allocation Heap
+ Kernel::UIntPtr f_BSS; // Stack Pointer.
+ Kernel::Int32 f_ID; // Thread execution ID.
};
-typedef struct ThreadInformationBlock ProcessInformationBlock;
-
///! @brief Cookie Sanity check.
-Kernel::Boolean tls_check_tib(ThreadInformationBlock* Ptr);
+Kernel::Boolean tls_check_tib(THREAD_INFORMATION_BLOCK* the_tib);
///! @brief new ptr syscall.
template <typename T>
@@ -45,10 +45,10 @@ template <typename T, typename... Args>
T* tls_new_class(Args&&... args);
/// @brief TLS install TIB and PIB. (syscall)
-EXTERN_C void rt_install_tib(ThreadInformationBlock* TIB, ThreadInformationBlock* PIB);
+EXTERN_C void rt_install_tib(THREAD_INFORMATION_BLOCK* TIB, THREAD_INFORMATION_BLOCK* PIB);
/// @brief TLS check (syscall)
-EXTERN_C Kernel::Void tls_check_syscall_impl(Kernel::VoidPtr TIB) noexcept;
+EXTERN_C Kernel::Bool tls_check_syscall_impl(Kernel::VoidPtr TIB) noexcept;
#include <KernelKit/ThreadLocalStorage.inl>