diff options
| author | Amlal El Mahrouss <amlal@el-mahrouss-logic.com> | 2024-03-25 20:17:53 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@el-mahrouss-logic.com> | 2024-03-25 20:17:53 +0100 |
| commit | 3b3b36dcc6542e203475fe1d50ed89799e3f3fc6 (patch) | |
| tree | 3d1e4cfba79343e2b5ef8db58c58271009a44937 /Public | |
| parent | d968190d1ba48638c1481be0d367ee3cea82ae55 (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.hxx | 38 | ||||
| -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.TXT | 1 | ||||
| -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.txt | 5 | ||||
| -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.hxx | 8 |
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 - |
