mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu.git
				synced 2025-05-12 00:45:25 +00:00 
			
		
		
		
	Merge pull request #1303 from lioncash/error
kernel/errors: Amend invalid thread priority and invalid processor ID error codes
This commit is contained in:
		
						commit
						79217f9870
					
				| @ -21,6 +21,7 @@ enum { | |||||||
|     HandleTableFull = 105, |     HandleTableFull = 105, | ||||||
|     InvalidMemoryState = 106, |     InvalidMemoryState = 106, | ||||||
|     InvalidMemoryPermissions = 108, |     InvalidMemoryPermissions = 108, | ||||||
|  |     InvalidThreadPriority = 112, | ||||||
|     InvalidProcessorId = 113, |     InvalidProcessorId = 113, | ||||||
|     InvalidHandle = 114, |     InvalidHandle = 114, | ||||||
|     InvalidCombination = 116, |     InvalidCombination = 116, | ||||||
| @ -36,7 +37,7 @@ enum { | |||||||
| // WARNING: The kernel is quite inconsistent in it's usage of errors code. Make sure to always
 | // WARNING: The kernel is quite inconsistent in it's usage of errors code. Make sure to always
 | ||||||
| // double check that the code matches before re-using the constant.
 | // double check that the code matches before re-using the constant.
 | ||||||
| 
 | 
 | ||||||
| // TODO(bunnei): Replace these with correct errors for Switch OS
 | // TODO(bunnei): Replace -1 with correct errors for Switch OS
 | ||||||
| constexpr ResultCode ERR_HANDLE_TABLE_FULL(ErrorModule::Kernel, ErrCodes::HandleTableFull); | constexpr ResultCode ERR_HANDLE_TABLE_FULL(ErrorModule::Kernel, ErrCodes::HandleTableFull); | ||||||
| constexpr ResultCode ERR_SESSION_CLOSED_BY_REMOTE(-1); | constexpr ResultCode ERR_SESSION_CLOSED_BY_REMOTE(-1); | ||||||
| constexpr ResultCode ERR_PORT_NAME_TOO_LONG(ErrorModule::Kernel, ErrCodes::TooLarge); | constexpr ResultCode ERR_PORT_NAME_TOO_LONG(ErrorModule::Kernel, ErrCodes::TooLarge); | ||||||
| @ -53,15 +54,16 @@ constexpr ResultCode ERR_INVALID_ADDRESS_STATE(ErrorModule::Kernel, ErrCodes::In | |||||||
| constexpr ResultCode ERR_INVALID_MEMORY_PERMISSIONS(ErrorModule::Kernel, | constexpr ResultCode ERR_INVALID_MEMORY_PERMISSIONS(ErrorModule::Kernel, | ||||||
|                                                     ErrCodes::InvalidMemoryPermissions); |                                                     ErrCodes::InvalidMemoryPermissions); | ||||||
| constexpr ResultCode ERR_INVALID_HANDLE(ErrorModule::Kernel, ErrCodes::InvalidHandle); | constexpr ResultCode ERR_INVALID_HANDLE(ErrorModule::Kernel, ErrCodes::InvalidHandle); | ||||||
|  | constexpr ResultCode ERR_INVALID_PROCESSOR_ID(ErrorModule::Kernel, ErrCodes::InvalidProcessorId); | ||||||
| constexpr ResultCode ERR_INVALID_STATE(ErrorModule::Kernel, ErrCodes::InvalidState); | constexpr ResultCode ERR_INVALID_STATE(ErrorModule::Kernel, ErrCodes::InvalidState); | ||||||
|  | constexpr ResultCode ERR_INVALID_THREAD_PRIORITY(ErrorModule::Kernel, | ||||||
|  |                                                  ErrCodes::InvalidThreadPriority); | ||||||
| constexpr ResultCode ERR_INVALID_POINTER(-1); | constexpr ResultCode ERR_INVALID_POINTER(-1); | ||||||
| constexpr ResultCode ERR_INVALID_OBJECT_ADDR(-1); | constexpr ResultCode ERR_INVALID_OBJECT_ADDR(-1); | ||||||
| constexpr ResultCode ERR_NOT_AUTHORIZED(-1); | constexpr ResultCode ERR_NOT_AUTHORIZED(-1); | ||||||
| /// Alternate code returned instead of ERR_INVALID_HANDLE in some code paths.
 | /// Alternate code returned instead of ERR_INVALID_HANDLE in some code paths.
 | ||||||
| constexpr ResultCode ERR_INVALID_HANDLE_OS(-1); | constexpr ResultCode ERR_INVALID_HANDLE_OS(-1); | ||||||
| constexpr ResultCode ERR_NOT_FOUND(-1); | constexpr ResultCode ERR_NOT_FOUND(-1); | ||||||
| constexpr ResultCode ERR_OUT_OF_RANGE(-1); |  | ||||||
| constexpr ResultCode ERR_OUT_OF_RANGE_KERNEL(-1); |  | ||||||
| constexpr ResultCode RESULT_TIMEOUT(ErrorModule::Kernel, ErrCodes::Timeout); | constexpr ResultCode RESULT_TIMEOUT(ErrorModule::Kernel, ErrCodes::Timeout); | ||||||
| /// Returned when Accept() is called on a port with no sessions to be accepted.
 | /// Returned when Accept() is called on a port with no sessions to be accepted.
 | ||||||
| constexpr ResultCode ERR_NO_PENDING_SESSIONS(-1); | constexpr ResultCode ERR_NO_PENDING_SESSIONS(-1); | ||||||
|  | |||||||
| @ -382,7 +382,7 @@ static ResultCode GetThreadPriority(u32* priority, Handle handle) { | |||||||
| /// Sets the priority for the specified thread
 | /// Sets the priority for the specified thread
 | ||||||
| static ResultCode SetThreadPriority(Handle handle, u32 priority) { | static ResultCode SetThreadPriority(Handle handle, u32 priority) { | ||||||
|     if (priority > THREADPRIO_LOWEST) { |     if (priority > THREADPRIO_LOWEST) { | ||||||
|         return ERR_OUT_OF_RANGE; |         return ERR_INVALID_THREAD_PRIORITY; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     auto& kernel = Core::System::GetInstance().Kernel(); |     auto& kernel = Core::System::GetInstance().Kernel(); | ||||||
| @ -527,7 +527,7 @@ static ResultCode CreateThread(Handle* out_handle, VAddr entry_point, u64 arg, V | |||||||
|     std::string name = fmt::format("unknown-{:X}", entry_point); |     std::string name = fmt::format("unknown-{:X}", entry_point); | ||||||
| 
 | 
 | ||||||
|     if (priority > THREADPRIO_LOWEST) { |     if (priority > THREADPRIO_LOWEST) { | ||||||
|         return ERR_OUT_OF_RANGE; |         return ERR_INVALID_THREAD_PRIORITY; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     SharedPtr<ResourceLimit>& resource_limit = Core::CurrentProcess()->resource_limit; |     SharedPtr<ResourceLimit>& resource_limit = Core::CurrentProcess()->resource_limit; | ||||||
| @ -548,8 +548,8 @@ static ResultCode CreateThread(Handle* out_handle, VAddr entry_point, u64 arg, V | |||||||
|     case THREADPROCESSORID_3: |     case THREADPROCESSORID_3: | ||||||
|         break; |         break; | ||||||
|     default: |     default: | ||||||
|         ASSERT_MSG(false, "Unsupported thread processor ID: {}", processor_id); |         LOG_ERROR(Kernel_SVC, "Invalid thread processor ID: {}", processor_id); | ||||||
|         break; |         return ERR_INVALID_PROCESSOR_ID; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     auto& kernel = Core::System::GetInstance().Kernel(); |     auto& kernel = Core::System::GetInstance().Kernel(); | ||||||
|  | |||||||
| @ -227,12 +227,12 @@ ResultVal<SharedPtr<Thread>> Thread::Create(KernelCore& kernel, std::string name | |||||||
|     // Check if priority is in ranged. Lowest priority -> highest priority id.
 |     // Check if priority is in ranged. Lowest priority -> highest priority id.
 | ||||||
|     if (priority > THREADPRIO_LOWEST) { |     if (priority > THREADPRIO_LOWEST) { | ||||||
|         LOG_ERROR(Kernel_SVC, "Invalid thread priority: {}", priority); |         LOG_ERROR(Kernel_SVC, "Invalid thread priority: {}", priority); | ||||||
|         return ERR_OUT_OF_RANGE; |         return ERR_INVALID_THREAD_PRIORITY; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     if (processor_id > THREADPROCESSORID_MAX) { |     if (processor_id > THREADPROCESSORID_MAX) { | ||||||
|         LOG_ERROR(Kernel_SVC, "Invalid processor id: {}", processor_id); |         LOG_ERROR(Kernel_SVC, "Invalid processor id: {}", processor_id); | ||||||
|         return ERR_OUT_OF_RANGE_KERNEL; |         return ERR_INVALID_PROCESSOR_ID; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     // TODO(yuriks): Other checks, returning 0xD9001BEA
 |     // TODO(yuriks): Other checks, returning 0xD9001BEA
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 bunnei
						bunnei