summaryrefslogtreecommitdiffhomepage
path: root/Private/NewKit
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@el-mahrouss-logic.com>2024-03-29 17:01:55 +0100
committerAmlal El Mahrouss <amlal@el-mahrouss-logic.com>2024-03-29 17:06:28 +0100
commit7e5be1572c043484293ee0cdd840dd41f54e87ee (patch)
tree171427b27eb240d4006fda89e485ce6da28fd749 /Private/NewKit
parentd7eb7affee3733dfeee6864045da4c2f5df2e919 (diff)
Kernel and SystemLib: See below.
What has been done: - Rename most System.Core to SystemLib. - Reworked it's API and the concept of ObjectRef to become the ApplicationRef object. - Remove unused ODF and XIFF file format from tree, ODF will be part of the text editing program. - Update Readme for SystemLib. - Add Support folder on NewFS partitions. What is next: - NewFS filesystem support. - Program loading. - Preemptive scheduler on non-SMP systems using timers. Signed-off-by: Amlal El Mahrouss <amlal@el-mahrouss-logic.com>
Diffstat (limited to 'Private/NewKit')
-rw-r--r--Private/NewKit/Application.hxx29
1 files changed, 29 insertions, 0 deletions
diff --git a/Private/NewKit/Application.hxx b/Private/NewKit/Application.hxx
new file mode 100644
index 00000000..292bb434
--- /dev/null
+++ b/Private/NewKit/Application.hxx
@@ -0,0 +1,29 @@
+/* -------------------------------------------
+
+ Copyright Mahrouss Logic
+
+------------------------------------------- */
+
+#pragma once
+
+///
+/// @brief Main application object, given by the OS to interact with the OS.
+/// @file Application.hxx
+/// @author Amlal EL Mahrouss
+///
+
+#include <NewKit/Defines.hpp>
+#include <CFKit/GUIDWrapper.hpp>
+
+/// \brief Application Interface.
+/// \author Amlal El Mahrouss
+typedef struct Application final {
+ /// @brief Releases the object exit the process on main object.
+ NewOS::Void(*Release)(struct Application* Self, NewOS::Int32 ExitCode);
+ /// @brief Invoke a function from the application object.
+ NewOS::IntPtr(*Invoke)(struct Application* Self, NewOS::Int32 Sel, ...);
+ /// @brief Query a new application object from a GUID.
+ NewOS::Void(*Query)(struct Application* Self, NewOS::VoidPtr* Dst, NewOS::SizeT SzDst, NewOS::XRN::GUIDSequence GuidOf);
+} Application, *ApplicationRef;
+
+#define object_cast reinterpret_cast<ApplicationRef>