summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--.gitignore5
-rw-r--r--dev/Kernel/ArchKit/ArchKit.h2
-rw-r--r--dev/Kernel/FSKit/NeFS.h4
-rw-r--r--dev/Kernel/HALKit/AMD64/HalApplicationProcessor.cc4
-rw-r--r--dev/Kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc2
-rw-r--r--dev/Kernel/HALKit/AMD64/HalKernelPanic.cc10
-rw-r--r--dev/Kernel/HALKit/AMD64/HalPagingMgrAMD64.cc8
-rw-r--r--dev/Kernel/HALKit/AMD64/Storage/AHCI.cc6
-rw-r--r--dev/Kernel/HALKit/AMD64/Storage/DMA.cc2
-rw-r--r--dev/Kernel/HALKit/AMD64/Storage/PIO.cc2
-rw-r--r--dev/Kernel/HALKit/ARM64/HalApplicationProcessor.cc4
-rw-r--r--dev/Kernel/HALKit/ARM64/HalKernelPanic.cc4
-rw-r--r--dev/Kernel/HALKit/ARM64/Storage/MFlash+IO.cc4
-rw-r--r--dev/Kernel/KernelKit/DebugOutput.h2
-rw-r--r--dev/Kernel/src/ACPIFactoryInterface.cc16
-rw-r--r--dev/Kernel/src/BitMapMgr.cc18
-rw-r--r--dev/Kernel/src/DriveMgr.cc2
-rw-r--r--dev/Kernel/src/FS/NeFS.cc56
-rw-r--r--dev/Kernel/src/IndexableProperty.cc2
-rw-r--r--dev/Kernel/src/MemoryMgr.cc6
-rw-r--r--dev/Kernel/src/UserProcessScheduler.cc10
-rw-r--r--public/tools/make_fs/make_fs.cc31
-rw-r--r--public/tools/make_fs/make_fs.json5
23 files changed, 122 insertions, 83 deletions
diff --git a/.gitignore b/.gitignore
index b934ffa1..08cbd118 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,11 +2,16 @@ syntax: glob
xcuserdata/
+public/tools/make_fs/dist/make_fs
+
*.hmap
*.ipa
*.dSYM.zip
*.dSYM
+# EPM Image
+*.eimg
+
*/xcuserdata/*
*.xcworkspacedata
diff --git a/dev/Kernel/ArchKit/ArchKit.h b/dev/Kernel/ArchKit/ArchKit.h
index d663cdc7..dd284f5d 100644
--- a/dev/Kernel/ArchKit/ArchKit.h
+++ b/dev/Kernel/ArchKit/ArchKit.h
@@ -20,6 +20,8 @@
#include <HALKit/POWER/Processor.h>
#elif defined(__NE_ARM64__)
#include <HALKit/ARM64/Processor.h>
+#elif defined(__NE_SDK__)
+#include <HALKit/ARM64/Processor.h>
#else
#error !!! unknown architecture !!!
#endif
diff --git a/dev/Kernel/FSKit/NeFS.h b/dev/Kernel/FSKit/NeFS.h
index 0c4483e0..bd11c86d 100644
--- a/dev/Kernel/FSKit/NeFS.h
+++ b/dev/Kernel/FSKit/NeFS.h
@@ -355,7 +355,7 @@ namespace NeOS
return;
}
- kout << "Info: Journal stamp: " << stamp << endl;
+ kout << "Info: Journal stamp: " << stamp << kendl;
rt_copy_memory((VoidPtr)stamp, this->mStamp, rt_string_len(stamp));
}
@@ -427,7 +427,7 @@ namespace NeOS
if (!parser->CreateFork(new_fork))
return NO;
- kout << "XML Commited: " << xml_data << "\r\nTo Journal Fork: " << journal_name << endl;
+ kout << "XML Commited: " << xml_data << "\r\nTo Journal Fork: " << journal_name << kendl;
auto ret = parser->WriteCatalog(new_fork.CatalogName, YES, xml_data, rt_string_len(xml_data), new_fork.ForkName);
diff --git a/dev/Kernel/HALKit/AMD64/HalApplicationProcessor.cc b/dev/Kernel/HALKit/AMD64/HalApplicationProcessor.cc
index c847f2b9..9987a0c5 100644
--- a/dev/Kernel/HALKit/AMD64/HalApplicationProcessor.cc
+++ b/dev/Kernel/HALKit/AMD64/HalApplicationProcessor.cc
@@ -235,7 +235,7 @@ namespace NeOS::HAL
break;
kAPICLocales[kSMPCount] = kMADTBlock->List[kSMPCount].LAPIC.ProcessorID;
- kout << "SMP: APIC ID: " << number(kAPICLocales[kSMPCount]) << endl;
+ kout << "SMP: APIC ID: " << number(kAPICLocales[kSMPCount]) << kendl;
// I'll just make the AP start from scratch here.
@@ -258,7 +258,7 @@ namespace NeOS::HAL
++index;
}
- kout << "SMP: number of APs: " << number(kSMPCount) << endl;
+ kout << "SMP: number of APs: " << number(kSMPCount) << kendl;
// Kernel is now SMP aware.
// That means that the scheduler is now available (on MP Kernels)
diff --git a/dev/Kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc b/dev/Kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc
index 3d9c8938..35568399 100644
--- a/dev/Kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc
+++ b/dev/Kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc
@@ -147,7 +147,7 @@ EXTERN_C NeOS::Void idt_handle_breakpoint(NeOS::UIntPtr rip)
kIsScheduling = NO;
- kout << "Kernel: Process RIP: " << NeOS::hex_number(rip) << endl;
+ kout << "Kernel: Process RIP: " << NeOS::hex_number(rip) << kendl;
kout << "Kernel: SIGTRAP\r";
process.Leak().ProcessSignal.SignalArg = rip;
diff --git a/dev/Kernel/HALKit/AMD64/HalKernelPanic.cc b/dev/Kernel/HALKit/AMD64/HalKernelPanic.cc
index df060648..663a8f8e 100644
--- a/dev/Kernel/HALKit/AMD64/HalKernelPanic.cc
+++ b/dev/Kernel/HALKit/AMD64/HalKernelPanic.cc
@@ -40,9 +40,9 @@ namespace NeOS
auto y = 10;
auto x = 10;
- kout << "Kernel_Panic_MSG: " << message << endl;
- kout << "Kernel_Panic_ID: " << hex_number(id) << endl;
- kout << "Kernel_Panic_CR2: " << hex_number((UIntPtr)hal_read_cr2()) << endl;
+ kout << "Kernel_Panic_MSG: " << message << kendl;
+ kout << "Kernel_Panic_ID: " << hex_number(id) << kendl;
+ kout << "Kernel_Panic_CR2: " << hex_number((UIntPtr)hal_read_cr2()) << kendl;
RecoveryFactory::Recover();
}
@@ -59,8 +59,8 @@ namespace NeOS
{
if (!expr)
{
- kout << "Kernel_Panic_File: " << file << endl;
- kout << "Kernel_Panic_Line: " << line << endl;
+ kout << "Kernel_Panic_File: " << file << kendl;
+ kout << "Kernel_Panic_Line: " << line << kendl;
ke_panic(RUNTIME_CHECK_FAILED, file); // Runtime Check failed
}
diff --git a/dev/Kernel/HALKit/AMD64/HalPagingMgrAMD64.cc b/dev/Kernel/HALKit/AMD64/HalPagingMgrAMD64.cc
index b5fa2b1d..854b9057 100644
--- a/dev/Kernel/HALKit/AMD64/HalPagingMgrAMD64.cc
+++ b/dev/Kernel/HALKit/AMD64/HalPagingMgrAMD64.cc
@@ -100,10 +100,10 @@ namespace NeOS::HAL
/***********************************************************************************/
STATIC Void mmi_page_status(PTE* pte)
{
- kout << (pte->Present ? "Present" : "Not Present") << endl;
- kout << (pte->Wr ? "W/R" : "Not W/R") << endl;
- kout << (pte->ExecDisable ? "NX" : "Not NX") << endl;
- kout << (pte->User ? "User" : "Not User") << endl;
+ kout << (pte->Present ? "Present" : "Not Present") << kendl;
+ kout << (pte->Wr ? "W/R" : "Not W/R") << kendl;
+ kout << (pte->ExecDisable ? "NX" : "Not NX") << kendl;
+ kout << (pte->User ? "User" : "Not User") << kendl;
}
STATIC Int32 mmi_map_page_table_entry(UInt32 physical_address, UInt32 flags, NE_PTE* pt_entry, NE_PDE* pd_entry);
diff --git a/dev/Kernel/HALKit/AMD64/Storage/AHCI.cc b/dev/Kernel/HALKit/AMD64/Storage/AHCI.cc
index a8e60e58..22d52486 100644
--- a/dev/Kernel/HALKit/AMD64/Storage/AHCI.cc
+++ b/dev/Kernel/HALKit/AMD64/Storage/AHCI.cc
@@ -80,8 +80,8 @@ STATIC Void drv_compute_disk_ahci() noexcept
kHighestLBA = (identify_data[61] << 16) | identify_data[60];
- kout << "Disk Size: " << number(drv_get_size()) << endl;
- kout << "Highest LBA: " << number(kHighestLBA) << endl;
+ kout << "Disk Size: " << number(drv_get_size()) << kendl;
+ kout << "Highest LBA: " << number(kHighestLBA) << kendl;
}
STATIC Int32 drv_find_cmd_slot(HbaPort* port) noexcept
@@ -220,7 +220,7 @@ STATIC Bool drv_std_init_ahci(UInt16& pi, BOOL atapi)
if (mem_ahci->Ports[ahci_index].Sig == kSATASignature && det == kSATAPresent && ipm == kSATAIPMActive)
{
- kout << (atapi ? "Detect: /dev/atp" : "Detect: /dev/sat") << number(ahci_index) << endl;
+ kout << (atapi ? "Detect: /dev/atp" : "Detect: /dev/sat") << number(ahci_index) << kendl;
kSATAIndex = ahci_index;
kSATA[ahci_index] = mem_ahci;
diff --git a/dev/Kernel/HALKit/AMD64/Storage/DMA.cc b/dev/Kernel/HALKit/AMD64/Storage/DMA.cc
index cece11b1..661a932b 100644
--- a/dev/Kernel/HALKit/AMD64/Storage/DMA.cc
+++ b/dev/Kernel/HALKit/AMD64/Storage/DMA.cc
@@ -117,7 +117,7 @@ Boolean drv_std_init(UInt16 Bus, UInt8 Drive, UInt16& OutBus, UInt8& OutMaster)
kCurrentDiskModel[40] = '\0';
- kout << "Drive Model: " << kCurrentDiskModel << endl;
+ kout << "Drive Model: " << kCurrentDiskModel << kendl;
OutBus = (Bus == ATA_PRIMARY_IO) ? ATA_PRIMARY_IO : ATA_SECONDARY_IO;
OutMaster = (Bus == ATA_PRIMARY_IO) ? ATA_MASTER : ATA_SLAVE;
diff --git a/dev/Kernel/HALKit/AMD64/Storage/PIO.cc b/dev/Kernel/HALKit/AMD64/Storage/PIO.cc
index 8a8042cf..0951dc99 100644
--- a/dev/Kernel/HALKit/AMD64/Storage/PIO.cc
+++ b/dev/Kernel/HALKit/AMD64/Storage/PIO.cc
@@ -107,7 +107,7 @@ ATAInit_Retry:
kCurrentDiskModel[40] = '\0';
- kout << "Drive Model: " << kCurrentDiskModel << endl;
+ kout << "Drive Model: " << kCurrentDiskModel << kendl;
return true;
}
diff --git a/dev/Kernel/HALKit/ARM64/HalApplicationProcessor.cc b/dev/Kernel/HALKit/ARM64/HalApplicationProcessor.cc
index 12fb27ae..5ef13a3b 100644
--- a/dev/Kernel/HALKit/ARM64/HalApplicationProcessor.cc
+++ b/dev/Kernel/HALKit/ARM64/HalApplicationProcessor.cc
@@ -78,7 +78,7 @@ namespace NeOS
// Enable interrupt 32 for AP.
HAL::hal_mmio_write(GICD_BASE + GICD_ISENABLER + (32 / 32) * 4, 0x01 << (32 % 32));
- kout << "AP's GIC configured in ISR 32." << endl;
+ kout << "AP's GIC configured in ISR 32." << kendl;
}
BOOL mp_handle_gic_interrupt_el0(Void)
@@ -89,7 +89,7 @@ namespace NeOS
// Check if it's a valid interrupt (not spurious)
if ((interrupt_id & 0x3FF) < 1020)
{
- kout << "Handling interrupt for AP: " << (interrupt_id & 0x3FF) << endl;
+ kout << "Handling interrupt for AP: " << (interrupt_id & 0x3FF) << kendl;
// TODO: Handle code here.
diff --git a/dev/Kernel/HALKit/ARM64/HalKernelPanic.cc b/dev/Kernel/HALKit/ARM64/HalKernelPanic.cc
index cdf6e1b1..533ae982 100644
--- a/dev/Kernel/HALKit/ARM64/HalKernelPanic.cc
+++ b/dev/Kernel/HALKit/ARM64/HalKernelPanic.cc
@@ -71,8 +71,8 @@ namespace NeOS
{
if (!expr)
{
- kout << "FAILED: FILE: " << file << endl;
- kout << "FAILED: LINE: " << line << endl;
+ kout << "FAILED: FILE: " << file << kendl;
+ kout << "FAILED: LINE: " << line << kendl;
ke_panic(RUNTIME_CHECK_FAILED, file); // Runtime Check failed
}
diff --git a/dev/Kernel/HALKit/ARM64/Storage/MFlash+IO.cc b/dev/Kernel/HALKit/ARM64/Storage/MFlash+IO.cc
index e65b016c..1335a9e4 100644
--- a/dev/Kernel/HALKit/ARM64/Storage/MFlash+IO.cc
+++ b/dev/Kernel/HALKit/ARM64/Storage/MFlash+IO.cc
@@ -64,7 +64,7 @@ namespace NeOS
kFlashMetaPackets[slot]->InterruptEnable = YES;
- kout << "Enabled hardware slot at: " << number(slot) << endl;
+ kout << "Enabled hardware slot at: " << number(slot) << kendl;
return YES;
}
@@ -77,7 +77,7 @@ namespace NeOS
kFlashMetaPackets[slot]->InterruptEnable = NO;
- kout << "Disabled hardware slot at: " << number(slot) << endl;
+ kout << "Disabled hardware slot at: " << number(slot) << kendl;
return YES;
}
diff --git a/dev/Kernel/KernelKit/DebugOutput.h b/dev/Kernel/KernelKit/DebugOutput.h
index 1ac05665..1d8b84cd 100644
--- a/dev/Kernel/KernelKit/DebugOutput.h
+++ b/dev/Kernel/KernelKit/DebugOutput.h
@@ -210,4 +210,4 @@ namespace NeOS
#define kout NeOS::TerminalDevice::The() << "[NeKernel] *" << __FILE__ << "*: "
-#define endl NeOS::TerminalDevice::The() << NeOS::end_line()
+#define kendl NeOS::TerminalDevice::The() << NeOS::end_line()
diff --git a/dev/Kernel/src/ACPIFactoryInterface.cc b/dev/Kernel/src/ACPIFactoryInterface.cc
index 0faaa46e..56f450ef 100644
--- a/dev/Kernel/src/ACPIFactoryInterface.cc
+++ b/dev/Kernel/src/ACPIFactoryInterface.cc
@@ -43,10 +43,10 @@ namespace NeOS
this->fEntries = num;
- kout << "ACPI: Number of entries: " << number(this->fEntries) << endl;
- kout << "ACPI: Revision: " << number(xsdt->Revision) << endl;
- kout << "ACPI: Signature: " << xsdt->Signature << endl;
- kout << "ACPI: Address of XSDT: " << hex_number((UIntPtr)xsdt) << endl;
+ kout << "ACPI: Number of entries: " << number(this->fEntries) << kendl;
+ kout << "ACPI: Revision: " << number(xsdt->Revision) << kendl;
+ kout << "ACPI: Signature: " << xsdt->Signature << kendl;
+ kout << "ACPI: Address of XSDT: " << hex_number((UIntPtr)xsdt) << kendl;
const short cAcpiSignatureLength = 4;
@@ -54,8 +54,8 @@ namespace NeOS
{
SDT* sdt = reinterpret_cast<SDT*>(xsdt->AddressArr[index]);
- kout << "ACPI: Checksum: " << number(sdt->Checksum) << endl;
- kout << "ACPI: Revision: " << number(sdt->Revision) << endl;
+ kout << "ACPI: Checksum: " << number(sdt->Checksum) << kendl;
+ kout << "ACPI: Revision: " << number(sdt->Revision) << kendl;
for (short signature_index = 0; signature_index < cAcpiSignatureLength; ++signature_index)
{
@@ -64,8 +64,8 @@ namespace NeOS
if (signature_index == (cAcpiSignatureLength - 1))
{
- kout << "ACPI: SDT Signature: " << sdt->Signature << endl;
- kout << "ACPI: SDT OEM ID: " << sdt->OemId << endl;
+ kout << "ACPI: SDT Signature: " << sdt->Signature << kendl;
+ kout << "ACPI: SDT OEM ID: " << sdt->OemId << kendl;
return ErrorOr<voidPtr>(reinterpret_cast<voidPtr>(xsdt->AddressArr[index]));
}
}
diff --git a/dev/Kernel/src/BitMapMgr.cc b/dev/Kernel/src/BitMapMgr.cc
index 5a7f4561..18b1a156 100644
--- a/dev/Kernel/src/BitMapMgr.cc
+++ b/dev/Kernel/src/BitMapMgr.cc
@@ -141,18 +141,18 @@ namespace NeOS
{
if (!this->IsBitMap(ptr_bit_set))
{
- kout << "Not a BitMap: " << hex_number((UIntPtr)ptr_bit_set) << endl;
+ kout << "Not a BitMap: " << hex_number((UIntPtr)ptr_bit_set) << kendl;
return;
}
- kout << "Magic Number: " << hex_number(ptr_bit_set[kBitMapMagIdx]) << endl;
- kout << "Is Allocated: " << (ptr_bit_set[kBitMapUsedIdx] ? "Yes" : "No") << endl;
- kout << "Size of BitMap (B): " << number(ptr_bit_set[kBitMapSizeIdx]) << endl;
- kout << "Size of BitMap (KIB): " << number(KIB(ptr_bit_set[kBitMapSizeIdx])) << endl;
- kout << "Size of BitMap (MIB): " << number(MIB(ptr_bit_set[kBitMapSizeIdx])) << endl;
- kout << "Size of BitMap (GIB): " << number(GIB(ptr_bit_set[kBitMapSizeIdx])) << endl;
- kout << "Size of BitMap (TIB): " << number(TIB(ptr_bit_set[kBitMapSizeIdx])) << endl;
- kout << "Address Of BitMap Header: " << hex_number((UIntPtr)ptr_bit_set) << endl;
+ kout << "Magic Number: " << hex_number(ptr_bit_set[kBitMapMagIdx]) << kendl;
+ kout << "Is Allocated: " << (ptr_bit_set[kBitMapUsedIdx] ? "Yes" : "No") << kendl;
+ kout << "Size of BitMap (B): " << number(ptr_bit_set[kBitMapSizeIdx]) << kendl;
+ kout << "Size of BitMap (KIB): " << number(KIB(ptr_bit_set[kBitMapSizeIdx])) << kendl;
+ kout << "Size of BitMap (MIB): " << number(MIB(ptr_bit_set[kBitMapSizeIdx])) << kendl;
+ kout << "Size of BitMap (GIB): " << number(GIB(ptr_bit_set[kBitMapSizeIdx])) << kendl;
+ kout << "Size of BitMap (TIB): " << number(TIB(ptr_bit_set[kBitMapSizeIdx])) << kendl;
+ kout << "Address Of BitMap Header: " << hex_number((UIntPtr)ptr_bit_set) << kendl;
}
};
} // namespace Detail
diff --git a/dev/Kernel/src/DriveMgr.cc b/dev/Kernel/src/DriveMgr.cc
index 5c5f853a..77dee353 100644
--- a/dev/Kernel/src/DriveMgr.cc
+++ b/dev/Kernel/src/DriveMgr.cc
@@ -202,7 +202,7 @@ namespace NeOS
}
else
{
- kout << "Scheme Found: " << block_struct.Name << endl;
+ kout << "Scheme Found: " << block_struct.Name << kendl;
}
}
diff --git a/dev/Kernel/src/FS/NeFS.cc b/dev/Kernel/src/FS/NeFS.cc
index 6a1191cc..f5fdf63f 100644
--- a/dev/Kernel/src/FS/NeFS.cc
+++ b/dev/Kernel/src/FS/NeFS.cc
@@ -74,7 +74,7 @@ _Output BOOL NeFileSystemParser::CreateFork(_Input NEFS_FORK_STRUCT& the_fork)
Lba lba = catalog->DataFork;
- kout << "Fork LBA: " << hex_number(lba) << endl;
+ kout << "Fork LBA: " << hex_number(lba) << kendl;
if (lba < kNeFSCatalogStartAddress)
return NO;
@@ -95,7 +95,7 @@ _Output BOOL NeFileSystemParser::CreateFork(_Input NEFS_FORK_STRUCT& the_fork)
drv.fInput(drv.fPacket);
- kout << "Next fork: " << hex_number(cur_fork.NextSibling) << endl;
+ kout << "Next fork: " << hex_number(cur_fork.NextSibling) << kendl;
if (cur_fork.Flags & kNeFSFlagCreated)
{
@@ -148,9 +148,9 @@ _Output BOOL NeFileSystemParser::CreateFork(_Input NEFS_FORK_STRUCT& the_fork)
/// log what we have now.
kout << "Fork offset is at: " << hex_number(the_fork.DataOffset)
- << endl;
+ << kendl;
- kout << "Wrote fork metadata at: " << hex_number(lba) << endl;
+ kout << "Wrote fork metadata at: " << hex_number(lba) << kendl;
return YES;
}
@@ -428,9 +428,9 @@ _Output NEFS_CATALOG_STRUCT* NeFileSystemParser::CreateCatalog(_Input const Char
drive.fOutput(drive.fPacket);
kout << "Create new catalog with flags: "
- << hex_number(child_catalog->Flags) << endl;
+ << hex_number(child_catalog->Flags) << kendl;
kout << "Create new catalog with name: " << child_catalog->Name
- << endl;
+ << kendl;
delete catalog;
catalog = nullptr;
@@ -597,14 +597,14 @@ bool NeFileSystemParser::Format(_Input _Output DriveTrait* drive, _Input const L
drive->fOutput(drive->fPacket);
- kout << "drive kind: " << drive->fDriveKind() << endl;
+ kout << "drive kind: " << drive->fDriveKind() << kendl;
- kout << "partition name: " << part_block->PartitionName << endl;
- kout << "start: " << hex_number(part_block->StartCatalog) << endl;
- kout << "number of catalogs: " << hex_number(part_block->CatalogCount) << endl;
- kout << "free catalog: " << hex_number(part_block->FreeCatalog) << endl;
- kout << "free sectors: " << hex_number(part_block->FreeSectors) << endl;
- kout << "sector size: " << hex_number(part_block->SectorSize) << endl;
+ kout << "partition name: " << part_block->PartitionName << kendl;
+ kout << "start: " << hex_number(part_block->StartCatalog) << kendl;
+ kout << "number of catalogs: " << hex_number(part_block->CatalogCount) << kendl;
+ kout << "free catalog: " << hex_number(part_block->FreeCatalog) << kendl;
+ kout << "free sectors: " << hex_number(part_block->FreeSectors) << kendl;
+ kout << "sector size: " << hex_number(part_block->SectorSize) << kendl;
// write the root catalog.
this->CreateCatalog(kNeFSRoot, 0, kNeFSCatalogKindDir);
@@ -663,7 +663,7 @@ bool NeFileSystemParser::WriteCatalog(_Input const Char* catalog_name, Bool is_r
NEFS_FORK_STRUCT* fork_data_input = new NEFS_FORK_STRUCT();
NEFS_FORK_STRUCT prev_fork{};
- kout << hex_number(startFork) << endl;
+ kout << hex_number(startFork) << kendl;
// sanity check of the fork position as the condition to run the loop.
while (startFork >= kNeFSCatalogStartAddress)
@@ -674,13 +674,13 @@ bool NeFileSystemParser::WriteCatalog(_Input const Char* catalog_name, Bool is_r
drive.fInput(drive.fPacket);
- kout << hex_number(fork_data_input->DataSize) << endl;
- kout << hex_number(size_of_data) << endl;
- kout << hex_number(fork_data_input->Flags) << endl;
- kout << fork_name << endl;
- kout << fork_data_input->ForkName << endl;
- kout << fork_data_input->CatalogName << endl;
- kout << catalog_name << endl;
+ kout << hex_number(fork_data_input->DataSize) << kendl;
+ kout << hex_number(size_of_data) << kendl;
+ kout << hex_number(fork_data_input->Flags) << kendl;
+ kout << fork_name << kendl;
+ kout << fork_data_input->ForkName << kendl;
+ kout << fork_data_input->CatalogName << kendl;
+ kout << catalog_name << kendl;
if ((fork_data_input->Flags & kNeFSFlagCreated) &&
StringBuilder::Equals(fork_data_input->ForkName, fork_name) &&
@@ -695,11 +695,11 @@ bool NeFileSystemParser::WriteCatalog(_Input const Char* catalog_name, Bool is_r
drive.fPacket.fPacketSize = size_of_data;
drive.fPacket.fPacketLba = fork_data_input->DataOffset;
- kout << "data offset: " << hex_number(fork_data_input->DataOffset) << endl;
+ kout << "data offset: " << hex_number(fork_data_input->DataOffset) << kendl;
drive.fOutput(drive.fPacket);
- kout << "wrote data at offset: " << hex_number(fork_data_input->DataOffset) << endl;
+ kout << "wrote data at offset: " << hex_number(fork_data_input->DataOffset) << kendl;
delete fork_data_input;
delete[] buf;
@@ -839,8 +839,8 @@ kNeFSSearchThroughCatalogList:
goto NeFSContinueSearch;
}
- kout << "Found available catalog at: " << hex_number(start_catalog_lba) << endl;
- kout << "Found available catalog at: " << temporary_catalog.Name << endl;
+ kout << "Found available catalog at: " << hex_number(start_catalog_lba) << kendl;
+ kout << "Found available catalog at: " << temporary_catalog.Name << kendl;
NEFS_CATALOG_STRUCT* catalog_ptr = new NEFS_CATALOG_STRUCT();
rt_copy_memory(&temporary_catalog, catalog_ptr, sizeof(NEFS_CATALOG_STRUCT));
@@ -978,7 +978,7 @@ VoidPtr NeFileSystemParser::ReadCatalog(_Input _Output NEFS_CATALOG_STRUCT* cata
Size dataForkSize = (!is_rsrc_fork) ? catalog->DataForkSize : catalog->ResourceForkSize;
kout << "catalog " << catalog->Name
- << ", fork: " << hex_number(dataForkLba) << endl;
+ << ", fork: " << hex_number(dataForkLba) << kendl;
NEFS_FORK_STRUCT* fs_buf = new NEFS_FORK_STRUCT();
auto& drive = kMountpoint.A();
@@ -998,8 +998,8 @@ VoidPtr NeFileSystemParser::ReadCatalog(_Input _Output NEFS_CATALOG_STRUCT* cata
fs_fork_data = fs_buf;
- kout << "ForkName: " << fs_fork_data->ForkName << endl;
- kout << "CatalogName: " << fs_fork_data->CatalogName << endl;
+ kout << "ForkName: " << fs_fork_data->ForkName << kendl;
+ kout << "CatalogName: " << fs_fork_data->CatalogName << kendl;
if (StringBuilder::Equals(forkName, fs_fork_data->ForkName) &&
StringBuilder::Equals(catalog->Name, fs_fork_data->CatalogName))
diff --git a/dev/Kernel/src/IndexableProperty.cc b/dev/Kernel/src/IndexableProperty.cc
index 166570e5..404cddc3 100644
--- a/dev/Kernel/src/IndexableProperty.cc
+++ b/dev/Kernel/src/IndexableProperty.cc
@@ -50,7 +50,7 @@ namespace NeOS
indexer.AddFlag(kIndexerClaimed);
rt_copy_memory((VoidPtr)indexer.Leak().Path, (VoidPtr)filename, filenameLen);
- kout << "FSKit: Indexed new file: " << filename << endl;
+ kout << "FSKit: Indexed new file: " << filename << kendl;
}
}
} // namespace Indexer
diff --git a/dev/Kernel/src/MemoryMgr.cc b/dev/Kernel/src/MemoryMgr.cc
index 26fadb83..0035d65f 100644
--- a/dev/Kernel/src/MemoryMgr.cc
+++ b/dev/Kernel/src/MemoryMgr.cc
@@ -144,7 +144,7 @@ namespace NeOS
auto result = reinterpret_cast<VoidPtr>(heap_info_ptr->fOffset);
- kout << "Registered heap address: " << hex_number(reinterpret_cast<UIntPtr>(heap_info_ptr)) << endl;
+ kout << "Registered heap address: " << hex_number(reinterpret_cast<UIntPtr>(heap_info_ptr)) << kendl;
return result;
}
@@ -166,7 +166,7 @@ namespace NeOS
heap_info_ptr->fPage = true;
- kout << "Registered page address: " << hex_number(reinterpret_cast<UIntPtr>(heap_info_ptr)) << endl;
+ kout << "Registered page address: " << hex_number(reinterpret_cast<UIntPtr>(heap_info_ptr)) << kendl;
return kErrorSuccess;
}
@@ -238,7 +238,7 @@ namespace NeOS
PageMgr heap_mgr;
heap_mgr.Free(pte_address);
- kout << "Address has been successfully freed." << endl;
+ kout << "Address has been successfully freed." << kendl;
return kErrorSuccess;
}
diff --git a/dev/Kernel/src/UserProcessScheduler.cc b/dev/Kernel/src/UserProcessScheduler.cc
index b76e8799..a8315496 100644
--- a/dev/Kernel/src/UserProcessScheduler.cc
+++ b/dev/Kernel/src/UserProcessScheduler.cc
@@ -57,7 +57,7 @@ namespace NeOS
if (this->Status != ProcessStatusKind::kRunning)
return;
- kout << this->Name << ": crashed, error id: " << number(kErrorProcessFault) << endl;
+ kout << this->Name << ": crashed, error id: " << number(kErrorProcessFault) << kendl;
this->Exit(kErrorProcessFault);
}
@@ -338,7 +338,7 @@ namespace NeOS
MUST_PASS(process.DylibDelegate);
}
default: {
- kout << "Unknown process kind: " << hex_number(process.Kind) << endl;
+ kout << "Unknown process kind: " << hex_number(process.Kind) << kendl;
break;
}
}
@@ -365,8 +365,8 @@ namespace NeOS
process.Status = ProcessStatusKind::kStarting;
process.PTime = (UIntPtr)AffinityKind::kStandard;
- kout << "PID: " << number(process.ProcessId) << endl;
- kout << "Name: " << process.Name << endl;
+ kout << "PID: " << number(process.ProcessId) << kendl;
+ kout << "Name: " << process.Name << kendl;
return pid;
}
@@ -437,7 +437,7 @@ namespace NeOS
return 0UL;
}
- kout << "UserProcessScheduler::Run(): This team has a process capacity of: " << hex_number(mTeam.mProcessList.Capacity()) << endl;
+ kout << "UserProcessScheduler::Run(): This team has a process capacity of: " << hex_number(mTeam.mProcessList.Capacity()) << kendl;
for (; process_index < mTeam.AsArray().Capacity(); ++process_index)
{
diff --git a/public/tools/make_fs/make_fs.cc b/public/tools/make_fs/make_fs.cc
index e114113b..f75527b1 100644
--- a/public/tools/make_fs/make_fs.cc
+++ b/public/tools/make_fs/make_fs.cc
@@ -7,10 +7,41 @@
------------------------------------------- */
+#include <iostream>
+#include <fstream>
+#include <FirmwareKit/EPM.h>
#include <FSKit/NeFS.h>
+#include <uuid/uuid.h>
+static const char* kDiskName = "Disk";
+static const int kDiskSectorSz = 512;
+static const int kDiskBlockCnt = 1;
+
+/// @brief Filesystem tool entrypoint.
int main(int argc, char** argv)
{
+ std::cout << "make_fs: EPM image creator.\n";
+ struct EPM_PART_BLOCK block{0};
+
+ block.NumBlocks = kDiskBlockCnt;
+ block.SectorSz = kDiskSectorSz;
+ block.Version = kEPMRevisionBcd;
+ block.LbaStart = sizeof(struct EPM_PART_BLOCK);
+ block.LbaEnd = 0;
+ block.FsVersion = kNeFSVersionInteger;
+
+ ::memcpy(block.Name, kDiskName, strlen(kDiskName));
+ ::memcpy(block.Magic, kEPMMagic86, strlen(kEPMMagic86));
+
+ uuid_generate_random((NeOS::UInt8*)&block.Guid);
+
+ std::ofstream output_epm("disk.eimg");
+ output_epm.write((NeOS::Char*)&block, sizeof(struct EPM_PART_BLOCK));
+
+ output_epm.close();
+
+ std::cout << "make_fs: EPM image has been written to disk.eimg.\n";
+
return 0;
} \ No newline at end of file
diff --git a/public/tools/make_fs/make_fs.json b/public/tools/make_fs/make_fs.json
index 8134bab3..13c66dbb 100644
--- a/public/tools/make_fs/make_fs.json
+++ b/public/tools/make_fs/make_fs.json
@@ -1,12 +1,13 @@
{
"compiler_path": "g++",
"compiler_std": "c++20",
- "headers_path": ["./"],
+ "headers_path": ["./", "../../../dev/Kernel", "../../../dev/"],
"sources_path": ["make_fs.cc"],
"output_name": "./dist/make_fs",
"cpp_macros": [
"kMKFSVersion=0x0100",
"kMKFSVersionHighest=0x0100",
- "kMKFSVersionLowest=0x0100"
+ "kMKFSVersionLowest=0x0100",
+ "__NE_SDK__"
]
}