summaryrefslogtreecommitdiffhomepage
path: root/Public/Developer/System.Containers
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@el-mahrouss-logic.com>2024-03-26 13:44:38 +0100
committerAmlal El Mahrouss <amlal@el-mahrouss-logic.com>2024-03-26 13:47:32 +0100
commit66e4f909bd1a495d3f1c34d2e1b5cd71099ab1ae (patch)
treed64cc867d352d190dfd5693262a42b31e28b9239 /Public/Developer/System.Containers
parentdbe4573f61ae059c9dafb8e7623370121d443451 (diff)
Kernel and System.Core: kernel related fixes and :boom: on User API.
- UserHeap.cxx: Document code and fix issue in ke_free_heap_internal. - Scheduler: Rename ProcessManager to ProcessScheduler. - The System API has been reworked to improve it's design, such as no more C++ to improve it's portability. - Moved containers into it's own API. Signed-off-by: Amlal El Mahrouss <amlal@el-mahrouss-logic.com>
Diffstat (limited to 'Public/Developer/System.Containers')
-rw-r--r--Public/Developer/System.Containers/Headers/ODF.hxx41
-rw-r--r--Public/Developer/System.Containers/Headers/XIFF.hxx63
2 files changed, 104 insertions, 0 deletions
diff --git a/Public/Developer/System.Containers/Headers/ODF.hxx b/Public/Developer/System.Containers/Headers/ODF.hxx
new file mode 100644
index 00000000..266726bf
--- /dev/null
+++ b/Public/Developer/System.Containers/Headers/ODF.hxx
@@ -0,0 +1,41 @@
+/** ===========================================
+ (C) Mahrouss Logic
+ ===========================================*/
+
+#ifndef __ODF__
+#define __ODF__
+
+#include <System.Core/Headers/Defines.hxx>
+
+/**
+ * @brief Open Document Format
+ * @file ODF.hxx
+ */
+
+/// @brief four-character code for ODF.
+#define kFourCCLength_ODF 4
+
+/// @brief Document file header.
+typedef struct ODFFileHeader {
+ CharacterTypeUTF8 f_Ident[kFourCCLength_ODF];
+
+ Int32Type f_DocumentKind;
+ Int32Type f_DocumentSize;
+
+ Int64Type f_MetaForkOffset;
+ Int64Type f_DocumentForkOffset;
+
+ CharacterTypeUTF8 f_Padding[4];
+} PACKED ODFFileHeader;
+
+/// @brief ODF Fork header
+typedef struct ODFForkHeader {
+ CharacterTypeUTF8 f_MetadataName[255];
+
+ Int32Type f_MetadataKind;
+ Int32Type f_MetadataSize;
+
+ CharacterTypeUTF8 f_Padding;
+} PACKED ODFForkHeader;
+
+#endif // !__ODF__ \ No newline at end of file
diff --git a/Public/Developer/System.Containers/Headers/XIFF.hxx b/Public/Developer/System.Containers/Headers/XIFF.hxx
new file mode 100644
index 00000000..4c97e2a3
--- /dev/null
+++ b/Public/Developer/System.Containers/Headers/XIFF.hxx
@@ -0,0 +1,63 @@
+/** ===========================================
+ (C) Mahrouss Logic
+ ===========================================*/
+
+#ifndef __XIFF__
+#define __XIFF__
+
+/** ---------------------------------------------------
+
+ * THIS FILE CONTAINS CODE FOR THE eXtended Information File Format.
+ * XIFF is used to make setup programs/audio/video files.
+
+------------------------------------------------------- */
+
+#include <System.Core/Headers/Defines.hxx>
+
+/// @brief four-character code for XIFF.
+#define kFourCCLength_XIFF 4
+#define kXIFFNameLength 255
+
+#define kXIFFContainerVideo "XVFF"
+#define kXIFFContainerAudio "XAFF"
+#define kXIFFContainerInstaller "XNFF"
+#define kXIFFContainerGeneric "XIFF"
+#define kXIFFContainerBinary "XBFF"
+
+/***
+ * @brief Generic XIFF header
+ * Used by XIFF based containers.
+ */
+
+struct PACKED XiffHeader final {
+ ByteType f_Magic[kFourCCLength_XIFF]; // XIFF string (includes \0)
+ DWordType f_Size; // overall size of header (XiffHeader) in bytes
+ DWordType f_FormatType; // format type. generic
+ ByteType f_SpecificMag[kFourCCLength_XIFF]; // The sub header magic
+ DWordType f_SpecificSize; // length of the format data
+ DWordType f_SpecificFormatType; // format type. generic
+};
+
+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;
+};
+
+/// Pascal string
+#define kXIFFStringMetadata4CC "strp"
+
+/// TrueType font
+#define kXIFFFontMetadata4CC "font"
+
+/// UI resource
+#define kXIFFResourceMetadata4CC "resx"
+
+
+#endif // ifndef __XIFF__