diff options
| author | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-04-28 09:08:00 +0200 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-04-28 09:08:00 +0200 |
| commit | b608517c047f7e4f7d7d70af7db76b0e9b0873b0 (patch) | |
| tree | 2ffd9ee4e202692d873f53f41520cde960b1ddef /Private/Source | |
| parent | dd6568c64e440fe9d8c75539165377ddbbca3e2c (diff) | |
MHR-18: Big set of patches regarding the New Filesystem.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'Private/Source')
| -rw-r--r-- | Private/Source/AppMain.cxx | 2 | ||||
| -rw-r--r-- | Private/Source/PEFCodeManager.cxx | 29 | ||||
| -rw-r--r-- | Private/Source/compile_flags.txt | 1 |
3 files changed, 19 insertions, 13 deletions
diff --git a/Private/Source/AppMain.cxx b/Private/Source/AppMain.cxx index 6dd78496..8fa74459 100644 --- a/Private/Source/AppMain.cxx +++ b/Private/Source/AppMain.cxx @@ -24,7 +24,7 @@ EXTERN_C NewOS::Void AppMain(NewOS::Void) { NewOS::FilesystemManagerInterface::Mount(newFS); if (newFS->GetImpl()) { - auto catalog = newFS->GetImpl()->GetCatalog("/"); + auto catalog = newFS->GetImpl()->GetCatalog("/Boot"); if (catalog) { NewOS::kcout << "Catalog-Path-Name: " << catalog->Name << NewOS::endl; delete catalog; diff --git a/Private/Source/PEFCodeManager.cxx b/Private/Source/PEFCodeManager.cxx index 6ff5730d..cd1b301f 100644 --- a/Private/Source/PEFCodeManager.cxx +++ b/Private/Source/PEFCodeManager.cxx @@ -35,11 +35,9 @@ UInt32 rt_get_pef_platform(void) noexcept { /// @brief PEF loader constructor w/ blob. /// @param blob -PEFLoader::PEFLoader(const VoidPtr blob) : fCachedBlob(nullptr) { - fCachedBlob = blob; - fBad = false; - +PEFLoader::PEFLoader(const VoidPtr blob) : fCachedBlob(blob) { MUST_PASS(fCachedBlob); + fBad = false; } /// @brief PEF loader constructor. @@ -155,10 +153,8 @@ ErrorOr<VoidPtr> PEFLoader::FindStart() { /// @return bool PEFLoader::IsLoaded() noexcept { return !fBad && fCachedBlob; } -#define kPefAppnameCommandHdr "PefAppName" - namespace Utils { -bool execute_from_image(PEFLoader &exec) noexcept { +bool execute_from_image(PEFLoader &exec, const Int32& procKind) noexcept { auto errOrStart = exec.FindStart(); if (errOrStart.Error() != 0) return false; @@ -166,10 +162,7 @@ bool execute_from_image(PEFLoader &exec) noexcept { ProcessHeader proc(errOrStart.Leak().Leak()); Ref<ProcessHeader> refProc = proc; - proc.Kind = ProcessHeader::kUserKind; - rt_copy_memory(exec.FindSymbol(kPefAppnameCommandHdr, kPefData), proc.Name, - rt_string_len((const Char *)exec.FindSymbol( - kPefAppnameCommandHdr, kPefData))); + proc.Kind = procKind; return ProcessScheduler::Shared().Leak().Add(refProc); } @@ -177,7 +170,19 @@ bool execute_from_image(PEFLoader &exec) noexcept { const char *PEFLoader::Path() { return fPath.Leak().CData(); } -const char *PEFLoader::Format() { return "PEF"; } +const char *PEFLoader::Format() { + #ifdef __32x0__ + return "32x0 PEF."; + #elif defined(__64x0__) + return "64x0 PEF."; + #elif defined(__x86_64__) + return "x86_64 PEF."; + #elif defined(__powerpc64__) + return "POWER PEF."; + #else + return "Unknonwn PEF."; + #endif // __32x0__ || __64x0__ || __x86_64__ +} const char *PEFLoader::MIME() { return kPefApplicationMime; } } // namespace NewOS diff --git a/Private/Source/compile_flags.txt b/Private/Source/compile_flags.txt index b96cbe62..1f54e6fb 100644 --- a/Private/Source/compile_flags.txt +++ b/Private/Source/compile_flags.txt @@ -4,3 +4,4 @@ -I../ -I$(HOME)/ -D__FSKIT_NEWFS__ +-D__NEWOS_AMD64__ |
