Skip to content
Snippets Groups Projects
Commit 62d43770 authored by Lioncash's avatar Lioncash
Browse files

kernel/kernel: Use correct initial PID for userland Process instances

Starts the process ID counter off at 81, which is what the kernel itself
checks against internally when creating processes. It's actually
supposed to panic if the PID is less than 81 for a userland process.
parent 0906302c
No related branches found
No related tags found
No related merge requests found
...@@ -112,7 +112,7 @@ struct KernelCore::Impl { ...@@ -112,7 +112,7 @@ struct KernelCore::Impl {
void Shutdown() { void Shutdown() {
next_object_id = 0; next_object_id = 0;
next_process_id = 10; next_process_id = Process::ProcessIDMin;
next_thread_id = 1; next_thread_id = 1;
process_list.clear(); process_list.clear();
...@@ -153,9 +153,7 @@ struct KernelCore::Impl { ...@@ -153,9 +153,7 @@ struct KernelCore::Impl {
} }
std::atomic<u32> next_object_id{0}; std::atomic<u32> next_object_id{0};
// TODO(Subv): Start the process ids from 10 for now, as lower PIDs are std::atomic<u64> next_process_id{Process::ProcessIDMin};
// reserved for low-level services
std::atomic<u64> next_process_id{10};
std::atomic<u64> next_thread_id{1}; std::atomic<u64> next_thread_id{1};
// Lists all processes that exist in the current session. // Lists all processes that exist in the current session.
......
...@@ -120,6 +120,18 @@ struct CodeSet final { ...@@ -120,6 +120,18 @@ struct CodeSet final {
class Process final : public WaitObject { class Process final : public WaitObject {
public: public:
enum : u64 {
/// Lowest allowed process ID for a kernel initial process.
InitialKIPIDMin = 1,
/// Highest allowed process ID for a kernel initial process.
InitialKIPIDMax = 80,
/// Lowest allowed process ID for a userland process.
ProcessIDMin = 81,
/// Highest allowed process ID for a userland process.
ProcessIDMax = 0xFFFFFFFFFFFFFFFF,
};
static constexpr std::size_t RANDOM_ENTROPY_SIZE = 4; static constexpr std::size_t RANDOM_ENTROPY_SIZE = 4;
static SharedPtr<Process> Create(KernelCore& kernel, std::string&& name); static SharedPtr<Process> Create(KernelCore& kernel, std::string&& name);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment