23 changed files with 178 additions and 132 deletions
-
1src/core/CMakeLists.txt
-
2src/core/hle/function_wrappers.h
-
7src/core/hle/ipc.h
-
7src/core/hle/kernel/address_arbiter.cpp
-
4src/core/hle/kernel/client_port.cpp
-
3src/core/hle/kernel/client_session.cpp
-
98src/core/hle/kernel/errors.h
-
1src/core/hle/kernel/kernel.cpp
-
7src/core/hle/kernel/kernel.h
-
1src/core/hle/kernel/process.cpp
-
7src/core/hle/kernel/semaphore.cpp
-
16src/core/hle/kernel/shared_memory.cpp
-
24src/core/hle/kernel/thread.cpp
-
2src/core/hle/kernel/thread.h
-
1src/core/hle/kernel/vm_manager.cpp
-
8src/core/hle/kernel/vm_manager.h
-
6src/core/hle/result.h
-
4src/core/hle/service/boss/boss.cpp
-
4src/core/hle/service/dsp_dsp.cpp
-
4src/core/hle/service/fs/fs_user.cpp
-
3src/core/hle/service/ir/ir_user.cpp
-
4src/core/hle/service/srv.cpp
-
96src/core/hle/svc.cpp
@ -0,0 +1,98 @@ |
|||
// Copyright 2017 Citra Emulator Project |
|||
// Licensed under GPLv2 or any later version |
|||
// Refer to the license.txt file included. |
|||
|
|||
#pragma once |
|||
|
|||
#include "core/hle/result.h" |
|||
|
|||
namespace Kernel { |
|||
|
|||
namespace ErrCodes { |
|||
enum { |
|||
OutOfHandles = 19, |
|||
SessionClosedByRemote = 26, |
|||
PortNameTooLong = 30, |
|||
WrongPermission = 46, |
|||
InvalidBufferDescriptor = 48, |
|||
MaxConnectionsReached = 52, |
|||
}; |
|||
} |
|||
|
|||
// 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. |
|||
|
|||
constexpr ResultCode ERR_OUT_OF_HANDLES(ErrCodes::OutOfHandles, ErrorModule::Kernel, |
|||
ErrorSummary::OutOfResource, |
|||
ErrorLevel::Permanent); // 0xD8600413 |
|||
constexpr ResultCode ERR_SESSION_CLOSED_BY_REMOTE(ErrCodes::SessionClosedByRemote, ErrorModule::OS, |
|||
ErrorSummary::Canceled, |
|||
ErrorLevel::Status); // 0xC920181A |
|||
constexpr ResultCode ERR_PORT_NAME_TOO_LONG(ErrCodes::PortNameTooLong, ErrorModule::OS, |
|||
ErrorSummary::InvalidArgument, |
|||
ErrorLevel::Usage); // 0xE0E0181E |
|||
constexpr ResultCode ERR_WRONG_PERMISSION(ErrCodes::WrongPermission, ErrorModule::OS, |
|||
ErrorSummary::WrongArgument, ErrorLevel::Permanent); |
|||
constexpr ResultCode ERR_INVALID_BUFFER_DESCRIPTOR(ErrCodes::InvalidBufferDescriptor, |
|||
ErrorModule::OS, ErrorSummary::WrongArgument, |
|||
ErrorLevel::Permanent); |
|||
constexpr ResultCode ERR_MAX_CONNECTIONS_REACHED(ErrCodes::MaxConnectionsReached, ErrorModule::OS, |
|||
ErrorSummary::WouldBlock, |
|||
ErrorLevel::Temporary); // 0xD0401834 |
|||
|
|||
constexpr ResultCode ERR_NOT_AUTHORIZED(ErrorDescription::NotAuthorized, ErrorModule::OS, |
|||
ErrorSummary::WrongArgument, |
|||
ErrorLevel::Permanent); // 0xD9001BEA |
|||
constexpr ResultCode ERR_INVALID_ENUM_VALUE(ErrorDescription::InvalidEnumValue, ErrorModule::Kernel, |
|||
ErrorSummary::InvalidArgument, |
|||
ErrorLevel::Permanent); // 0xD8E007ED |
|||
constexpr ResultCode ERR_INVALID_ENUM_VALUE_FND(ErrorDescription::InvalidEnumValue, |
|||
ErrorModule::FND, ErrorSummary::InvalidArgument, |
|||
ErrorLevel::Permanent); // 0xD8E093ED |
|||
constexpr ResultCode ERR_INVALID_COMBINATION(ErrorDescription::InvalidCombination, ErrorModule::OS, |
|||
ErrorSummary::InvalidArgument, |
|||
ErrorLevel::Usage); // 0xE0E01BEE |
|||
constexpr ResultCode ERR_INVALID_COMBINATION_KERNEL(ErrorDescription::InvalidCombination, |
|||
ErrorModule::Kernel, |
|||
ErrorSummary::WrongArgument, |
|||
ErrorLevel::Permanent); // 0xD90007EE |
|||
constexpr ResultCode ERR_MISALIGNED_ADDRESS(ErrorDescription::MisalignedAddress, ErrorModule::OS, |
|||
ErrorSummary::InvalidArgument, |
|||
ErrorLevel::Usage); // 0xE0E01BF1 |
|||
constexpr ResultCode ERR_MISALIGNED_SIZE(ErrorDescription::MisalignedSize, ErrorModule::OS, |
|||
ErrorSummary::InvalidArgument, |
|||
ErrorLevel::Usage); // 0xE0E01BF2 |
|||
constexpr ResultCode ERR_OUT_OF_MEMORY(ErrorDescription::OutOfMemory, ErrorModule::Kernel, |
|||
ErrorSummary::OutOfResource, |
|||
ErrorLevel::Permanent); // 0xD86007F3 |
|||
constexpr ResultCode ERR_NOT_IMPLEMENTED(ErrorDescription::NotImplemented, ErrorModule::OS, |
|||
ErrorSummary::InvalidArgument, |
|||
ErrorLevel::Usage); // 0xE0E01BF4 |
|||
constexpr ResultCode ERR_INVALID_ADDRESS(ErrorDescription::InvalidAddress, ErrorModule::OS, |
|||
ErrorSummary::InvalidArgument, |
|||
ErrorLevel::Usage); // 0xE0E01BF5 |
|||
constexpr ResultCode ERR_INVALID_ADDRESS_STATE(ErrorDescription::InvalidAddress, ErrorModule::OS, |
|||
ErrorSummary::InvalidState, |
|||
ErrorLevel::Usage); // 0xE0A01BF5 |
|||
constexpr ResultCode ERR_INVALID_POINTER(ErrorDescription::InvalidPointer, ErrorModule::Kernel, |
|||
ErrorSummary::InvalidArgument, |
|||
ErrorLevel::Permanent); // 0xD8E007F6 |
|||
constexpr ResultCode ERR_INVALID_HANDLE(ErrorDescription::InvalidHandle, ErrorModule::Kernel, |
|||
ErrorSummary::InvalidArgument, |
|||
ErrorLevel::Permanent); // 0xD8E007F7 |
|||
/// Alternate code returned instead of ERR_INVALID_HANDLE in some code paths. |
|||
constexpr ResultCode ERR_INVALID_HANDLE_OS(ErrorDescription::InvalidHandle, ErrorModule::OS, |
|||
ErrorSummary::WrongArgument, |
|||
ErrorLevel::Permanent); // 0xD9001BF7 |
|||
constexpr ResultCode ERR_NOT_FOUND(ErrorDescription::NotFound, ErrorModule::Kernel, |
|||
ErrorSummary::NotFound, ErrorLevel::Permanent); // 0xD88007FA |
|||
constexpr ResultCode ERR_OUT_OF_RANGE(ErrorDescription::OutOfRange, ErrorModule::OS, |
|||
ErrorSummary::InvalidArgument, |
|||
ErrorLevel::Usage); // 0xE0E01BFD |
|||
constexpr ResultCode ERR_OUT_OF_RANGE_KERNEL(ErrorDescription::OutOfRange, ErrorModule::Kernel, |
|||
ErrorSummary::InvalidArgument, |
|||
ErrorLevel::Permanent); // 0xD8E007FD |
|||
constexpr ResultCode RESULT_TIMEOUT(ErrorDescription::Timeout, ErrorModule::OS, |
|||
ErrorSummary::StatusChanged, ErrorLevel::Info); |
|||
|
|||
} // namespace Kernel |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue