diff options
| -rw-r--r-- | dev/base/View/pdf.hxx (renamed from dev/prm/pdf.hxx) | 21 | ||||
| -rw-r--r-- | dev/base/View/src/app.cxx | 0 | ||||
| -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.cxx | 0 | ||||
| -rw-r--r-- | dev/base/View/view.json (renamed from dev/prm/prm.json) | 8 | ||||
| -rw-r--r-- | dev/base/View/viewer_box.hxx | 0 | ||||
| -rw-r--r-- | dev/sci/sci_base.hxx | 15 | ||||
| -rw-r--r-- | dev/sci/src/sci_base.cxx | 7 | ||||
| -rw-r--r-- | dev/sci/src/sci_mm.cxx | 52 | ||||
| -rw-r--r-- | dev/zka/KernelKit/UserProcessScheduler.hxx | 3 |
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}; |
