summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/KernelKit/CodeMgr.h
diff options
context:
space:
mode:
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..5f83c74b
--- /dev/null
+++ b/dev/kernel/KernelKit/CodeMgr.h
@@ -0,0 +1,37 @@
+/* -------------------------------------------
+
+ Copyright (C) 2024-2025, Amlal EL Mahrouss, all rights reserved.
+
+ File: CodeMgr.h
+ 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/IPEFDylibObject.h>
+
+namespace NeOS
+{
+ /// @brief Main process entrypoint.
+ typedef void (*rtl_main_kind)(const SizeT argc, Char** argv, Char** envp, const 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 NeOS