From 96a4f30672702e34afea4014487936fccb850779 Mon Sep 17 00:00:00 2001 From: Amlal Date: Wed, 30 Oct 2024 08:57:05 +0100 Subject: META: Daily bump. Signed-off-by: Amlal --- dev/SCIKit/LPC.h | 3 ++ dev/SCIKit/build.json | 2 +- dev/SCIKit/src/Syscall.asm | 48 ++++++++++++++++++++++++++++ dev/ZKAKit/CompilerKit/CompilerKit.h | 6 ++-- dev/ZKAKit/FSKit/IndexableProperty.h | 2 +- dev/ZKAKit/FSKit/NeFS.h | 4 +-- dev/ZKAKit/HALKit/ARM64/Storage/HalFlash.cc | 6 ++-- dev/ZKAKit/KernelKit/DeviceMgr.h | 9 ++++-- dev/ZKAKit/KernelKit/LPC.h | 2 +- dev/ZKAKit/KernelKit/ThreadLocalStorage.h | 6 ++-- dev/ZKAKit/KernelKit/User.h | 20 ++++++------ dev/ZKAKit/NewKit/Macros.h | 12 +++---- dev/ZKAKit/NewKit/Ref.h | 6 ++-- dev/ZKAKit/src/DriveMgr.cc | 4 +-- dev/ZKAKit/src/FS/NeFS.cc | 49 ++++++++++++++--------------- dev/ZKAKit/src/User.cc | 12 +++---- 16 files changed, 122 insertions(+), 69 deletions(-) create mode 100644 dev/SCIKit/src/Syscall.asm (limited to 'dev') diff --git a/dev/SCIKit/LPC.h b/dev/SCIKit/LPC.h index e602156d..832deb99 100644 --- a/dev/SCIKit/LPC.h +++ b/dev/SCIKit/LPC.h @@ -6,6 +6,9 @@ #pragma once +/// @file LPC.h +/// @brief Local Process Codes. +/// #define ErrLocalIsOk() (kLastError == kErrorSuccess) #define ErrLocalFailed() (kLastError != kErrorSuccess) #define ErrLocal() (kLastError) diff --git a/dev/SCIKit/build.json b/dev/SCIKit/build.json index 104be044..8f2af775 100644 --- a/dev/SCIKit/build.json +++ b/dev/SCIKit/build.json @@ -2,7 +2,7 @@ "compiler_path": "x86_64-w64-mingw32-g++", "compiler_std": "c++20", "headers_path": ["../"], - "sources_path": ["src/*.cc"], + "sources_path": ["src/*.cc", "src/*.obj"], "output_name": "sci.dll", "compiler_flags": [ "-fPIC", diff --git a/dev/SCIKit/src/Syscall.asm b/dev/SCIKit/src/Syscall.asm new file mode 100644 index 00000000..d1928191 --- /dev/null +++ b/dev/SCIKit/src/Syscall.asm @@ -0,0 +1,48 @@ +;; /* +;; * ======================================================== +;; * +;; * ZKA +;; * Copyright EL Mahrouss Logic., all rights reserved. +;; * +;; * ======================================================== +;; */ + +[bits 64] + +global sci_syscall_1 +global sci_syscall_2 +global sci_syscall_3 +global sci_syscall_4 + +sci_syscall_1: + mov r8, rcx + syscall + ret + +sci_syscall_2: + mov r8, rcx + mov r9, rdx + syscall + ret + +sci_syscall_3: + mov rbx, r8 + + mov r8, rcx + mov r9, rdx + mov r10, rbx + + syscall + ret + +sci_syscall_4: + mov rbx, r8 + mov rax, r9 + + mov r8, rcx + mov r9, rdx + mov r10, rbx + mov r11, rax + + syscall + ret diff --git a/dev/ZKAKit/CompilerKit/CompilerKit.h b/dev/ZKAKit/CompilerKit/CompilerKit.h index 7fe39db8..4763dd18 100644 --- a/dev/ZKAKit/CompilerKit/CompilerKit.h +++ b/dev/ZKAKit/CompilerKit/CompilerKit.h @@ -4,10 +4,10 @@ ------------------------------------------- */ -#ifndef _INC_CL_HPP -#define _INC_CL_HPP +#ifndef _INC_CL_H +#define _INC_CL_H #include #include -#endif /* ifndef _INC_CL_HPP */ +#endif /* ifndef _INC_CL_H */ diff --git a/dev/ZKAKit/FSKit/IndexableProperty.h b/dev/ZKAKit/FSKit/IndexableProperty.h index 1d2014c5..a87d372f 100644 --- a/dev/ZKAKit/FSKit/IndexableProperty.h +++ b/dev/ZKAKit/FSKit/IndexableProperty.h @@ -31,7 +31,7 @@ namespace Kernel : Property() { Kernel::KString strProp(kMaxPropLen); - strProp += "\\Properties\\Indexable"; + strProp += "/Properties/Indexable"; this->GetKey() = strProp; } diff --git a/dev/ZKAKit/FSKit/NeFS.h b/dev/ZKAKit/FSKit/NeFS.h index 4ad6a7d4..bdf1b3b3 100644 --- a/dev/ZKAKit/FSKit/NeFS.h +++ b/dev/ZKAKit/FSKit/NeFS.h @@ -75,11 +75,11 @@ default. #define kNeFSCatalogKindTTF (13) #define kNeFSCatalogKindRIFF (14) -#define kNeFSSeparator '\\' +#define kNeFSSeparator '/' #define kNeFSSeparatorAlt '/' #define kNeFSUpDir ".." -#define kNeFSRoot "\\" +#define kNeFSRoot "/" #define kNeFSRootAlt "/" #define kNeFSLF '\r' diff --git a/dev/ZKAKit/HALKit/ARM64/Storage/HalFlash.cc b/dev/ZKAKit/HALKit/ARM64/Storage/HalFlash.cc index 8998c2f7..7204f7ae 100644 --- a/dev/ZKAKit/HALKit/ARM64/Storage/HalFlash.cc +++ b/dev/ZKAKit/HALKit/ARM64/Storage/HalFlash.cc @@ -16,9 +16,9 @@ namespace Kernel { - /// /:\\BRIDGE\\FLSH\\1 - constexpr auto cFlashBridgeMagic = "FLSH"; - constexpr auto cFlashBridgeRevision = 1; + /// /:/BRIDGE/FLSH/1 + constexpr auto kFlashBridgeMagic = "FLSH"; + constexpr auto kFlashBridgeRevision = 1; STATIC const Boolean kFlashEnabled = No; STATIC SizeT kFlashSize[cMaxFlash] = {}; diff --git a/dev/ZKAKit/KernelKit/DeviceMgr.h b/dev/ZKAKit/KernelKit/DeviceMgr.h index 088fe7e6..5e81c56c 100644 --- a/dev/ZKAKit/KernelKit/DeviceMgr.h +++ b/dev/ZKAKit/KernelKit/DeviceMgr.h @@ -21,7 +21,7 @@ #include #include -#define cDevicePath "\\Mount\\" +#define kDeviceRootDirPath "/Mount/" // Last Rev // Wed, Apr 3, 2024 9:09:41 AM @@ -122,11 +122,14 @@ namespace Kernel kDeviceTypeIDE, kDeviceTypeEthernet, kDeviceTypeWiFi, + kDeviceTypeFW, + kDeviceTypeBT, kDeviceTypeRS232, kDeviceTypeSCSI, - kDeviceTypeSHCI, + kDeviceTypeAHCI, + kDeviceTypeMBCI, kDeviceTypeUSB, - kDeviceTypeMedia, + kDeviceTypeMediaCtrl, kDeviceTypeCount, }; } // namespace Kernel diff --git a/dev/ZKAKit/KernelKit/LPC.h b/dev/ZKAKit/KernelKit/LPC.h index f2d143bd..955f6ee2 100644 --- a/dev/ZKAKit/KernelKit/LPC.h +++ b/dev/ZKAKit/KernelKit/LPC.h @@ -13,7 +13,7 @@ #define ErrLocalIsOk() (Kernel::UserProcessScheduler::The().GetCurrentProcess().Leak().GetLocalCode() == Kernel::kErrorSuccess) #define ErrLocalFailed() (Kernel::UserProcessScheduler::The().GetCurrentProcess().Leak().GetLocalCode() != Kernel::kErrorSuccess) -#define ErrLocal() Kernel::UserProcessScheduler::The().GetCurrentProcess().Leak().GetLocalCode() +#define ErrLocal() (Kernel::UserProcessScheduler::The().GetCurrentProcess().Leak().GetLocalCode()) namespace Kernel { diff --git a/dev/ZKAKit/KernelKit/ThreadLocalStorage.h b/dev/ZKAKit/KernelKit/ThreadLocalStorage.h index b9fb691f..89eb627c 100644 --- a/dev/ZKAKit/KernelKit/ThreadLocalStorage.h +++ b/dev/ZKAKit/KernelKit/ThreadLocalStorage.h @@ -4,8 +4,8 @@ ------------------------------------------- */ -#ifndef _KERNELKIT_TLS_HPP -#define _KERNELKIT_TLS_HPP +#ifndef _KERNELKIT_TLS_H +#define _KERNELKIT_TLS_H #include @@ -51,4 +51,4 @@ EXTERN_C Kernel::Bool tls_check_syscall_impl(Kernel::VoidPtr TIB) noexcept; // last rev 7/7/24 -#endif /* ifndef _KERNELKIT_TLS_HPP */ +#endif /* ifndef _KERNELKIT_TLS_H */ diff --git a/dev/ZKAKit/KernelKit/User.h b/dev/ZKAKit/KernelKit/User.h index f894b8a0..3e48f1bd 100644 --- a/dev/ZKAKit/KernelKit/User.h +++ b/dev/ZKAKit/KernelKit/User.h @@ -13,19 +13,19 @@ #include // user mode users. -#define kSuperUser "ZKA AUTHORITY\\SUPER" -#define kGuestUser "ZKA AUTHORITY\\GUEST" +#define kSuperUser "OS AUTHORITY/SUPER" +#define kGuestUser "OS AUTHORITY/GUEST" -#define kUsersDir "\\Users\\" +#define kUsersDir "/Users/" #define kMaxUserNameLen (255) -#define kMaxUserTokenLen (255) +#define kMaxUserTokenLen (4096) namespace Kernel { class User; - enum class RingKind + enum class UserRingKind { kRingStdUser = 1, kRingSuperUser = 2, @@ -33,13 +33,15 @@ namespace Kernel kRingCount = 3, }; + typedef Char* UserPublicKey; + class User final { public: explicit User() = delete; User(const Int32& sel, const Char* userName); - User(const RingKind& kind, const Char* userName); + User(const UserRingKind& kind, const Char* userName); ~User(); @@ -52,7 +54,7 @@ namespace Kernel public: /// @brief Get software ring - const RingKind& Ring() noexcept; + const UserRingKind& Ring() noexcept; /// @brief Get user name Char* Name() noexcept; @@ -63,10 +65,10 @@ namespace Kernel /// @brief Is she a super user? Bool IsSuperUser() noexcept; - Bool TrySave(const Char* password) noexcept; + Bool TrySave(const UserPublicKey password) noexcept; private: - RingKind fRing{RingKind::kRingStdUser}; + UserRingKind fRing{UserRingKind::kRingStdUser}; Char fUserName[kMaxUserNameLen] = {0}; Char fUserToken[kMaxUserTokenLen] = {0}; }; diff --git a/dev/ZKAKit/NewKit/Macros.h b/dev/ZKAKit/NewKit/Macros.h index 5d996c56..4d19416a 100644 --- a/dev/ZKAKit/NewKit/Macros.h +++ b/dev/ZKAKit/NewKit/Macros.h @@ -119,19 +119,19 @@ #endif // !RGB /// @brief The system page file. -#define kPageSys "\\System\\syspage.sys" +#define kPageSys "/System/syspage.sys" /// @brief The main system driver. -#define kStartupSys "\\Boot\\startup.sys" +#define kStartupSys "/Boot/startup.sys" /// @brief The main font file. -#define kUrbanistTTF "\\Fonts\\urbanist.ttf" +#define kUrbanistTTF "/Fonts/urbanist.ttf" /// @brief License file -#define kEulaTxt "\\Misc\\EULA.txt" +#define kEulaTxt "/Misc/EULA.txt" /// @brief The main kernel file. -#define kStartupWav "\\Rsrc\\startup.wav" +#define kStartupWav "/Rsrc/startup.wav" /// @brief The main system loader. -#define kUserName "ZKA AUTHORITY\\KERNEL" +#define kUserName "ZKA AUTHORITY/KERNEL" diff --git a/dev/ZKAKit/NewKit/Ref.h b/dev/ZKAKit/NewKit/Ref.h index fbfb402d..34e47f27 100644 --- a/dev/ZKAKit/NewKit/Ref.h +++ b/dev/ZKAKit/NewKit/Ref.h @@ -5,8 +5,8 @@ ------------------------------------------- */ -#ifndef _NEWKIT_REF_HPP_ -#define _NEWKIT_REF_HPP_ +#ifndef _NEWKIT_REF_H_ +#define _NEWKIT_REF_H_ #include #include @@ -105,4 +105,4 @@ namespace Kernel }; } // namespace Kernel -#endif // ifndef _NEWKIT_REF_HPP_ +#endif // ifndef _NEWKIT_REF_H_ diff --git a/dev/ZKAKit/src/DriveMgr.cc b/dev/ZKAKit/src/DriveMgr.cc index cce09143..c8ab9b6c 100644 --- a/dev/ZKAKit/src/DriveMgr.cc +++ b/dev/ZKAKit/src/DriveMgr.cc @@ -127,7 +127,7 @@ namespace Kernel { DriveTrait trait; - rt_copy_memory((VoidPtr) "\\Mount\\NUL:", trait.fName, rt_string_len("\\Mount\\NUL:")); + rt_copy_memory((VoidPtr) "/Mount/NUL:", trait.fName, rt_string_len("/Mount/NUL:")); trait.fKind = kInvalidStorage; trait.fInput = io_drv_unimplemented; @@ -176,7 +176,7 @@ namespace Kernel { DriveTrait trait; - rt_copy_memory((VoidPtr) "\\Mount\\OS:", trait.fName, rt_string_len("\\Mount\\OS:")); + rt_copy_memory((VoidPtr) "/Mount/OS:", trait.fName, rt_string_len("/Mount/OS:")); Detail::ioi_detect_drive(trait); diff --git a/dev/ZKAKit/src/FS/NeFS.cc b/dev/ZKAKit/src/FS/NeFS.cc index 0dc31f5c..7b2854c2 100644 --- a/dev/ZKAKit/src/FS/NeFS.cc +++ b/dev/ZKAKit/src/FS/NeFS.cc @@ -46,13 +46,13 @@ Kernel::SizeT drv_get_size(); /***********************************************************************************/ /// This file implements the New File System. /// New File System implements a B-Tree based algortihm. -/// \\ -/// \\Path1\\ \\ath2\\ -/// \\readme.rtf \\ListContents.pef \\readme.lnk <-- symlink. -/// \\Path1\\readme.rtf +/// / +/// /Path1/ /ath2/ +/// /readme.rtf /ListContents.pef /readme.lnk <-- symlink. +/// /Path1/readme.rtf /***********************************************************************************/ -STATIC MountpointInterface sMountpointInterface; +STATIC MountpointInterface kDiskMountpoint; /***********************************************************************************/ /// @brief Creates a new fork inside the New filesystem partition. @@ -69,12 +69,12 @@ _Output NFS_FORK_STRUCT* NeFSParser::CreateFork(_Input NFS_CATALOG_STRUCT* catal Lba lba = (the_fork.Kind == kNeFSDataForkKind) ? catalog->DataFork : catalog->ResourceFork; - kcout << "fork lba: " << hex_number(lba) << endl; + kcout << "Fork LBA: " << hex_number(lba) << endl; if (lba <= kNeFSCatalogStartAddress) return nullptr; - auto drv = sMountpointInterface.A(); + auto drv = kDiskMountpoint.A(); /// special treatment. rt_copy_memory((VoidPtr) "fs/nefs-packet", drv.fPacket.fPacketMime, @@ -98,22 +98,22 @@ _Output NFS_FORK_STRUCT* NeFSParser::CreateFork(_Input NFS_CATALOG_STRUCT* catal if (curFork.NextSibling > kBadAddress) { - kcout << "bad fork: " << hex_number(curFork.NextSibling) << endl; + kcout << "Bad fork: " << hex_number(curFork.NextSibling) << endl; break; } - kcout << "next fork: " << hex_number(curFork.NextSibling) << endl; + kcout << "Next fork: " << hex_number(curFork.NextSibling) << endl; if (curFork.Flags & kNeFSFlagCreated) { - kcout << "fork already exists.\r"; + kcout << "Fork already exists.\r"; /// sanity check. if (StringBuilder::Equals(curFork.ForkName, the_fork.ForkName) && StringBuilder::Equals(curFork.CatalogName, catalog->Name)) return nullptr; - kcout << "next fork: " << hex_number(curFork.NextSibling) << endl; + kcout << "Next fork: " << hex_number(curFork.NextSibling) << endl; lbaOfPreviousFork = lba; lba = curFork.NextSibling; @@ -140,9 +140,6 @@ _Output NFS_FORK_STRUCT* NeFSParser::CreateFork(_Input NFS_CATALOG_STRUCT* catal } } - constexpr auto cForkPadding = - 4; /// this value gives us space for the data offset. - the_fork.Flags |= kNeFSFlagCreated; the_fork.DataOffset = lba - sizeof(NFS_FORK_STRUCT); the_fork.PreviousSibling = lbaOfPreviousFork; @@ -176,7 +173,7 @@ _Output NFS_FORK_STRUCT* NeFSParser::FindFork(_Input NFS_CATALOG_STRUCT* catalog _Input const Char* name, Boolean isDataFork) { - auto drv = sMountpointInterface.A(); + auto drv = kDiskMountpoint.A(); NFS_FORK_STRUCT* the_fork = nullptr; Lba lba = isDataFork ? catalog->DataFork : catalog->ResourceFork; @@ -190,7 +187,7 @@ _Output NFS_FORK_STRUCT* NeFSParser::FindFork(_Input NFS_CATALOG_STRUCT* catalog rt_copy_memory((VoidPtr) "fs/nefs-packet", drv.fPacket.fPacketMime, 16); if (auto res = - fs_newfs_read(&sMountpointInterface, drv, this->fDriveIndex); + fs_newfs_read(&kDiskMountpoint, drv, this->fDriveIndex); res) { switch (res) @@ -306,7 +303,7 @@ _Output NFS_CATALOG_STRUCT* NeFSParser::CreateCatalog(_Input const Char* name, NFS_CATALOG_STRUCT* catalog = this->FindCatalog(parentName, out_lba); - auto drive = sMountpointInterface.A(); + auto drive = kDiskMountpoint.A(); if (catalog && catalog->Kind == kNeFSCatalogKindFile) { @@ -645,7 +642,7 @@ bool NeFSParser::WriteCatalog(_Input _Output NFS_CATALOG_STRUCT* catalog, Bool i rt_copy_memory(data, buf, size_of_data); - auto drive = sMountpointInterface.A(); + auto drive = kDiskMountpoint.A(); rt_copy_memory((VoidPtr) "fs/nefs-packet", drive.fPacket.fPacketMime, rt_string_len("fs/nefs-packet")); @@ -728,7 +725,7 @@ _Output NFS_CATALOG_STRUCT* NeFSParser::FindCatalog(_Input const Char* catalogNa kcout << "Start finding catalog...\r"; NFS_ROOT_PARTITION_BLOCK fs_buf{0}; - auto drive = sMountpointInterface.A(); + auto drive = kDiskMountpoint.A(); rt_copy_memory((VoidPtr) "fs/nefs-packet", drive.fPacket.fPacketMime, rt_string_len("fs/nefs-packet")); @@ -890,7 +887,7 @@ Boolean NeFSParser::RemoveCatalog(_Input const Char* catalogName) { catalog->Flags |= kNeFSFlagDeleted; - auto drive = sMountpointInterface.A(); + auto drive = kDiskMountpoint.A(); rt_copy_memory((VoidPtr) "fs/nefs-packet", drive.fPacket.fPacketMime, rt_string_len("fs/nefs-packet")); @@ -956,7 +953,7 @@ VoidPtr NeFSParser::ReadCatalog(_Input _Output NFS_CATALOG_STRUCT* catalog, << ", fork: " << hex_number(dataForkLba) << endl; NFS_FORK_STRUCT* fs_buf = new NFS_FORK_STRUCT(); - auto drive = sMountpointInterface.A(); + auto drive = kDiskMountpoint.A(); rt_copy_memory((VoidPtr) "fs/nefs-packet", drive.fPacket.fPacketMime, rt_string_len("fs/nefs-packet")); @@ -1038,14 +1035,14 @@ namespace Kernel::Detail { kcout << "Creating drives...\r"; - sMountpointInterface.A() = io_construct_main_drive(); - sMountpointInterface.B() = io_construct_drive(); - sMountpointInterface.C() = io_construct_drive(); - sMountpointInterface.D() = io_construct_drive(); + kDiskMountpoint.A() = io_construct_main_drive(); + kDiskMountpoint.B() = io_construct_drive(); + kDiskMountpoint.C() = io_construct_drive(); + kDiskMountpoint.D() = io_construct_drive(); kcout << "Constructing A:\r"; - sMountpointInterface.A().fInit(&sMountpointInterface.A().fPacket); + kDiskMountpoint.A().fInit(&kDiskMountpoint.A().fPacket); kcout << "Constructing A: [ OK ]\r"; diff --git a/dev/ZKAKit/src/User.cc b/dev/ZKAKit/src/User.cc index 7d9a055b..39d3e2be 100644 --- a/dev/ZKAKit/src/User.cc +++ b/dev/ZKAKit/src/User.cc @@ -53,13 +53,13 @@ namespace Kernel } // namespace Detail User::User(const Int32& sel, const Char* userName) - : fRing((RingKind)sel) + : fRing((UserRingKind)sel) { MUST_PASS(sel >= 0); rt_copy_memory((VoidPtr)userName, this->fUserName, rt_string_len(userName)); } - User::User(const RingKind& ringKind, const Char* userName) + User::User(const UserRingKind& ringKind, const Char* userName) : fRing(ringKind) { rt_copy_memory((VoidPtr)userName, this->fUserName, rt_string_len(userName)); @@ -67,7 +67,7 @@ namespace Kernel User::~User() = default; - Bool User::TrySave(const Char* password_to_fill) noexcept + Bool User::TrySave(const UserPublicKey password_to_fill) noexcept { if (!password_to_fill || *password_to_fill == 0) @@ -120,18 +120,18 @@ namespace Kernel /// @brief Returns the user's ring. /// @return The king of ring the user is attached to. - const RingKind& User::Ring() noexcept + const UserRingKind& User::Ring() noexcept { return this->fRing; } Bool User::IsStdUser() noexcept { - return this->Ring() == RingKind::kRingStdUser; + return this->Ring() == UserRingKind::kRingStdUser; } Bool User::IsSuperUser() noexcept { - return this->Ring() == RingKind::kRingSuperUser; + return this->Ring() == UserRingKind::kRingSuperUser; } } // namespace Kernel -- cgit v1.2.3