summaryrefslogtreecommitdiffhomepage
path: root/dev/Kernel/KernelKit/CodeMgr.h
diff options
context:
space:
mode:
authorAmlal <amlalelmahrouss@icloud.com>2024-12-21 21:59:13 +0100
committerAmlal <amlalelmahrouss@icloud.com>2024-12-21 21:59:45 +0100
commit610f91d87152cbe48d3054fcf437d8239da6ef35 (patch)
treea386f7047ab73d088169ab2371ddc6ffe8020f1c /dev/Kernel/KernelKit/CodeMgr.h
parent509fcca5986651c8ba712fb395f8498f2dea4109 (diff)
IMP: :boom: Breaking changes some checks are needed to be done.
Signed-off-by: Amlal <amlalelmahrouss@icloud.com>
Diffstat (limited to 'dev/Kernel/KernelKit/CodeMgr.h')
-rw-r--r--dev/Kernel/KernelKit/CodeMgr.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/dev/Kernel/KernelKit/CodeMgr.h b/dev/Kernel/KernelKit/CodeMgr.h
new file mode 100644
index 00000000..c0409f9c
--- /dev/null
+++ b/dev/Kernel/KernelKit/CodeMgr.h
@@ -0,0 +1,37 @@
+/* -------------------------------------------
+
+ Copyright (C) 2024, TQ B.V, all rights reserved.
+
+ File: CodeMgr.hpp
+ Purpose: Code Mgr.
+
+ Revision History:
+
+ 30/01/24: Added file (amlel)
+ 3/8/24: Add UPP struct.
+
+------------------------------------------- */
+
+#pragma once
+
+#include <KernelKit/PECodeMgr.h>
+#include <KernelKit/PEFCodeMgr.h>
+#include <KernelKit/IPEFDLLObject.h>
+
+namespace Kernel
+{
+ /// @brief Main process entrypoint.
+ typedef void (*rtl_main_kind)(SizeT argc, char** argv, char** envp, SizeT envp_len);
+
+ /// @brief C++ Constructor entrypoint.
+ typedef void(*rtl_ctor_kind)(void);
+
+ /// @brief C++ Destructor entrypoint.
+ typedef void(*rtl_dtor_kind)(void);
+
+ /// @brief Executes a new process from a function. Kernel code only.
+ /// @note This sets up a new stack, anything on the main function that calls the Kernel will not be accessible.
+ /// @param main the start of the process.
+ /// @return The team's process id.
+ ProcessID rtl_create_process(rtl_main_kind main, const Char* process_name) noexcept;
+} // namespace Kernel