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.
This commit is contained in:
		
							parent
							
								
									43e1189688
								
							
						
					
					
						commit
						8435451093
					
				@ -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;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user