diff options
Diffstat (limited to 'Kernel')
| -rw-r--r-- | Kernel/HALKit/AMD64/HalKernelMain.cxx | 1 | ||||
| -rw-r--r-- | Kernel/KernelKit/User.hxx | 2 | ||||
| -rw-r--r-- | Kernel/KernelRsrc.rsrc | 2 | ||||
| -rw-r--r-- | Kernel/Sources/FS/NewFS.cxx | 28 | ||||
| -rw-r--r-- | Kernel/Sources/FileManager.cxx | 8 | ||||
| -rw-r--r-- | Kernel/Sources/NewFS+FileManager.cxx | 2 | ||||
| -rw-r--r-- | Kernel/Sources/User.cxx | 12 |
7 files changed, 38 insertions, 17 deletions
diff --git a/Kernel/HALKit/AMD64/HalKernelMain.cxx b/Kernel/HALKit/AMD64/HalKernelMain.cxx index 495cb0be..01153c0e 100644 --- a/Kernel/HALKit/AMD64/HalKernelMain.cxx +++ b/Kernel/HALKit/AMD64/HalKernelMain.cxx @@ -224,7 +224,6 @@ Kernel::Void hal_real_init(Kernel::Void) noexcept const auto cPassword = "password"; #endif - cRoot->TrySave(cPassword); Kernel::UserManager::The()->TryLogIn(cRoot, cPassword); diff --git a/Kernel/KernelKit/User.hxx b/Kernel/KernelKit/User.hxx index 169a8bce..ac0b2bb7 100644 --- a/Kernel/KernelKit/User.hxx +++ b/Kernel/KernelKit/User.hxx @@ -16,7 +16,7 @@ #define kSuperUser "\\Local\\Super" #define kGuestUser "\\Local\\Guest" -#define kUsersFile "\\Users\\$UserMTF" +#define kUsersFile "\\Users\\$MANIFEST" #define kMaxUserNameLen (255) #define kMaxUserTokenLen (4096) diff --git a/Kernel/KernelRsrc.rsrc b/Kernel/KernelRsrc.rsrc index 4cf7e352..113b2176 100644 --- a/Kernel/KernelRsrc.rsrc +++ b/Kernel/KernelRsrc.rsrc @@ -1,5 +1,3 @@ -1 ICON "../Icons/default.ico" - #include "CompilerKit/Version.hxx" 1 VERSIONINFO diff --git a/Kernel/Sources/FS/NewFS.cxx b/Kernel/Sources/FS/NewFS.cxx index 83c39e4b..a332576c 100644 --- a/Kernel/Sources/FS/NewFS.cxx +++ b/Kernel/Sources/FS/NewFS.cxx @@ -221,13 +221,13 @@ _Output NFS_CATALOG_STRUCT* NewFSParser::CreateCatalog(_Input const char* name) /// @param flags the flags of the catalog. /// @param kind the catalog kind. /// @return catalog pointer. -_Output NFS_CATALOG_STRUCT* NewFSParser::CreateCatalog(_Input const char* name, +_Output NFS_CATALOG_STRUCT* NewFSParser::CreateCatalog(_Input const Char* name, _Input const Int32& flags, _Input const Int32& kind) { if (!sMountpointInterface.GetAddressOf(this->fDriveIndex)) return nullptr; - + Lba outLba = 0UL; /// a directory should have a slash in the end. @@ -610,10 +610,8 @@ bool NewFSParser::Format(_Input _Output DriveTrait* drive, _Input const Lba endL /// @param catalog the catalog itself /// @param data the data. /// @return if the catalog w rote the contents successfully. -bool NewFSParser::WriteCatalog(_Input _Output NFS_CATALOG_STRUCT* catalog, voidPtr data, SizeT sizeOfData, _Input const char* forkName) +bool NewFSParser::WriteCatalog(_Input _Output NFS_CATALOG_STRUCT* catalog, voidPtr data, SizeT sizeOfData, _Input const Char* forkName) { - if (sizeOfData > catalog->DataForkSize) - return false; if (!sMountpointInterface.GetAddressOf(this->fDriveIndex)) return false; @@ -656,6 +654,11 @@ bool NewFSParser::WriteCatalog(_Input _Output NFS_CATALOG_STRUCT* catalog, voidP StringBuilder::Equals(forkData->ForkName, forkName) && StringBuilder::Equals(forkData->CatalogName, catalog->Name)) { + // ===================================================== // + // Store size of blob now. + // ===================================================== // + forkData->DataSize = sizeOfData; + drive->fPacket.fPacketContent = data; drive->fPacket.fPacketSize = sizeOfData; drive->fPacket.fLba = forkData->DataOffset; @@ -670,6 +673,11 @@ bool NewFSParser::WriteCatalog(_Input _Output NFS_CATALOG_STRUCT* catalog, voidP else if (auto catalog = this->GetCatalog(forkData->CatalogName); catalog == nullptr) { + // ===================================================== // + // Store size of blob now. + // ===================================================== // + forkData->DataSize = sizeOfData; + delete catalog; drive->fPacket.fPacketContent = data; @@ -680,6 +688,16 @@ bool NewFSParser::WriteCatalog(_Input _Output NFS_CATALOG_STRUCT* catalog, voidP drive->fOutput(&drive->fPacket); + forkData->Flags = kNewFSFlagCreated; + + drive->fPacket.fPacketContent = forkData; + drive->fPacket.fPacketSize = sizeof(NFS_FORK_STRUCT); + drive->fPacket.fLba = startFork; + + drive->fOutput(&drive->fPacket); + + kcout << "newoskrnl: wrote fork at offset: " << hex_number(forkData->DataOffset) << endl; + delete forkData; return true; } diff --git a/Kernel/Sources/FileManager.cxx b/Kernel/Sources/FileManager.cxx index 634e4fd6..96e42dc9 100644 --- a/Kernel/Sources/FileManager.cxx +++ b/Kernel/Sources/FileManager.cxx @@ -37,13 +37,13 @@ namespace Kernel } /// @brief Mount filesystem. - /// @param mountPtr The filesystem to mount. + /// @param mount_ptr The filesystem to mount. /// @return if it succeeded true, otherwise false. - bool FilesystemManagerInterface::Mount(_Input FilesystemManagerInterface* mountPtr) + bool FilesystemManagerInterface::Mount(_Input FilesystemManagerInterface* mount_ptr) { - if (kMounted == nullptr) + if (mount_ptr != nullptr) { - kMounted = mountPtr; + kMounted = mount_ptr; return true; } diff --git a/Kernel/Sources/NewFS+FileManager.cxx b/Kernel/Sources/NewFS+FileManager.cxx index b1622f77..3d216ca5 100644 --- a/Kernel/Sources/NewFS+FileManager.cxx +++ b/Kernel/Sources/NewFS+FileManager.cxx @@ -25,6 +25,8 @@ namespace Kernel NewFilesystemManager::~NewFilesystemManager() { + kcout << "Destroying it...\r"; + if (fImpl) { delete fImpl; diff --git a/Kernel/Sources/User.cxx b/Kernel/Sources/User.cxx index ee825400..028d184c 100644 --- a/Kernel/Sources/User.cxx +++ b/Kernel/Sources/User.cxx @@ -17,6 +17,9 @@ #include <KernelKit/Heap.hxx> +#define cStdUser (0xCF) +#define cSuperUser (0xEF) + /// BUGS: 0 namespace Kernel @@ -34,7 +37,7 @@ namespace Kernel for (Size i_pass = 0; i_pass < rt_string_len(password); ++i_pass) { Char cur_chr = password[i_pass]; - password[i_pass] = cur_chr + (user->IsStdUser() ? 0xCF : 0xEF); + password[i_pass] = cur_chr + (user->IsStdUser() ? cStdUser : cSuperUser); } return 0; @@ -72,8 +75,9 @@ namespace Kernel if (NewFilesystemManager::GetMounted()) { - if (auto dir = NewFilesystemManager::GetMounted()->CreateDirectory("\\Users"); - dir) + auto dir = NewFilesystemManager::GetMounted()->CreateDirectory("\\Users\\"); + + if (dir) { delete dir; } @@ -84,7 +88,7 @@ namespace Kernel } auto node = NewFilesystemManager::GetMounted()->Create(kUsersFile); - NewFilesystemManager::GetMounted()->Write(this->fUserName.CData(), node, (VoidPtr)token, this->IsStdUser() ? 0xCF : 0xEF, len); + NewFilesystemManager::GetMounted()->Write(this->fUserName.CData(), node, (VoidPtr)token, this->IsStdUser() ? cStdUser : cSuperUser, len); delete node; delete token; |
