diff options
| author | Amlal <amlal.elmahrouss@icloud.com> | 2024-10-26 07:59:10 +0200 |
|---|---|---|
| committer | Amlal <amlal.elmahrouss@icloud.com> | 2024-10-26 07:59:10 +0200 |
| commit | 05f085c9055fa5bd13bdba40fc40fb3f00d69fab (patch) | |
| tree | eccb2acb77b05c0e8ca073a3cea845acc0a35eec /dev/sci | |
| parent | 0d0829659be019b3695795e1604d36591a3c3785 (diff) | |
IMP: Fixes and improvements.
Signed-off-by: Amlal <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev/sci')
| -rw-r--r-- | dev/sci/ReadMe.md | 5 | ||||
| -rw-r--r-- | dev/sci/makefile | 12 | ||||
| -rw-r--r-- | dev/sci/sci.json | 21 | ||||
| -rw-r--r-- | dev/sci/sci_base.h | 281 | ||||
| -rw-r--r-- | dev/sci/sci_hint.h | 23 | ||||
| -rw-r--r-- | dev/sci/sci_lpc.h | 48 | ||||
| -rw-r--r-- | dev/sci/scm-design.drawio | 28 | ||||
| -rw-r--r-- | dev/sci/source_deploy.xml | 6 | ||||
| -rw-r--r-- | dev/sci/src/sci_mm.cc | 45 |
9 files changed, 0 insertions, 469 deletions
diff --git a/dev/sci/ReadMe.md b/dev/sci/ReadMe.md deleted file mode 100644 index f3b5a156..00000000 --- a/dev/sci/ReadMe.md +++ /dev/null @@ -1,5 +0,0 @@ -# ZKA's SCI.
-
-System Call and Component Interface, used maninly to communicate with Kernel and registered objects.
-
-###### (c) ZKA Web Services Co, all rights reserved.
diff --git a/dev/sci/makefile b/dev/sci/makefile deleted file mode 100644 index f18fbeff..00000000 --- a/dev/sci/makefile +++ /dev/null @@ -1,12 +0,0 @@ -######################
-# (C) ZKA
-# XPCOM/SCI kit makefile.
-######################
-
-CC=g++
-FLAGS=-I../ -shared -fPIC -D__ZKA_SYMS__
-OUTPUT=sci.dll
-
-.PHONY: build-sci
-build-sci:
- $(CC) $(wildcard .cc) $(FLAGS) -o $(OUTPUT)
diff --git a/dev/sci/sci.json b/dev/sci/sci.json deleted file mode 100644 index 104be044..00000000 --- a/dev/sci/sci.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "compiler_path": "x86_64-w64-mingw32-g++", - "compiler_std": "c++20", - "headers_path": ["../"], - "sources_path": ["src/*.cc"], - "output_name": "sci.dll", - "compiler_flags": [ - "-fPIC", - "-ffreestanding", - "-shared", - "-fno-rtti", - "-fno-exceptions", - "-Wl,--subsystem=17" - ], - "cpp_macros": [ - "__SCI_IMPL__", - "cSCIVersion=0x0100", - "cSCIVersionHighest=0x0100", - "cSCIVersionLowest=0x0100" - ] -} diff --git a/dev/sci/sci_base.h b/dev/sci/sci_base.h deleted file mode 100644 index 0860e72f..00000000 --- a/dev/sci/sci_base.h +++ /dev/null @@ -1,281 +0,0 @@ -/* -------------------------------------------
-
-Copyright ZKA Web Services Co.
-
-File: sci_base.h
-Purpose: SCI core header file (C++ only).
-
-------------------------------------------- */
-
-#ifndef __SCI_BASE_H__
-#define __SCI_BASE_H__
-
-#define ATTRIBUTE(X) __attribute__((X))
-#define IMPORT_XPCOM extern "XPCOM"
-#define IMPORT_CXX extern "C++"
-#define IMPORT_C extern "C"
-
-typedef bool Bool;
-typedef void Void;
-
-typedef __UINT64_TYPE__ UInt64;
-typedef __UINT32_TYPE__ UInt32;
-typedef __UINT16_TYPE__ UInt16;
-typedef __UINT8_TYPE__ UInt8;
-
-typedef __SIZE_TYPE__ SizeT;
-
-typedef __INT64_TYPE__ SInt64;
-typedef __INT32_TYPE__ SInt32;
-typedef __INT16_TYPE__ SInt16;
-typedef __INT8_TYPE__ SInt8;
-
-typedef void* VoidPtr;
-typedef __UINTPTR_TYPE__ UIntPtr;
-typedef char Char;
-
-#include <sci/sci_hint.h>
-#include <sci/sci_lpc.h>
-
-// ------------------------------------------------------------------------------------------ //
-/// @brief Handle Type Definitions.
-// ------------------------------------------------------------------------------------------ //
-
-typedef VoidPtr SCIObject;
-
-typedef SCIObject DLLObject;
-typedef SCIObject IOObject;
-typedef SCIObject SCMObject;
-typedef SCIObject ThreadObject;
-typedef SCIObject SocketObject;
-typedef SCIObject ShellObject;
-typedef SCIObject UIObject;
-
-// ------------------------------------------------------------------------------------------ //
-/// @brief Dynamic Loader API.
-// ------------------------------------------------------------------------------------------ //
-
-/// @brief Get function which is part of the DLL.
-/// @param symbol the symbol to look for
-/// @param dll_handle the DLL handle.
-/// @return the proc pointer.
-IMPORT_C SCIObject LdrGetDLLSymbolFromHandle(_Input const Char* symbol, _Input SCIObject dll_handle);
-
-/// @brief Open DLL handle.
-/// @param path
-/// @param drv
-/// @return
-IMPORT_C SCIObject LdrOpenDLLHandle(_Input const Char* path, _Input const Char* drive_letter);
-
-/// @brief Close DLL handle
-/// @param dll_handle
-/// @return
-IMPORT_C Void LdrCloseDLLHandle(_Input SCIObject* dll_handle);
-
-// ------------------------------------------------------------------------------------------ //
-// File API.
-// ------------------------------------------------------------------------------------------ //
-
-/// @brief Opens a file from a drive.
-/// @param fs_path the filesystem path.
-/// @param drive_letter drive name, use NULL to use default one.
-/// @return the file descriptor of the file.
-IMPORT_C SCIObject IoOpenFile(const Char* fs_path, const Char* drive_letter);
-
-/// @brief Closes a file and flushes its content.
-/// @param file_desc the file descriptor.
-/// @return void.
-IMPORT_C Void IoCloseFile(_Input SCIObject file_desc);
-
-/// @brief Write data to a file.
-/// @param file_desc the file descriptor.
-/// @param out_data the data to write.
-/// @param sz_data the size of the data to write.
-/// @return the number of bytes written.
-IMPORT_C UInt32 IoWriteFile(_Input SCIObject file_desc, _Output VoidPtr out_data, SizeT sz_data);
-
-/// @brief Read data from a file.
-/// @param file_desc the file descriptor.
-/// @param out_data the data to read.
-/// @param sz_data the size of the data to read.
-IMPORT_C UInt32 IoReadFile(_Input SCIObject file_desc, _Output VoidPtr* out_data, SizeT sz_data);
-
-/// @brief Rewind the file pointer to the beginning of the file.
-/// @param file_desc the file descriptor.
-/// @return the number of bytes read.
-IMPORT_C UInt64 IoRewindFile(_Input SCIObject file_desc);
-
-/// @brief Tell the current position of the file pointer.
-/// @param file_desc the file descriptor.
-/// @return the current position of the file pointer.
-IMPORT_C UInt64 IoTellFile(_Input SCIObject file_desc);
-
-/// @brief Seek file offset from file descriptor.
-IMPORT_C UInt64 IoSeekFile(_Input SCIObject file_desc, UInt64 file_offset);
-
-// ------------------------------------------------------------------------
-// TLS API.
-// ------------------------------------------------------------------------
-
-/// @brief Installs the Thread Information Block and Global Information Block inside the current process.
-/// @param void.
-/// @return > 0 error ocurred or already present, = 0 success.
-IMPORT_C UInt32 RtlTlsInstall(Void);
-
-#ifndef __XPCOM_IMPL__
-
-// ------------------------------------------------------------------------
-// XPCOM API.
-// ------------------------------------------------------------------------
-
-/// @brief Allocate new XPCOM object.
-/// @tparam TCLS the class type.
-/// @tparam UCLSID UCLS factory class type.
-/// @param uclsidOfCls UCLS factory class
-/// @return TCLS interface
-template <typename TCLS, typename UCLSID, typename... Args>
-TCLS* XPCOMQueryClass(_Input UCLSID* uclsidOfCls, _Input Args&&... args);
-
-/// @brief Release XPCOM object.
-/// @tparam TCLS the class type.
-/// @param cls the class to release.
-/// @return status code.
-template <typename TCLS>
-SInt32 XPCOMReleaseClass(_Input TCLS* cls);
-
-/// @brief Creates an XPCOM instance in the process.
-/// @param handle_instance the XPCOM handle.
-/// @param flags the XPCOM flags.
-IMPORT_C SInt32 XPCOMCreateInstance(_Input UInt32 flags, _Output SCIObject* handle_instance);
-
-/// @brief Destroys an XPCOM instance of the process.
-/// @param handle_instance the XPCOM handle.
-IMPORT_C Void XPCOMDestroyInstance(_Input SCIObject handle_instance);
-
-#endif // !__XPCOM_IMPL__
-
-// ------------------------------------------------------------------------
-// Memory Management API.
-// ------------------------------------------------------------------------
-
-/// @brief Creates a new heap from the process's address space.
-/// @param len the length of it.
-/// @param flags the flags of it.
-/// @return heap pointer.
-IMPORT_C VoidPtr MmCreateHeap(_Input SizeT len, _Input UInt32 flags);
-
-/// @brief Destroys the pointer
-/// @param heap the heap itself.
-/// @return void.
-IMPORT_C Void MmDestroyHeap(_Input VoidPtr heap);
-
-/// @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);
-
-/// @brief Copy memory region.
-IMPORT_C VoidPtr MmCopyMemory(_Input VoidPtr dest, _Input VoidPtr src, _Input SizeT len);
-
-/// @brief Fill memory region.
-IMPORT_C VoidPtr MmFillMemory(_Input VoidPtr dest, _Input SizeT len, _Input UInt8 value);
-
-// ------------------------------------------------------------------------
-// Error handling API.
-// ------------------------------------------------------------------------
-
-IMPORT_C SInt32 ErrGetLastError(Void);
-
-// ------------------------------------------------------------------------
-// Threading API.
-// ------------------------------------------------------------------------
-
-/// @brief Exit the current thread.
-/// @param exit_code the exit code.
-IMPORT_C Void ThrExitCurrentThread(_Input SInt32 exit_code);
-
-/// @brief Exit the main thread.
-/// @param exit_code the exit code.
-IMPORT_C Void ThrExitMainThread(_Input SInt32 exit_code);
-
-/// @brief Exit a thread.
-/// @param thread the thread to exit.
-/// @param exit_code the exit code.
-IMPORT_C Void ThrExitThread(_Input ThreadObject thread, _Input SInt32 exit_code);
-
-typedef Void (*ThreadProc)(Void);
-
-/// @brief Create a thread.
-/// @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(ThreadProc procedure, SInt32 argument_count, SInt32 flags);
-
-/// @brief Yield the current thread.
-/// @param thread the thread to yield.
-IMPORT_C Void ThrExitYieldThread(Void);
-
-/// @brief Join a thread.
-/// @param thread the thread to join.
-IMPORT_C Void ThrExitJoinThread(Void);
-
-/// @brief Detach a thread.
-/// @param thread the thread to detach.
-IMPORT_C Void ThrExitDetachThread(Void);
-
-// ------------------------------------------------------------------------
-// Drive Management API.
-// ------------------------------------------------------------------------
-
-/// @brief Get the default drive letter.
-/// @param void.
-/// @return the drive letter.
-IMPORT_C Char* DrvGetDefaultDriveLetter(Void);
-
-/// @brief Get the drive letter from a path.
-/// @param path the path.
-/// @return the drive letter.
-IMPORT_C Char* DrvGetDriveLetterFromPath(_Input const Char* path);
-
-/// @brief Get a mounted drive from a letter.
-/// @param letter the letter (A..Z).
-/// @return the drive object.
-IMPORT_C SCIObject DrvGetMountedDrive(_Input const Char letter);
-
-/// @brief Mount a drive.
-/// @param path the path to mount.
-/// @param letter the letter to mount.
-IMPORT_C Void DrvMountDrive(_Input const Char* path, _Input const Char* letter);
-
-/// @brief Unmount a drive.
-/// @param letter the letter to unmount.
-IMPORT_C Void DrvUnmountDrive(_Input const Char letter);
-
-// ------------------------------------------------------------------------
-// Event handling API, use to listen to OS specific events.
-// ------------------------------------------------------------------------
-
-/// @brief Add an event listener.
-/// @param event_name the event name.
-/// @param listener the listener to add.
-/// @return the event listener.
-IMPORT_C Void EvtAddListener(_Input const Char* event_name, _Input SCIObject listener);
-
-/// @brief Remove an event listener.
-/// @param event_name the event name.
-/// @param listener the listener to remove.
-/// @return the event listener.
-IMPORT_C Void EvtRemoveListener(_Input const Char* event_name, _Input SCIObject listener);
-
-/// @brief Dispatch an event.
-/// @param event_name the event name.
-/// @param event_data the event data.
-/// @return the event data.
-IMPORT_C VoidPtr EvtDispatchEvent(_Input const Char* event_name, _Input VoidPtr event_data);
-
-#endif // ifndef __SCI_BASE_H__
diff --git a/dev/sci/sci_hint.h b/dev/sci/sci_hint.h deleted file mode 100644 index b550bac5..00000000 --- a/dev/sci/sci_hint.h +++ /dev/null @@ -1,23 +0,0 @@ -/* ------------------------------------------- - - Copyright ZKA Web Services Co. - -------------------------------------------- */ - -#ifndef __SCI_HINT_H__ -#define __SCI_HINT_H__ - -#pragma compiler(hint_manifest) - -#define _Input -#define _Output - -#define _Optional - -#define _StrictCheckInput -#define _StrictCheckOutput - -#define _InOut -#define _StrictInOut - -#endif // ifndef __SCI_HINT_H__ diff --git a/dev/sci/sci_lpc.h b/dev/sci/sci_lpc.h deleted file mode 100644 index c634b790..00000000 --- a/dev/sci/sci_lpc.h +++ /dev/null @@ -1,48 +0,0 @@ -/* ------------------------------------------- - - Copyright ZKA Web Services Co. - -------------------------------------------- */ - -#pragma once - -#define ErrLocalIsOk() (kLastError == kErrorSuccess) -#define ErrLocalFailed() (kLastError != kErrorSuccess) -#define ErrLocal() (kLastError) - -typedef SInt32 ErrObject; - -inline constexpr ErrObject kErrorSuccess = 0; -inline constexpr ErrObject kErrorExecutable = 33; -inline constexpr ErrObject kErrorExecutableLib = 34; -inline constexpr ErrObject kErrorFileNotFound = 35; -inline constexpr ErrObject kErrorDirectoryNotFound = 36; -inline constexpr ErrObject kErrorDiskReadOnly = 37; -inline constexpr ErrObject kErrorDiskIsFull = 38; -inline constexpr ErrObject kErrorProcessFault = 39; -inline constexpr ErrObject kErrorSocketHangUp = 40; -inline constexpr ErrObject kErrorThreadLocalStorage = 41; -inline constexpr ErrObject kErrorMath = 42; -inline constexpr ErrObject kErrorNoNetwork = 43; -inline constexpr ErrObject kErrorHeapOutOfMemory = 44; -inline constexpr ErrObject kErrorNoSuchDisk = 45; -inline constexpr ErrObject kErrorFileExists = 46; -inline constexpr ErrObject kErrorFormatFailed = 47; -inline constexpr ErrObject kErrorNetworkTimeout = 48; -inline constexpr ErrObject kErrorInternal = 49; -inline constexpr ErrObject kErrorForkAlreadyExists = 50; -inline constexpr ErrObject kErrorOutOfTeamSlot = 51; -inline constexpr ErrObject kErrorHeapNotPresent = 52; -inline constexpr ErrObject kErrorNoEntrypoint = 53; -inline constexpr ErrObject kErrorDiskIsCorrupted = 54; -inline constexpr ErrObject kErrorDisk = 55; -inline constexpr ErrObject kErrorInvalidData = 56; -inline constexpr ErrObject kErrorAsync = 57; -inline constexpr ErrObject kErrorNonBlocking = 58; -inline constexpr ErrObject kErrorIPC = 59; -inline constexpr ErrObject kErrorSign = 60; -inline constexpr ErrObject kErrorInvalidCreds = 61; -inline constexpr ErrObject kErrorUnimplemented = 0; - -/// @brief The last error reported by the system to the process. -IMPORT_C ErrObject kLastError; diff --git a/dev/sci/scm-design.drawio b/dev/sci/scm-design.drawio deleted file mode 100644 index 22bcace6..00000000 --- a/dev/sci/scm-design.drawio +++ /dev/null @@ -1,28 +0,0 @@ -<mxfile host="65bd71144e"> - <diagram name="Page-1" id="_vc7fxBdNKI2W8YhI8VA"> - <mxGraphModel dx="774" dy="581" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0"> - <root> - <mxCell id="0"/> - <mxCell id="1" parent="0"/> - <mxCell id="eRehIIeIVOPW1y23kRkx-9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="eRehIIeIVOPW1y23kRkx-2" target="eRehIIeIVOPW1y23kRkx-8" edge="1"> - <mxGeometry relative="1" as="geometry"/> - </mxCell> - <mxCell id="eRehIIeIVOPW1y23kRkx-2" value="User level interfaces and events." style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> - <mxGeometry x="200" y="450" width="226" height="60" as="geometry"/> - </mxCell> - <mxCell id="eRehIIeIVOPW1y23kRkx-4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="eRehIIeIVOPW1y23kRkx-3" target="eRehIIeIVOPW1y23kRkx-2" edge="1"> - <mxGeometry relative="1" as="geometry"/> - </mxCell> - <mxCell id="eRehIIeIVOPW1y23kRkx-3" value="IDB" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;" parent="1" vertex="1"> - <mxGeometry x="283" y="290" width="60" height="80" as="geometry"/> - </mxCell> - <mxCell id="eRehIIeIVOPW1y23kRkx-8" value="Program #2<div>Is a web browser, it uses an HTML parser component.</div>" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> - <mxGeometry x="253" y="570" width="120" height="60" as="geometry"/> - </mxCell> - <mxCell id="eRehIIeIVOPW1y23kRkx-10" value="<h1 style="margin-top: 0px;">System Component/Call Model/Interface</h1><p>XPCOM is a standardized way of sharing code within DLLs in NewOS.</p><p>All classes are based upon&nbsp;<span style="color: rgb(78, 201, 176); background-color: rgb(31, 31, 31); font-family: Consolas, &quot;Courier New&quot;, monospace; font-size: 14px;">IUnknown</span></p><p>It is also used to register and call code using&nbsp;<span style="color: rgb(78, 201, 176); background-color: rgb(31, 31, 31); font-family: Consolas, &quot;Courier New&quot;, monospace; font-size: 14px;">IEventListener</span></p>" style="text;html=1;whiteSpace=wrap;overflow=hidden;rounded=0;" parent="1" vertex="1"> - <mxGeometry x="450" y="240" width="320" height="240" as="geometry"/> - </mxCell> - </root> - </mxGraphModel> - </diagram> -</mxfile> diff --git a/dev/sci/source_deploy.xml b/dev/sci/source_deploy.xml deleted file mode 100644 index 30c64973..00000000 --- a/dev/sci/source_deploy.xml +++ /dev/null @@ -1,6 +0,0 @@ -<SourceDeploy>
-<HiddenFiles>
- <SourceFile>*.h</SourceFile>
- <SourceFile>*.idl</SourceFile>
-</HiddenFiles>
-</SourceDeploy>
diff --git a/dev/sci/src/sci_mm.cc b/dev/sci/src/sci_mm.cc deleted file mode 100644 index a776fe4a..00000000 --- a/dev/sci/src/sci_mm.cc +++ /dev/null @@ -1,45 +0,0 @@ -/* -------------------------------------------
-
- Copyright ZKA Web Services Co.
-
-------------------------------------------- */
-
-#include <sci/sci_base.h>
-
-/// @file sci_base.cxx
-/// @brief Base Memory Manager functions for SCI.dll
-
-/// @brief Copy memory region.
-IMPORT_C VoidPtr MmCopyMemory(_Input VoidPtr dest, _Input VoidPtr src, _Input SizeT len)
-{
- if (!len ||
- !dest ||
- !src)
- {
- 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)
- {
- return nullptr;
- }
-
- for (SizeT i = 0; i < len; i++)
- {
- ((Char*)dest)[i] = value;
- }
-
- return dest;
-}
|
