summaryrefslogtreecommitdiffhomepage
path: root/Public
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@el-mahrouss-logic.com>2024-03-25 20:17:53 +0100
committerAmlal El Mahrouss <amlal@el-mahrouss-logic.com>2024-03-25 20:17:53 +0100
commit3b3b36dcc6542e203475fe1d50ed89799e3f3fc6 (patch)
tree3d1e4cfba79343e2b5ef8db58c58271009a44937 /Public
parentd968190d1ba48638c1481be0d367ee3cea82ae55 (diff)
Kernel: implement some tickets, improved stuff.
Signed-off-by: Amlal El Mahrouss <amlal@el-mahrouss-logic.com>
Diffstat (limited to 'Public')
-rw-r--r--Public/Developer/.gitkeep (renamed from Public/SDK/.gitkeep)0
-rw-r--r--Public/Developer/System.Core/.gitkeep (renamed from Public/SDK/System.Core/.gitkeep)0
-rw-r--r--Public/Developer/System.Core/AMD64/HCoreAssemblyRoutines.s (renamed from Public/SDK/System.Core/AMD64/HCoreAssemblyRoutines.s)0
-rw-r--r--Public/Developer/System.Core/ARM64/.gitkeep (renamed from Public/SDK/System.Core/ARM64/.gitkeep)0
-rw-r--r--Public/Developer/System.Core/Headers/Containers/ODF.hxx (renamed from Public/SDK/System.Core/Headers/FormatManager/ODF.hxx)0
-rw-r--r--Public/Developer/System.Core/Headers/Containers/XIFF.hxx (renamed from Public/SDK/System.Core/Headers/FormatManager/XIFF.hxx)15
-rw-r--r--Public/Developer/System.Core/Headers/Defines.hxx (renamed from Public/SDK/System.Core/Headers/Defines.hxx)0
-rw-r--r--Public/Developer/System.Core/Headers/File.hxx (renamed from Public/SDK/System.Core/Headers/File.hxx)2
-rw-r--r--Public/Developer/System.Core/Headers/Heap.hxx (renamed from Public/SDK/System.Core/Headers/Heap.hxx)13
-rw-r--r--Public/Developer/System.Core/Headers/Hint.hxx (renamed from Public/SDK/System.Core/Headers/Hint.hxx)0
-rw-r--r--Public/Developer/System.Core/Headers/Thread.hxx (renamed from Public/SDK/System.Core/Headers/Thread.hxx)8
-rw-r--r--Public/Developer/System.Core/Headers/Window/Dialog.hxx (renamed from Public/SDK/System.Core/Headers/UIManager/Dialog.hxx)1
-rw-r--r--Public/Developer/System.Core/Headers/Window/Image.hxx (renamed from Public/SDK/System.Core/Headers/UIManager/Image.hxx)0
-rw-r--r--Public/Developer/System.Core/Headers/Window/Menu.hxx (renamed from Public/SDK/System.Core/Headers/UIManager/Menu.hxx)0
-rw-r--r--Public/Developer/System.Core/Headers/Window/Rsrc.hxx (renamed from Public/SDK/System.Core/Headers/UIManager/Rsrc.hxx)0
-rw-r--r--Public/Developer/System.Core/Headers/Window/TrueType.hxx (renamed from Public/SDK/System.Core/Headers/UIManager/TrueType.hxx)0
-rw-r--r--Public/Developer/System.Core/Headers/Window/Window.hxx38
-rw-r--r--Public/Developer/System.Core/Makefile (renamed from Public/SDK/System.Core/Makefile)2
-rw-r--r--Public/Developer/System.Core/RISCV/.gitkeep (renamed from Public/SDK/System.Core/RISCV/.gitkeep)0
-rw-r--r--Public/Developer/System.Core/ReadMe.md (renamed from Public/SDK/System.Core/ReadMe.md)0
-rw-r--r--Public/Developer/System.Core/Sources/Heap.cxx (renamed from Public/SDK/System.Core/Sources/Heap.cxx)0
-rw-r--r--Public/Developer/System.Core/Sources/LibEntrypoint.cxx (renamed from Public/SDK/System.Core/Sources/LibEntrypoint.cxx)0
-rw-r--r--Public/Developer/System.Core/Sources/New+Delete.cxx (renamed from Public/SDK/System.Core/Sources/New+Delete.cxx)13
-rw-r--r--Public/Developer/System.Core/compile_flags.txt (renamed from Public/SDK/System.Core/compile_flags.txt)0
-rw-r--r--Public/Documentation/BUG_LIST.TXT1
-rw-r--r--Public/Documentation/Specs.md (renamed from Public/Documentation/SPECIFICATION.TXT)10
-rw-r--r--Public/Documentation/Todo.md (renamed from Public/Documentation/TODO_LIST.TXT)8
-rw-r--r--Public/Documentation/compile_flags.txt5
-rw-r--r--Public/Documentation/kernel-design.drawio (renamed from Public/Documentation/DESIGN.DRAWIO)0
-rw-r--r--Public/SDK/System.Core/Headers/UIManager/Window.hxx8
30 files changed, 79 insertions, 45 deletions
diff --git a/Public/SDK/.gitkeep b/Public/Developer/.gitkeep
index e69de29b..e69de29b 100644
--- a/Public/SDK/.gitkeep
+++ b/Public/Developer/.gitkeep
diff --git a/Public/SDK/System.Core/.gitkeep b/Public/Developer/System.Core/.gitkeep
index e69de29b..e69de29b 100644
--- a/Public/SDK/System.Core/.gitkeep
+++ b/Public/Developer/System.Core/.gitkeep
diff --git a/Public/SDK/System.Core/AMD64/HCoreAssemblyRoutines.s b/Public/Developer/System.Core/AMD64/HCoreAssemblyRoutines.s
index a61d6d1f..a61d6d1f 100644
--- a/Public/SDK/System.Core/AMD64/HCoreAssemblyRoutines.s
+++ b/Public/Developer/System.Core/AMD64/HCoreAssemblyRoutines.s
diff --git a/Public/SDK/System.Core/ARM64/.gitkeep b/Public/Developer/System.Core/ARM64/.gitkeep
index e69de29b..e69de29b 100644
--- a/Public/SDK/System.Core/ARM64/.gitkeep
+++ b/Public/Developer/System.Core/ARM64/.gitkeep
diff --git a/Public/SDK/System.Core/Headers/FormatManager/ODF.hxx b/Public/Developer/System.Core/Headers/Containers/ODF.hxx
index 266726bf..266726bf 100644
--- a/Public/SDK/System.Core/Headers/FormatManager/ODF.hxx
+++ b/Public/Developer/System.Core/Headers/Containers/ODF.hxx
diff --git a/Public/SDK/System.Core/Headers/FormatManager/XIFF.hxx b/Public/Developer/System.Core/Headers/Containers/XIFF.hxx
index 2531abce..11d286e9 100644
--- a/Public/SDK/System.Core/Headers/FormatManager/XIFF.hxx
+++ b/Public/Developer/System.Core/Headers/Containers/XIFF.hxx
@@ -16,6 +16,7 @@
/// @brief four-character code for XIFF.
#define kFourCCLength_XIFF 4
+#define kXIFFNameLength 255
#define kXIFFContainerVideo "XVFF"
#define kXIFFContainerAudio "XAFF"
@@ -39,4 +40,18 @@ struct PACKED XiffHeader final {
typedef struct XiffHeader XiffHeader;
+/// @brief XIFF metadata header, either located in forks or in file directly.
+/// @author Amlal EL Mahrouss
+struct ML_PACKED XiffMetadataHeader final {
+ ByteType f_Name[kXIFFNameLength];
+ DWordType f_Flags;
+ DWordType f_Type;
+ QWordType f_Offset;
+ SizeType f_Size;
+};
+
+#define kXIFFStringMetadata4CC "strp"
+#define kXIFFFontMetadata4CC "font"
+#define kXIFFResourceMetadata4CC "resx"
+
#endif // ifndef __XIFF__
diff --git a/Public/SDK/System.Core/Headers/Defines.hxx b/Public/Developer/System.Core/Headers/Defines.hxx
index 867dac76..867dac76 100644
--- a/Public/SDK/System.Core/Headers/Defines.hxx
+++ b/Public/Developer/System.Core/Headers/Defines.hxx
diff --git a/Public/SDK/System.Core/Headers/File.hxx b/Public/Developer/System.Core/Headers/File.hxx
index 60c37cc6..06c2a22e 100644
--- a/Public/SDK/System.Core/Headers/File.hxx
+++ b/Public/Developer/System.Core/Headers/File.hxx
@@ -16,6 +16,7 @@ class DirectoryInterface;
typedef IntPtrType SymlinkType;
typedef IntPtrType FileType;
typedef IntPtrType DirectoryType;
+typedef IntPtrType FSRef;
enum {
kErrorNoSuchPath = -44,
@@ -26,6 +27,7 @@ enum {
};
/// @brief System file interface
+
class FileInterface final {
public:
explicit FileInterface(const char *path) {
diff --git a/Public/SDK/System.Core/Headers/Heap.hxx b/Public/Developer/System.Core/Headers/Heap.hxx
index 06f5d38e..c134ca4e 100644
--- a/Public/SDK/System.Core/Headers/Heap.hxx
+++ b/Public/Developer/System.Core/Headers/Heap.hxx
@@ -62,16 +62,3 @@ class HeapException : public SystemException {
};
} // namespace System
-
-#define kAllocationTypes 2
-
-enum HcAllocationKind {
- kStandardAllocation = 0xC,
- kArrayAllocation = 0xD,
-};
-
-CA_EXTERN_C PtrVoidType HcAllocateProcessHeap(ObjectPtr refObj, QWordType sz,
- DWordType flags);
-CA_EXTERN_C BooleanType HcProcessHeapExists(ObjectPtr refObj, PtrVoidType ptr);
-CA_EXTERN_C QWordType HcProcessHeapSize(ObjectPtr refObj, PtrVoidType ptr);
-CA_EXTERN_C VoidType HcFreeProcessHeap(ObjectPtr refObj, PtrVoidType ptr); \ No newline at end of file
diff --git a/Public/SDK/System.Core/Headers/Hint.hxx b/Public/Developer/System.Core/Headers/Hint.hxx
index 86faf455..86faf455 100644
--- a/Public/SDK/System.Core/Headers/Hint.hxx
+++ b/Public/Developer/System.Core/Headers/Hint.hxx
diff --git a/Public/SDK/System.Core/Headers/Thread.hxx b/Public/Developer/System.Core/Headers/Thread.hxx
index 7b586cd1..df803860 100644
--- a/Public/SDK/System.Core/Headers/Thread.hxx
+++ b/Public/Developer/System.Core/Headers/Thread.hxx
@@ -13,15 +13,11 @@
#include <System.Core/Headers/Defines.hxx>
-namespace System {
/// @brief Thread Information Block, which holds information about the running
/// thread.
-typedef PtrVoidType PtrThread;
+typedef QWordType ThreadRef;
/// @brief Main application thread.
-CA_EXTERN_C PtrThread kMainThread;
-
-class ThreadInterface;
-} // namespace System
+CA_EXTERN_C ThreadRef kMainThread;
#endif // __THREAD_API__
diff --git a/Public/SDK/System.Core/Headers/UIManager/Dialog.hxx b/Public/Developer/System.Core/Headers/Window/Dialog.hxx
index 2a02b434..3e445532 100644
--- a/Public/SDK/System.Core/Headers/UIManager/Dialog.hxx
+++ b/Public/Developer/System.Core/Headers/Window/Dialog.hxx
@@ -6,3 +6,4 @@
#pragma once
+#include <System.Core/Headers/Window/Window.hxx>
diff --git a/Public/SDK/System.Core/Headers/UIManager/Image.hxx b/Public/Developer/System.Core/Headers/Window/Image.hxx
index 2a02b434..2a02b434 100644
--- a/Public/SDK/System.Core/Headers/UIManager/Image.hxx
+++ b/Public/Developer/System.Core/Headers/Window/Image.hxx
diff --git a/Public/SDK/System.Core/Headers/UIManager/Menu.hxx b/Public/Developer/System.Core/Headers/Window/Menu.hxx
index 2a02b434..2a02b434 100644
--- a/Public/SDK/System.Core/Headers/UIManager/Menu.hxx
+++ b/Public/Developer/System.Core/Headers/Window/Menu.hxx
diff --git a/Public/SDK/System.Core/Headers/UIManager/Rsrc.hxx b/Public/Developer/System.Core/Headers/Window/Rsrc.hxx
index 2a02b434..2a02b434 100644
--- a/Public/SDK/System.Core/Headers/UIManager/Rsrc.hxx
+++ b/Public/Developer/System.Core/Headers/Window/Rsrc.hxx
diff --git a/Public/SDK/System.Core/Headers/UIManager/TrueType.hxx b/Public/Developer/System.Core/Headers/Window/TrueType.hxx
index 62ed1255..62ed1255 100644
--- a/Public/SDK/System.Core/Headers/UIManager/TrueType.hxx
+++ b/Public/Developer/System.Core/Headers/Window/TrueType.hxx
diff --git a/Public/Developer/System.Core/Headers/Window/Window.hxx b/Public/Developer/System.Core/Headers/Window/Window.hxx
new file mode 100644
index 00000000..1a8c6cf6
--- /dev/null
+++ b/Public/Developer/System.Core/Headers/Window/Window.hxx
@@ -0,0 +1,38 @@
+/* -------------------------------------------
+
+ Copyright Mahrouss Logic
+
+------------------------------------------- */
+
+#pragma once
+
+#include <System.Core/Headers/Defines.hxx>
+
+/// @file Window.hxx
+/// @brief Tracker window manager.
+/// @author Amlal El Mahrouss.
+
+typedef float PositionType;
+
+/// @brief A point, can represent the size, position of a window.
+typedef struct _Point {
+ PositionType X, Y;
+} Point;
+
+/// @brief Tracker Graphics port.
+typedef struct _GraphicsPort {
+ WordType windowPort;
+ WordType windowKind;
+ BooleanType windowVisible;
+ BooleanType windowMaximized;
+ BooleanType windowMinimized;
+ BooleanType windowMoving;
+ BooleanType windowDisableClose;
+ BooleanType windowDisableMinimize;
+ Point windowPosition;
+ Point windowSize;
+ BooleanType windowInvalidate;
+ DWordType windowClearColor;
+ WordType menuPort;
+ WordType parentPort;
+} GraphicsPort;
diff --git a/Public/SDK/System.Core/Makefile b/Public/Developer/System.Core/Makefile
index 13fdf960..28ce0bea 100644
--- a/Public/SDK/System.Core/Makefile
+++ b/Public/Developer/System.Core/Makefile
@@ -5,7 +5,7 @@
CC=x86_64-w64-mingw32-g++
CCFLAGS=-shared -ffreestanding -nostdlib -fno-rtti -fno-exceptions -std=c++20 -Xlinker --subsystem=17
-OUTPUT=System.Core.dll
+OUTPUT=System.Core.lib
.PHONY: build-core-amd64
build-core-amd64:
diff --git a/Public/SDK/System.Core/RISCV/.gitkeep b/Public/Developer/System.Core/RISCV/.gitkeep
index e69de29b..e69de29b 100644
--- a/Public/SDK/System.Core/RISCV/.gitkeep
+++ b/Public/Developer/System.Core/RISCV/.gitkeep
diff --git a/Public/SDK/System.Core/ReadMe.md b/Public/Developer/System.Core/ReadMe.md
index 3867dd3d..3867dd3d 100644
--- a/Public/SDK/System.Core/ReadMe.md
+++ b/Public/Developer/System.Core/ReadMe.md
diff --git a/Public/SDK/System.Core/Sources/Heap.cxx b/Public/Developer/System.Core/Sources/Heap.cxx
index 18106f41..18106f41 100644
--- a/Public/SDK/System.Core/Sources/Heap.cxx
+++ b/Public/Developer/System.Core/Sources/Heap.cxx
diff --git a/Public/SDK/System.Core/Sources/LibEntrypoint.cxx b/Public/Developer/System.Core/Sources/LibEntrypoint.cxx
index b874ef55..b874ef55 100644
--- a/Public/SDK/System.Core/Sources/LibEntrypoint.cxx
+++ b/Public/Developer/System.Core/Sources/LibEntrypoint.cxx
diff --git a/Public/SDK/System.Core/Sources/New+Delete.cxx b/Public/Developer/System.Core/Sources/New+Delete.cxx
index 678aacce..98674a73 100644
--- a/Public/SDK/System.Core/Sources/New+Delete.cxx
+++ b/Public/Developer/System.Core/Sources/New+Delete.cxx
@@ -7,6 +7,19 @@
#include <System.Core/Headers/Heap.hxx>
#include <System.Core/Headers/Heap.hxx>
+#define kAllocationTypes 2
+
+enum HcAllocationKind {
+ kStandardAllocation = 0xC,
+ kArrayAllocation = 0xD,
+};
+
+CA_EXTERN_C PtrVoidType HcAllocateProcessHeap(ObjectPtr refObj, QWordType sz,
+ DWordType flags);
+CA_EXTERN_C BooleanType HcProcessHeapExists(ObjectPtr refObj, PtrVoidType ptr);
+CA_EXTERN_C QWordType HcProcessHeapSize(ObjectPtr refObj, PtrVoidType ptr);
+CA_EXTERN_C VoidType HcFreeProcessHeap(ObjectPtr refObj, PtrVoidType ptr);
+
typedef SizeType size_t;
void* operator new[](size_t sz) {
diff --git a/Public/SDK/System.Core/compile_flags.txt b/Public/Developer/System.Core/compile_flags.txt
index 6e721e73..6e721e73 100644
--- a/Public/SDK/System.Core/compile_flags.txt
+++ b/Public/Developer/System.Core/compile_flags.txt
diff --git a/Public/Documentation/BUG_LIST.TXT b/Public/Documentation/BUG_LIST.TXT
deleted file mode 100644
index 6075a6ac..00000000
--- a/Public/Documentation/BUG_LIST.TXT
+++ /dev/null
@@ -1 +0,0 @@
-- PS/2 Mouse doesn't raise interrupt on qemu q35, pc machines. [WontFix] \ No newline at end of file
diff --git a/Public/Documentation/SPECIFICATION.TXT b/Public/Documentation/Specs.md
index ce6c9893..1d1e2d3a 100644
--- a/Public/Documentation/SPECIFICATION.TXT
+++ b/Public/Documentation/Specs.md
@@ -1,5 +1,5 @@
===================================
-0: General Information
+# 0: General Information
===================================
- ABI and Format: PEF/PE32+.
@@ -7,7 +7,7 @@
- Language: C++/(Assembly (AMD64, X64000, X86S, ARM64))
===================================
-1: The NewKernel
+# 1: The NewKernel
===================================
- Drive/Device Abstraction.
@@ -25,7 +25,7 @@
- Permission Selectors.
===================================
-2: The Filesystem
+# 2: The Filesystem
===================================
- Catalog based with forks.
@@ -34,7 +34,7 @@
- UNIX path style.
==================================
-3: Common naming conventions:
+# 3: Common naming conventions:
==================================
- Kernel -> ke_init_x
@@ -42,7 +42,7 @@
- Hal -> hal_foo_bar
===================================
-4: The NewBoot
+# 4: The NewBoot
===================================
- Capable of booting from a network drive.
diff --git a/Public/Documentation/TODO_LIST.TXT b/Public/Documentation/Todo.md
index b7fc4926..1e625233 100644
--- a/Public/Documentation/TODO_LIST.TXT
+++ b/Public/Documentation/Todo.md
@@ -12,14 +12,10 @@
- Context switch x87/SSE/AVX registers [ X ]
- Framebuffer [ X ]
- AHCI support [ ]
-- HCore API and HCore Forms. [ ]
-- Make installer form class [ ]
+- Make installer [ ]
Status:
-NewBoot.exe: Working.
+NewBoot.exe: Need to boot from EPM partition.
NewKernel.exe: New Filesystem in progress.
-Prioritize:
-NewBoot.exe: Protocol and API.
-NewKernel.exe: Complying to specs.
diff --git a/Public/Documentation/compile_flags.txt b/Public/Documentation/compile_flags.txt
deleted file mode 100644
index 21296223..00000000
--- a/Public/Documentation/compile_flags.txt
+++ /dev/null
@@ -1,5 +0,0 @@
--nostdlib
--ffreestanding
--std=c++20
--I./SDK/
--I../Private
diff --git a/Public/Documentation/DESIGN.DRAWIO b/Public/Documentation/kernel-design.drawio
index 759a7df9..759a7df9 100644
--- a/Public/Documentation/DESIGN.DRAWIO
+++ b/Public/Documentation/kernel-design.drawio
diff --git a/Public/SDK/System.Core/Headers/UIManager/Window.hxx b/Public/SDK/System.Core/Headers/UIManager/Window.hxx
deleted file mode 100644
index 2a02b434..00000000
--- a/Public/SDK/System.Core/Headers/UIManager/Window.hxx
+++ /dev/null
@@ -1,8 +0,0 @@
-/* -------------------------------------------
-
- Copyright Mahrouss Logic
-
-------------------------------------------- */
-
-#pragma once
-