summaryrefslogtreecommitdiffhomepage
path: root/dev/Kernel
diff options
context:
space:
mode:
Diffstat (limited to 'dev/Kernel')
-rw-r--r--dev/Kernel/FSKit/NeFS.h6
-rw-r--r--dev/Kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc10
-rw-r--r--dev/Kernel/HALKit/AMD64/HalDescriptorLoader.cc4
-rw-r--r--dev/Kernel/HALKit/AMD64/HalKernelMain.cc4
-rw-r--r--dev/Kernel/HALKit/AMD64/Storage/ATA-PIO.cc4
-rw-r--r--dev/Kernel/HALKit/ARM64/Storage/MFlash+IO.cc8
-rw-r--r--dev/Kernel/KernelKit/DebugOutput.h71
-rw-r--r--dev/Kernel/KernelKit/DeviceMgr.h2
-rw-r--r--dev/Kernel/KernelKit/UserProcessScheduler.h12
-rw-r--r--dev/Kernel/NetworkKit/IPC.h14
-rw-r--r--dev/Kernel/NewKit/KernelPanic.h2
-rw-r--r--dev/Kernel/src/DriveMgr.cc6
-rw-r--r--dev/Kernel/src/FS/NeFS.cc17
-rw-r--r--dev/Kernel/src/KernelMain.cc8
-rw-r--r--dev/Kernel/src/PEFCodeMgr.cc6
-rw-r--r--dev/Kernel/src/UserProcessScheduler.cc2
-rw-r--r--dev/Kernel/src/UserProcessTeam.cc2
17 files changed, 93 insertions, 85 deletions
diff --git a/dev/Kernel/FSKit/NeFS.h b/dev/Kernel/FSKit/NeFS.h
index 5431225c..cddd09f0 100644
--- a/dev/Kernel/FSKit/NeFS.h
+++ b/dev/Kernel/FSKit/NeFS.h
@@ -112,7 +112,7 @@ default.
#define kNeFSForkNameLen (200)
#define kNeFSFrameworkExt ".fwrk"
-#define kNeFSStepsExt ".step"
+#define kNeFSStepsExt ".step"
#define kNeFSApplicationExt ".app"
#define kNeFSJournalExt ".jrnl"
@@ -394,8 +394,8 @@ namespace Kernel
}
Bool CommitJournal(NeFileSystemParser* parser,
- KString xml_data,
- KString journal_name)
+ KString xml_data,
+ KString journal_name)
{
if (!parser ||
!mNode)
diff --git a/dev/Kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc b/dev/Kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc
index ca3f2353..f97669c8 100644
--- a/dev/Kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc
+++ b/dev/Kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc
@@ -9,7 +9,7 @@
#include <NewKit/KString.h>
#include <POSIXKit/signal.h>
-STATIC BOOL kIsScheduling = NO;
+STATIC BOOL kIsScheduling = NO;
/// @brief Handle GPF fault.
/// @param rsp
@@ -58,8 +58,6 @@ EXTERN_C void idt_handle_pf(Kernel::UIntPtr rsp)
process.Leak().Status = Kernel::ProcessStatusKind::kKilled;
process.Leak().Crash();
-
-
}
/// @brief Handle scheduler interrupt.
@@ -106,8 +104,6 @@ EXTERN_C void idt_handle_math(Kernel::UIntPtr rsp)
process.Leak().Status = Kernel::ProcessStatusKind::kKilled;
process.Leak().Crash();
-
-
}
/// @brief Handle any generic fault.
@@ -132,8 +128,6 @@ EXTERN_C void idt_handle_generic(Kernel::UIntPtr rsp)
process.Leak().Status = Kernel::ProcessStatusKind::kKilled;
process.Leak().Crash();
-
-
}
EXTERN_C Kernel::Void idt_handle_breakpoint(Kernel::UIntPtr rip)
@@ -180,8 +174,6 @@ EXTERN_C void idt_handle_ud(Kernel::UIntPtr rsp)
process.Leak().Status = Kernel::ProcessStatusKind::kKilled;
process.Leak().Crash();
-
-
}
/// @brief Enter syscall from assembly.
diff --git a/dev/Kernel/HALKit/AMD64/HalDescriptorLoader.cc b/dev/Kernel/HALKit/AMD64/HalDescriptorLoader.cc
index ed9bf15b..680aa6ed 100644
--- a/dev/Kernel/HALKit/AMD64/HalDescriptorLoader.cc
+++ b/dev/Kernel/HALKit/AMD64/HalDescriptorLoader.cc
@@ -28,8 +28,8 @@ namespace Kernel::HAL
UInt16 cCommDivisor = kPITFrequency / ticks; // 100 Hz.
- HAL::rt_out8(kPITControlPort, 0x36); // Command to PIT
- HAL::rt_out8(kPITChannel0Port, cCommDivisor & 0xFF); // Send low byte
+ HAL::rt_out8(kPITControlPort, 0x36); // Command to PIT
+ HAL::rt_out8(kPITChannel0Port, cCommDivisor & 0xFF); // Send low byte
HAL::rt_out8(kPITChannel0Port, (cCommDivisor >> 8) & 0xFF); // Send high byte
hal_clear_irq_mask(32);
diff --git a/dev/Kernel/HALKit/AMD64/HalKernelMain.cc b/dev/Kernel/HALKit/AMD64/HalKernelMain.cc
index 56f8e1e5..b6ac0f3b 100644
--- a/dev/Kernel/HALKit/AMD64/HalKernelMain.cc
+++ b/dev/Kernel/HALKit/AMD64/HalKernelMain.cc
@@ -26,7 +26,7 @@ STATIC Kernel::Void hal_init_cxx_ctors()
{
for (Kernel::SizeT i = 0U; i < Kernel::UserProcessScheduler::The().CurrentTeam().AsArray().Count(); ++i)
{
- Kernel::UserProcessScheduler::The().CurrentTeam().AsArray()[i] = Kernel::UserThread();
+ Kernel::UserProcessScheduler::The().CurrentTeam().AsArray()[i] = Kernel::UserThread();
Kernel::UserProcessScheduler::The().CurrentTeam().AsArray()[i].Status = Kernel::ProcessStatusKind::kKilled;
}
@@ -69,7 +69,7 @@ EXTERN_C void hal_init_platform(
/* GDT, mostly descriptors for user and kernel segments. */
STATIC Kernel::HAL::Detail::ZKA_GDT_ENTRY ALIGN(0x08) kGDTArray[kGDTEntriesCount] = {
- {.fLimitLow = 0, .fBaseLow = 0, .fBaseMid = 0, .fAccessByte = 0x00, .fFlags = 0x00, .fBaseHigh = 0}, // Null entry
+ {.fLimitLow = 0, .fBaseLow = 0, .fBaseMid = 0, .fAccessByte = 0x00, .fFlags = 0x00, .fBaseHigh = 0}, // Null entry
{.fLimitLow = 0x0, .fBaseLow = 0, .fBaseMid = 0, .fAccessByte = 0x9A, .fFlags = 0xAF, .fBaseHigh = 0}, // Kernel code
{.fLimitLow = 0x0, .fBaseLow = 0, .fBaseMid = 0, .fAccessByte = 0x92, .fFlags = 0xCF, .fBaseHigh = 0}, // Kernel data
{.fLimitLow = 0x0, .fBaseLow = 0, .fBaseMid = 0, .fAccessByte = 0xFA, .fFlags = 0xAF, .fBaseHigh = 0}, // User code
diff --git a/dev/Kernel/HALKit/AMD64/Storage/ATA-PIO.cc b/dev/Kernel/HALKit/AMD64/Storage/ATA-PIO.cc
index ea8840eb..9fc261ef 100644
--- a/dev/Kernel/HALKit/AMD64/Storage/ATA-PIO.cc
+++ b/dev/Kernel/HALKit/AMD64/Storage/ATA-PIO.cc
@@ -121,7 +121,7 @@ Void drv_std_read(UInt64 Lba, UInt16 IO, UInt8 Master, Char* Buf, SizeT SectorSz
rt_out8(IO + ATA_REG_SEC_COUNT0, ((Size + SectorSz) / SectorSz));
- rt_out8(IO + ATA_REG_LBA0, (Lba) & 0xFF);
+ rt_out8(IO + ATA_REG_LBA0, (Lba)&0xFF);
rt_out8(IO + ATA_REG_LBA1, (Lba) >> 8);
rt_out8(IO + ATA_REG_LBA2, (Lba) >> 16);
rt_out8(IO + ATA_REG_LBA3, (Lba) >> 24);
@@ -153,7 +153,7 @@ Void drv_std_write(UInt64 Lba, UInt16 IO, UInt8 Master, Char* Buf, SizeT SectorS
rt_out8(IO + ATA_REG_SEC_COUNT0, ((Size + (SectorSz)) / SectorSz));
- rt_out8(IO + ATA_REG_LBA0, (Lba) & 0xFF);
+ rt_out8(IO + ATA_REG_LBA0, (Lba)&0xFF);
rt_out8(IO + ATA_REG_LBA1, (Lba) >> 8);
rt_out8(IO + ATA_REG_LBA2, (Lba) >> 16);
rt_out8(IO + ATA_REG_LBA3, (Lba) >> 24);
diff --git a/dev/Kernel/HALKit/ARM64/Storage/MFlash+IO.cc b/dev/Kernel/HALKit/ARM64/Storage/MFlash+IO.cc
index 2d556b96..fc16a7e3 100644
--- a/dev/Kernel/HALKit/ARM64/Storage/MFlash+IO.cc
+++ b/dev/Kernel/HALKit/ARM64/Storage/MFlash+IO.cc
@@ -22,9 +22,9 @@ namespace Kernel
constexpr auto kFlashBridgeMagic = "FLSH";
constexpr auto kFlashBridgeRevision = 1;
- STATIC BOOL kFlashEnabled = NO;
- STATIC SizeT kFlashSize[kMaxFlashSlots] = {};
- STATIC SizeT kFlashSectorSz[kMaxFlashSlots] = {};
+ STATIC BOOL kFlashEnabled = NO;
+ STATIC SizeT kFlashSize[kMaxFlashSlots] = {};
+ STATIC SizeT kFlashSectorSz[kMaxFlashSlots] = {};
STATIC IMBCIHost* kFlashMetaPackets[kMaxFlashSlots] = {};
STATIC IMBCIHost* kFlashDataPackets[kMaxFlashSlots] = {};
@@ -76,7 +76,7 @@ namespace Kernel
kFlashMetaPackets[slot]->InterruptEnable = NO;
kcout << "Disabled hardware slot at: " << number(slot) << endl;
-
+
return YES;
}
} // namespace Kernel
diff --git a/dev/Kernel/KernelKit/DebugOutput.h b/dev/Kernel/KernelKit/DebugOutput.h
index a3fc5a9d..490ffdec 100644
--- a/dev/Kernel/KernelKit/DebugOutput.h
+++ b/dev/Kernel/KernelKit/DebugOutput.h
@@ -38,8 +38,8 @@ namespace Kernel
class TerminalDevice final ZKA_DEVICE<const Char*>
{
public:
- TerminalDevice(void (*print)(const Char*), void (*get)(const Char*))
- : IDeviceObject<const Char*>(print, get)
+ TerminalDevice(void (*print)(const Char*), void (*gets)(const Char*))
+ : IDeviceObject<const Char*>(print, gets)
{
}
@@ -47,7 +47,7 @@ namespace Kernel
/// @brief returns device name (terminal name)
/// @return string type (const Char*)
- virtual const Char* Name() const override
+ const Char* Name() const override
{
return ("TerminalDevice");
}
@@ -59,35 +59,35 @@ namespace Kernel
inline TerminalDevice end_line()
{
- TerminalDevice selfTerm = TerminalDevice::The();
+ TerminalDevice self = TerminalDevice::The();
- selfTerm.operator<<("\r");
- return selfTerm;
+ self.operator<<("\r");
+ return self;
}
inline TerminalDevice carriage_return()
{
- TerminalDevice selfTerm = TerminalDevice::The();
+ TerminalDevice self = TerminalDevice::The();
- selfTerm.operator<<("\r");
- return selfTerm;
+ self.operator<<("\r");
+ return self;
}
inline TerminalDevice tabulate()
{
- TerminalDevice selfTerm = TerminalDevice::The();
+ TerminalDevice self = TerminalDevice::The();
- selfTerm.operator<<("\t");
- return selfTerm;
+ self.operator<<("\t");
+ return self;
}
/// @brief emulate a terminal bell, like the VT100 does.
inline TerminalDevice bell()
{
- TerminalDevice selfTerm = TerminalDevice::The();
+ TerminalDevice self = TerminalDevice::The();
- selfTerm.operator<<("\a");
- return selfTerm;
+ self.operator<<("\a");
+ return self;
}
namespace Detail
@@ -151,30 +151,39 @@ namespace Kernel
inline TerminalDevice hex_number(const Long& x)
{
- TerminalDevice selfTerm = TerminalDevice::The();
+ TerminalDevice self = TerminalDevice::The();
- Detail::_write_number_hex(x, selfTerm);
- selfTerm.operator<<("h");
+ Detail::_write_number_hex(x, self);
+ self.operator<<("h");
- return selfTerm;
+ return self;
+ }
+
+ inline TerminalDevice number(const Char* x)
+ {
+ TerminalDevice self = TerminalDevice::The();
+
+ self << "?";
+
+ return self;
}
inline TerminalDevice number(const Long& x)
{
- TerminalDevice selfTerm = TerminalDevice::The();
+ TerminalDevice self = TerminalDevice::The();
- Detail::_write_number(x, selfTerm);
+ Detail::_write_number(x, self);
- return selfTerm;
+ return self;
}
inline TerminalDevice get_console_in(Char* buf)
{
- TerminalDevice selfTerm = TerminalDevice::The();
+ TerminalDevice self = TerminalDevice::The();
- selfTerm >> buf;
+ self >> buf;
- return selfTerm;
+ return self;
}
typedef Char rt_debug_type[255];
@@ -185,14 +194,18 @@ namespace Kernel
Int16 fPort[kDebugMaxPorts];
Int16 fBoundCnt;
};
+
+ inline TerminalDevice& operator<<(TerminalDevice& src, auto number)
+ {
+ number(number, src);
+ return src;
+ }
} // namespace Kernel
#ifdef kcout
#undef kcout
#endif // ifdef kcout
-#define kcout \
- (Kernel::TerminalDevice::The() << "\e[0;31m [Kernel] (Path: /" << __FILE__ << ") (Line: " << Kernel::number(__LINE__)); \
- (Kernel::TerminalDevice::The() << ") \e[0m" \
- << ": ")
+#define kcout Kernel::TerminalDevice::The() << "\e[0;31m [ZKA] " << __FILE__ << " \e[0m: "
+
#define endl Kernel::TerminalDevice::The() << Kernel::end_line()
diff --git a/dev/Kernel/KernelKit/DeviceMgr.h b/dev/Kernel/KernelKit/DeviceMgr.h
index 1c9233b7..81684f02 100644
--- a/dev/Kernel/KernelKit/DeviceMgr.h
+++ b/dev/Kernel/KernelKit/DeviceMgr.h
@@ -79,7 +79,7 @@ namespace Kernel
return !fOut || !fIn;
}
- private:
+ protected:
Void (*fOut)(T Data) = {nullptr};
Void (*fIn)(T Data) = {nullptr};
};
diff --git a/dev/Kernel/KernelKit/UserProcessScheduler.h b/dev/Kernel/KernelKit/UserProcessScheduler.h
index 452a55a3..a08a5dc1 100644
--- a/dev/Kernel/KernelKit/UserProcessScheduler.h
+++ b/dev/Kernel/KernelKit/UserProcessScheduler.h
@@ -262,14 +262,14 @@ namespace Kernel
ZKA_COPY_DEFAULT(UserProcessTeam);
Array<UserThread, kSchedProcessLimitPerTeam>& AsArray();
- Ref<UserThread>& AsRef();
- ProcessID& Id() noexcept;
+ Ref<UserThread>& AsRef();
+ ProcessID& Id() noexcept;
public:
Array<UserThread, kSchedProcessLimitPerTeam> mProcessList;
- Ref<UserThread> mCurrentProcess;
- ProcessID mTeamId{0};
- ProcessID mProcessCount{0};
+ Ref<UserThread> mCurrentProcess;
+ ProcessID mTeamId{0};
+ ProcessID mProcessCount{0};
};
using UserProcessRef = UserThread&;
@@ -302,7 +302,7 @@ namespace Kernel
public:
Ref<UserThread>& GetCurrentProcess();
- const SizeT Run() noexcept;
+ const SizeT Run() noexcept;
public:
STATIC UserProcessScheduler& The();
diff --git a/dev/Kernel/NetworkKit/IPC.h b/dev/Kernel/NetworkKit/IPC.h
index 63aa2c13..ae5d1d0c 100644
--- a/dev/Kernel/NetworkKit/IPC.h
+++ b/dev/Kernel/NetworkKit/IPC.h
@@ -65,15 +65,15 @@ namespace Kernel
/// @brief IPC connection header, message cannot be greater than 6K.
typedef struct IPC_MSG final
{
- UInt32 IpcHeaderMagic; // cRemoteHeaderMagic
- UInt8 IpcEndianess; // 0 : LE, 1 : BE
- SizeT IpcPacketSize;
+ UInt32 IpcHeaderMagic; // cRemoteHeaderMagic
+ UInt8 IpcEndianess; // 0 : LE, 1 : BE
+ SizeT IpcPacketSize;
IPC_ADDR IpcFrom;
IPC_ADDR IpcTo;
- UInt32 IpcCRC32;
- UInt32 IpcMsg;
- UInt32 IpcMsgSz;
- UInt8 IpcData[kIPCMsgSize];
+ UInt32 IpcCRC32;
+ UInt32 IpcMsg;
+ UInt32 IpcMsgSz;
+ UInt8 IpcData[kIPCMsgSize];
/// @brief Passes the message to target, could be anything, HTTP packet, JSON or whatever.
Bool Pass(IPC_MSG* target) noexcept
diff --git a/dev/Kernel/NewKit/KernelPanic.h b/dev/Kernel/NewKit/KernelPanic.h
index bd119357..e3c8eaae 100644
--- a/dev/Kernel/NewKit/KernelPanic.h
+++ b/dev/Kernel/NewKit/KernelPanic.h
@@ -29,7 +29,7 @@ namespace Kernel
enum RUNTIME_CHECK
{
- RUNTIME_CHECK_FAILED = 1111,
+ RUNTIME_CHECK_FAILED = 1111,
RUNTIME_CHECK_POINTER,
RUNTIME_CHECK_EXPRESSION,
RUNTIME_CHECK_FILE,
diff --git a/dev/Kernel/src/DriveMgr.cc b/dev/Kernel/src/DriveMgr.cc
index 95e5b988..8e8d5ab2 100644
--- a/dev/Kernel/src/DriveMgr.cc
+++ b/dev/Kernel/src/DriveMgr.cc
@@ -204,7 +204,11 @@ namespace Kernel
{
DriveTrait trait{};
- rt_copy_memory((VoidPtr) "/Disks/OS:", trait.fName, rt_string_len("/Disks/OS:"));
+ const auto kMainDrive = "/Mount/OS:";
+
+ rt_copy_memory((VoidPtr)kMainDrive, trait.fName, rt_string_len(kMainDrive));
+
+ MUST_PASS(trait.fName[0] != 0);
trait.fVerify = io_drv_unimplemented;
trait.fOutput = io_drv_output;
diff --git a/dev/Kernel/src/FS/NeFS.cc b/dev/Kernel/src/FS/NeFS.cc
index 3dcf13da..b0a7c6c6 100644
--- a/dev/Kernel/src/FS/NeFS.cc
+++ b/dev/Kernel/src/FS/NeFS.cc
@@ -309,7 +309,7 @@ _Output NFS_CATALOG_STRUCT* NeFileSystemParser::CreateCatalog(_Input const Char*
return nullptr;
}
-
+
constexpr SizeT kDefaultForkSize = kNeFSForkSize;
NFS_CATALOG_STRUCT* child_catalog = new NFS_CATALOG_STRUCT();
@@ -460,6 +460,7 @@ _Output NFS_CATALOG_STRUCT* NeFileSystemParser::CreateCatalog(_Input const Char*
/// @return If it was sucessful, see err_global_get().
bool NeFileSystemParser::Format(_Input _Output DriveTrait* drive, _Input const Lba endLba, _Input const Int32 flags, const Char* part_name)
{
+#ifdef ZKA_EPM_SUPPORT
if (*part_name == 0 ||
endLba == 0)
return false;
@@ -490,14 +491,14 @@ bool NeFileSystemParser::Format(_Input _Output DriveTrait* drive, _Input const L
if (flags & kNeFSPartitionTypeBoot)
{
// make it bootable when needed.
- Char bufEpmHdr[kNeFSSectorSz] = {0};
+ Char buf_epm[kNeFSSectorSz] = {0};
- BOOT_BLOCK_STRUCT* epm_boot = (BOOT_BLOCK_STRUCT*)bufEpmHdr;
+ BOOT_BLOCK_STRUCT* epm_boot = (BOOT_BLOCK_STRUCT*)buf_epm;
// Write a new EPM entry.
constexpr auto kFsName = "NeFS";
- constexpr auto kBlockName = "ZKA:";
+ constexpr auto kBlockName = "ZkaOS:";
rt_copy_memory(reinterpret_cast<VoidPtr>(const_cast<Char*>(kFsName)), epm_boot->Fs, rt_string_len(kFsName));
@@ -533,7 +534,7 @@ bool NeFileSystemParser::Format(_Input _Output DriveTrait* drive, _Input const L
epm_boot->LbaEnd = endLba;
epm_boot->NumBlocks = cnt;
- drive->fPacket.fPacketContent = bufEpmHdr;
+ drive->fPacket.fPacketContent = buf_epm;
drive->fPacket.fPacketSize = sizeof(EPM_BOOT_BLOCK);
drive->fPacket.fPacketLba = outEpmLba;
@@ -616,6 +617,7 @@ bool NeFileSystemParser::Format(_Input _Output DriveTrait* drive, _Input const L
drive->fInput(&drive->fPacket);
}
+#endif // ZKA_EPM_SUPPORT
return false;
}
@@ -817,7 +819,6 @@ kNeFSSearchThroughCatalogList:
return nullptr;
}
-
/// ignore unallocated catalog, break
if (!(temporary_catalog.Flags & kNeFSFlagCreated))
{
@@ -846,8 +847,8 @@ kNeFSSearchThroughCatalogList:
if (local_search_first)
{
- local_search_first = false;
- start_catalog_lba = kStartCatalogList;
+ local_search_first = false;
+ start_catalog_lba = kStartCatalogList;
goto kNeFSSearchThroughCatalogList;
}
diff --git a/dev/Kernel/src/KernelMain.cc b/dev/Kernel/src/KernelMain.cc
index 58592a10..303b1d81 100644
--- a/dev/Kernel/src/KernelMain.cc
+++ b/dev/Kernel/src/KernelMain.cc
@@ -40,10 +40,10 @@ namespace Kernel::Detail
if (mNeFS)
{
- const SizeT kFolderCount = 8;
- const Char* kFolderStr[kFolderCount] = {
- "/", "/Boot/", "/System/", "/Support/", "/Applications/",
- "/Users/", "/Library/", "/Mount/"};
+ const SizeT kFolderCount = 8;
+ const Char* kFolderStr[kFolderCount] = {
+ "/", "/Boot/", "/System/", "/Support/", "/Applications/",
+ "/Users/", "/Library/", "/Mount/"};
for (Kernel::SizeT dir_index = 0UL; dir_index < kFolderCount; ++dir_index)
{
diff --git a/dev/Kernel/src/PEFCodeMgr.cc b/dev/Kernel/src/PEFCodeMgr.cc
index 17f7f895..497e1f28 100644
--- a/dev/Kernel/src/PEFCodeMgr.cc
+++ b/dev/Kernel/src/PEFCodeMgr.cc
@@ -253,14 +253,12 @@ namespace Kernel
if (errOrStart.Error() != kErrorSuccess)
return kProcessInvalidID;
- UserThread process;
-
auto id = UserProcessScheduler::The().Spawn(reinterpret_cast<const Char*>(exec.FindSymbol(kPefNameSymbol, kPefData)), errOrStart.Leak().Leak(), exec.GetBlob().Leak().Leak());
if (id != kProcessInvalidID)
{
- UserProcessScheduler::The().CurrentTeam().AsArray()[id].Kind = process_kind;
- UserProcessScheduler::The().CurrentTeam().AsArray()[id].StackSize = *(UIntPtr*)exec.FindSymbol(kPefStackSizeSymbol, kPefData);
+ UserProcessScheduler::The().CurrentTeam().AsArray()[id].Kind = process_kind;
+ UserProcessScheduler::The().CurrentTeam().AsArray()[id].StackSize = *(UIntPtr*)exec.FindSymbol(kPefStackSizeSymbol, kPefData);
UserProcessScheduler::The().CurrentTeam().AsArray()[id].MemoryLimit = *(UIntPtr*)exec.FindSymbol(kPefHeapSizeSymbol, kPefData);
}
diff --git a/dev/Kernel/src/UserProcessScheduler.cc b/dev/Kernel/src/UserProcessScheduler.cc
index 85915e10..936d0547 100644
--- a/dev/Kernel/src/UserProcessScheduler.cc
+++ b/dev/Kernel/src/UserProcessScheduler.cc
@@ -547,7 +547,7 @@ namespace Kernel
auto prev_ptime = HardwareThreadScheduler::The()[index].Leak()->fPTime;
HardwareThreadScheduler::The()[index].Leak()->fPTime = UserProcessScheduler::The().CurrentTeam().AsArray()[new_pid].PTime;
- Bool ret = HardwareThreadScheduler::The()[index].Leak()->Switch(image_ptr, stack, frame_ptr, new_pid);
+ Bool ret = HardwareThreadScheduler::The()[index].Leak()->Switch(image_ptr, stack, frame_ptr, new_pid);
////////////////////////////////////////////////////////////
/// Rollback on fail. ///
diff --git a/dev/Kernel/src/UserProcessTeam.cc b/dev/Kernel/src/UserProcessTeam.cc
index a41160cc..aea75121 100644
--- a/dev/Kernel/src/UserProcessTeam.cc
+++ b/dev/Kernel/src/UserProcessTeam.cc
@@ -17,7 +17,7 @@ namespace Kernel
{
for (SizeT i = 0U; i < this->mProcessList.Count(); ++i)
{
- this->mProcessList[i] = UserThread();
+ this->mProcessList[i] = UserThread();
this->mProcessList[i].Status = ProcessStatusKind::kKilled;
}