kernel/thread: Make thread_id a 64-bit value

The kernel uses a 64-bit value for the thread ID, so we shouldn't be
using a 32-bit value.
master
Lioncash 2018-12-18 22:37:01 +07:00
parent 43e1189688
commit 8435451093
4 changed files with 7 additions and 7 deletions

@ -201,11 +201,11 @@ void RegisterModule(std::string name, VAddr beg, VAddr end, bool add_elf_ext) {
modules.push_back(std::move(module)); modules.push_back(std::move(module));
} }
static Kernel::Thread* FindThreadById(int id) { static Kernel::Thread* FindThreadById(s64 id) {
for (u32 core = 0; core < Core::NUM_CPU_CORES; core++) { for (u32 core = 0; core < Core::NUM_CPU_CORES; core++) {
const auto& threads = Core::System::GetInstance().Scheduler(core).GetThreadList(); const auto& threads = Core::System::GetInstance().Scheduler(core).GetThreadList();
for (auto& thread : threads) { for (auto& thread : threads) {
if (thread->GetThreadID() == static_cast<u32>(id)) { if (thread->GetThreadID() == static_cast<u64>(id)) {
current_core = core; current_core = core;
return thread.get(); return thread.get();
} }

@ -156,7 +156,7 @@ struct KernelCore::Impl {
// TODO(Subv): Start the process ids from 10 for now, as lower PIDs are // TODO(Subv): Start the process ids from 10 for now, as lower PIDs are
// reserved for low-level services // reserved for low-level services
std::atomic<u64> next_process_id{10}; std::atomic<u64> next_process_id{10};
std::atomic<u32> 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.
std::vector<SharedPtr<Process>> process_list; std::vector<SharedPtr<Process>> process_list;
@ -242,7 +242,7 @@ u32 KernelCore::CreateNewObjectID() {
return impl->next_object_id++; return impl->next_object_id++;
} }
u32 KernelCore::CreateNewThreadID() { u64 KernelCore::CreateNewThreadID() {
return impl->next_thread_id++; return impl->next_thread_id++;
} }

@ -91,7 +91,7 @@ private:
u64 CreateNewProcessID(); u64 CreateNewProcessID();
/// Creates a new thread ID, incrementing the internal thread ID counter. /// Creates a new thread ID, incrementing the internal thread ID counter.
u32 CreateNewThreadID(); u64 CreateNewThreadID();
/// Creates a timer callback handle for the given timer. /// Creates a timer callback handle for the given timer.
ResultVal<Handle> CreateTimerCallbackHandle(const SharedPtr<Timer>& timer); ResultVal<Handle> CreateTimerCallbackHandle(const SharedPtr<Timer>& timer);

@ -151,7 +151,7 @@ public:
* Gets the thread's thread ID * Gets the thread's thread ID
* @return The thread's ID * @return The thread's ID
*/ */
u32 GetThreadID() const { u64 GetThreadID() const {
return thread_id; return thread_id;
} }
@ -379,7 +379,7 @@ private:
Core::ARM_Interface::ThreadContext context{}; Core::ARM_Interface::ThreadContext context{};
u32 thread_id = 0; u64 thread_id = 0;
ThreadStatus status = ThreadStatus::Dormant; ThreadStatus status = ThreadStatus::Dormant;