summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--dev/base/View/pdf.hxx (renamed from dev/prm/pdf.hxx)21
-rw-r--r--dev/base/View/src/app.cxx0
-rw-r--r--dev/base/View/src/pdf.cxx (renamed from dev/prm/src/pdf.cxx)2
-rw-r--r--dev/base/View/src/viewer_box.cxx0
-rw-r--r--dev/base/View/view.json (renamed from dev/prm/prm.json)8
-rw-r--r--dev/base/View/viewer_box.hxx0
-rw-r--r--dev/sci/sci_base.hxx15
-rw-r--r--dev/sci/src/sci_base.cxx7
-rw-r--r--dev/sci/src/sci_mm.cxx52
-rw-r--r--dev/zka/KernelKit/UserProcessScheduler.hxx3
10 files changed, 77 insertions, 31 deletions
diff --git a/dev/prm/pdf.hxx b/dev/base/View/pdf.hxx
index 65bc50bf..e984ef29 100644
--- a/dev/prm/pdf.hxx
+++ b/dev/base/View/pdf.hxx
@@ -6,29 +6,30 @@
#pragma once
-#include <CompilerKit/Detail.hxx>
-#include <NewKit/Defines.hxx>
+#include <sci/sci_base.hxx>
-namespace Kernel::PDF
+namespace View::PDF
{
- class IPDFRenderViewport;
+ class IPDF;
class IPDFDocument;
class IPDFTimestamp;
class IPDFTag;
- /// \brief PDF rendering class.
- class IPDFRenderViewport
+ /// \brief PDF manipulator class.
+ class IPDF
{
public:
- explicit IPDFRenderViewport() = default;
- virtual ~IPDFRenderViewport() = default;
+ explicit IPDF() = default;
+ virtual ~IPDF() = default;
- ZKA_COPY_DELETE(IPDFRenderViewport);
+ IPDF& operator=(const IPDF&) = delete;
+ IPDF(const IPDF&) = delete;
virtual IPDFDocument* GetFirstPage() = 0;
virtual IPDFDocument* GetLastPage() = 0;
virtual IPDFDocument* GetPage(const UInt32& page_number);
+ virtual SInt32 SetPage(const UInt32& page_number, IPDFDocument* new_page);
virtual Void SetProducer(const Char*) = 0;
virtual Void SetTitle(const Char*) = 0;
@@ -47,4 +48,4 @@ namespace Kernel::PDF
virtual SizeT GetPageCount() = 0;
};
-} // namespace Kernel::PDF
+} // namespace View::PDF
diff --git a/dev/base/View/src/app.cxx b/dev/base/View/src/app.cxx
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/dev/base/View/src/app.cxx
diff --git a/dev/prm/src/pdf.cxx b/dev/base/View/src/pdf.cxx
index 3d9cfdf2..11f32a8a 100644
--- a/dev/prm/src/pdf.cxx
+++ b/dev/base/View/src/pdf.cxx
@@ -4,4 +4,4 @@
------------------------------------------- */
-#include <prm/pdf.hxx>
+#include <View/pdf.hxx>
diff --git a/dev/base/View/src/viewer_box.cxx b/dev/base/View/src/viewer_box.cxx
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/dev/base/View/src/viewer_box.cxx
diff --git a/dev/prm/prm.json b/dev/base/View/view.json
index 25665c7c..9033eaec 100644
--- a/dev/prm/prm.json
+++ b/dev/base/View/view.json
@@ -1,9 +1,9 @@
{
"compiler_path": "x86_64-w64-mingw32-g++",
"compiler_std": "c++20",
- "headers_path": ["../", "../zka"],
+ "headers_path": ["../../", "....//zka"],
"sources_path": ["src/*.cxx"],
- "output_name": "prm.sys",
+ "output_name": "View.exe",
"compiler_flags": [
"-fPIC",
"-ffreestanding",
@@ -13,9 +13,7 @@
"-Wl,--subsystem=17"
],
"cpp_macros": [
- "__PRM_IMPL__",
- "__NEWOSKRNL__",
- "__ZKA_AMD64__",
+ "__VIEW_IMPL__",
"cPRMVersion=0x0100",
"cPRMVersionHighest=0x0100",
"cPRMVersionLowest=0x0100"
diff --git a/dev/base/View/viewer_box.hxx b/dev/base/View/viewer_box.hxx
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/dev/base/View/viewer_box.hxx
diff --git a/dev/sci/sci_base.hxx b/dev/sci/sci_base.hxx
index 70a0f7f4..f0eff474 100644
--- a/dev/sci/sci_base.hxx
+++ b/dev/sci/sci_base.hxx
@@ -208,8 +208,11 @@ IMPORT_C VoidPtr MmCreateHeap(_Input SizeT len, _Input UInt32 flags);
/// @return void.
IMPORT_C Void MmDestroyHeap(_Input VoidPtr heap);
-/// @brief Change protection flags of memory region.
-IMPORT_C UInt32 MmChangeHeapFlags(_Input VoidPtr heap, _Input UInt32 flags);
+/// @brief Change protection flags of a memory region.
+IMPORT_C Void MmSetHeapFlags(_Input VoidPtr heap, _Input UInt32 flags);
+
+/// @brief Change protection flags of a memory region.
+IMPORT_C UInt32 MmGetHeapFlags(_Input VoidPtr heap);
/// @brief Fill memory region with CRC32.
IMPORT_C UInt32 MmFillCRC32Heap(_Input VoidPtr heap);
@@ -243,12 +246,14 @@ IMPORT_C Void ThrExitMainThread(_Input SInt32 exit_code);
/// @param exit_code the exit code.
IMPORT_C Void ThrExitThread(_Input ThreadObject thread, _Input SInt32 exit_code);
-typedef Void(*GenericThreadFn)(Void);
+typedef Void(*ThreadProc)(Void);
/// @brief Create a thread.
-/// @param proc the thread procedure.
+/// @param procedure the thread procedure.
+/// @param argument_count number of arguments inside that thread.
+/// @param flags Thread flags.
/// @return the thread object.
-IMPORT_C ThreadObject ThrCreateThread(GenericThreadFn proc);
+IMPORT_C ThreadObject ThrCreateThread(ThreadProc procedure, SInt32 argument_count, SInt32 flags);
/// @brief Yield the current thread.
/// @param thread the thread to yield.
diff --git a/dev/sci/src/sci_base.cxx b/dev/sci/src/sci_base.cxx
deleted file mode 100644
index d2897cb3..00000000
--- a/dev/sci/src/sci_base.cxx
+++ /dev/null
@@ -1,7 +0,0 @@
-/* -------------------------------------------
-
- Copyright ZKA Technologies.
-
-------------------------------------------- */
-
-#include <sci/sci_base.hxx>
diff --git a/dev/sci/src/sci_mm.cxx b/dev/sci/src/sci_mm.cxx
new file mode 100644
index 00000000..eff54501
--- /dev/null
+++ b/dev/sci/src/sci_mm.cxx
@@ -0,0 +1,52 @@
+/* -------------------------------------------
+
+ Copyright ZKA Technologies.
+
+------------------------------------------- */
+
+#include <sci/sci_base.hxx>
+
+/// @file sci_base.cxx
+/// @brief Base Memory Manager functions for SCI.dll
+
+/// @brief Debug error prompt, when a function misbehaves.
+/// @param msg
+/// @return
+IMPORT_C Void __RtlRaiseSoftError(const char* msg);
+
+/// @brief Copy memory region.
+IMPORT_C VoidPtr MmCopyMemory(_Input VoidPtr dest, _Input VoidPtr src, _Input SizeT len)
+{
+ if (!len ||
+ !dest ||
+ !src)
+ {
+ __RtlRaiseSoftError("Debug Error, MmCopyMemory contains one or more invalid arguments.");
+ return nullptr;
+ }
+
+ for (SizeT i = 0; i < len; i++)
+ {
+ ((Char*)dest)[i] = ((Char*)src)[i];
+ }
+
+ return dest;
+}
+
+/// @brief Fill memory region with **value**.
+IMPORT_C VoidPtr MmFillMemory(_Input VoidPtr dest, _Input SizeT len, _Input UInt8 value)
+{
+ if (!len ||
+ !dest)
+ {
+ __RtlRaiseSoftError("Debug Error, MmFillMemory contains one or more invalid arguments.");
+ return nullptr;
+ }
+
+ for (SizeT i = 0; i < len; i++)
+ {
+ ((Char*)dest)[i] = value;
+ }
+
+ return dest;
+}
diff --git a/dev/zka/KernelKit/UserProcessScheduler.hxx b/dev/zka/KernelKit/UserProcessScheduler.hxx
index 4edc80c2..157eebe0 100644
--- a/dev/zka/KernelKit/UserProcessScheduler.hxx
+++ b/dev/zka/KernelKit/UserProcessScheduler.hxx
@@ -160,9 +160,6 @@ namespace Kernel
//! @brief Shared library handle, reserved for eExecutableDLLKind types of executables only.
IPEFDLLObject* PefDLLDelegate{nullptr};
- /// @brief Parent process, reserved for threads only.
- UserProcess* Parent{nullptr};
-
// Memory usage.
SizeT MemoryCursor{0};
SizeT MemoryLimit{kSchedMaxMemoryLimit};