/*---------------------------------------------------------------------------* Project: Horizon File: uds_Result.h Copyright (C)2009 Nintendo Co., Ltd. All rights reserved. These coded instructions, statements, and computer programs contain proprietary information of Nintendo of America Inc. and/or Nintendo Company Ltd., and are protected by Federal copyright law. They may not be disclosed to third parties or copied or duplicated in any form, in whole or in part, without the prior written consent of Nintendo. $Rev: 37513 $ *--------------------------------------------------------------------------- */ #ifndef NN_UDS_CTR_UDS_RESULT_H_ #define NN_UDS_CTR_UDS_RESULT_H_ #include /* Please see man pages for details */ namespace nn { namespace uds { namespace CTR { //New definitions /* */ enum Description { DESCRIPTION_NETWORK_IS_FULL = 1, // DESCRIPTION_WIFI_OFF = 2, // DESCRIPTION_INVALID_PARAMS = 3, // DESCRIPTION_MISCELLANOUS_SYSTEM_ERROR= 4, // DESCRIPTION_MALFORMED_DATA = 5, // DESCRIPTION_INVALID_SDK_VERSION = 6, // Non-public error: The SDK version of UDS is invalid. DESCRIPTION_MAX }; /* Please see man pages for details */ /* Please see man pages for details */ NN_DEFINE_RESULT_CONST( ResultNotFoundNetwork, Result::LEVEL_STATUS, Result::SUMMARY_NOT_FOUND, Result::MODULE_NN_UDS, Result::DESCRIPTION_NOT_FOUND ); /* Please see man pages for details */ NN_DEFINE_RESULT_CONST( ResultAlreadyNetworkIsFull, Result::LEVEL_STATUS, Result::SUMMARY_OUT_OF_RESOURCE, Result::MODULE_NN_UDS, DESCRIPTION_NETWORK_IS_FULL ); /* Please see man pages for details */ NN_DEFINE_RESULT_CONST( ResultDeniedFromMaster, Result::LEVEL_STATUS, Result::SUMMARY_CANCELLED, Result::MODULE_NN_UDS, Result::DESCRIPTION_CANCEL_REQUESTED ); /* Please see man pages for details */ NN_DEFINE_RESULT_CONST( ResultConnectionTimeout, Result::LEVEL_STATUS, Result::SUMMARY_CANCELLED, Result::MODULE_NN_UDS, Result::DESCRIPTION_TIMEOUT ); /* Please see man pages for details */ NN_DEFINE_RESULT_CONST( ResultInvalidState, Result::LEVEL_STATUS, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_UDS, Result::DESCRIPTION_NOT_AUTHORIZED ); /* Please see man pages for details */ NN_DEFINE_RESULT_CONST( ResultInvalidNode, Result::LEVEL_STATUS, Result::SUMMARY_WRONG_ARGUMENT, Result::MODULE_NN_UDS, Result::DESCRIPTION_NOT_FOUND ); /* Please see man pages for details */ NN_DEFINE_RESULT_CONST( ResultOutOfResource, Result::LEVEL_STATUS, Result::SUMMARY_OUT_OF_RESOURCE, Result::MODULE_NN_UDS, Result::DESCRIPTION_OUT_OF_MEMORY ); /* Please see man pages for details */ NN_DEFINE_RESULT_CONST( ResultBufferIsFull, Result::LEVEL_STATUS, Result::SUMMARY_OUT_OF_RESOURCE, Result::MODULE_NN_UDS, Result::DESCRIPTION_BUSY ); /* Please see man pages for details */ NN_DEFINE_RESULT_CONST( ResultWirelessOff, Result::LEVEL_STATUS, Result::SUMMARY_STATUS_CHANGED, Result::MODULE_NN_UDS, DESCRIPTION_WIFI_OFF ); /* Please see man pages for details */ NN_DEFINE_RESULT_CONST( ResultNotInitialized, Result::LEVEL_USAGE, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_UDS, Result::DESCRIPTION_NOT_INITIALIZED ); /* Please see man pages for details */ NN_DEFINE_RESULT_CONST( ResultAlreadyOccupiedWirelessDevice, Result::LEVEL_USAGE, Result::SUMMARY_OUT_OF_RESOURCE, Result::MODULE_NN_UDS, Result::DESCRIPTION_ALREADY_INITIALIZED ); /* Please see man pages for details */ NN_DEFINE_RESULT_CONST( ResultOutOfRange, Result::LEVEL_USAGE, Result::SUMMARY_WRONG_ARGUMENT, Result::MODULE_NN_UDS, Result::DESCRIPTION_OUT_OF_RANGE ); /* Please see man pages for details */ NN_DEFINE_RESULT_CONST( ResultMisalignedAddress, Result::LEVEL_USAGE, Result::SUMMARY_WRONG_ARGUMENT, Result::MODULE_NN_UDS, Result::DESCRIPTION_MISALIGNED_ADDRESS ); /* Please see man pages for details */ NN_DEFINE_RESULT_CONST( ResultMisalignedSize, Result::LEVEL_USAGE, Result::SUMMARY_WRONG_ARGUMENT, Result::MODULE_NN_UDS, Result::DESCRIPTION_MISALIGNED_SIZE ); /* Please see man pages for details */ NN_DEFINE_RESULT_CONST( ResultTooLarge, Result::LEVEL_USAGE, Result::SUMMARY_WRONG_ARGUMENT, Result::MODULE_NN_UDS, Result::DESCRIPTION_TOO_LARGE ); /* Please see man pages for details */ NN_DEFINE_RESULT_CONST( ResultNotAuthorized, Result::LEVEL_USAGE, Result::SUMMARY_WRONG_ARGUMENT, Result::MODULE_NN_UDS, Result::DESCRIPTION_NOT_AUTHORIZED ); /* Please see man pages for details */ NN_DEFINE_RESULT_CONST( ResultMiscellaneousSystemError, Result::LEVEL_TEMPORARY, Result::SUMMARY_INTERNAL, Result::MODULE_NN_UDS, DESCRIPTION_MISCELLANOUS_SYSTEM_ERROR ); /* Please see man pages for details */ NN_DEFINE_RESULT_CONST( ResultNotImplemented, Result::LEVEL_STATUS, Result::SUMMARY_NOT_SUPPORTED, Result::MODULE_NN_UDS, Result::DESCRIPTION_NOT_IMPLEMENTED ); /* Please see man pages for details */ NN_DEFINE_RESULT_CONST( ResultMalformedData, Result::LEVEL_USAGE, Result::SUMMARY_CANCELLED, Result::MODULE_NN_UDS, DESCRIPTION_MALFORMED_DATA ); /* */ /****************************** Errors used only in the system ******************************/ NN_DEFINE_RESULT_CONST( ResultInvalildSdkVersion, Result::LEVEL_FATAL, Result::SUMMARY_NOT_SUPPORTED, Result::MODULE_NN_UDS, DESCRIPTION_INVALID_SDK_VERSION ); /****************************** The following legacy Result codes were used in the UDS library for CTR-SDK 0.10.2 and earlier. For now, these codes will be left in place to maintain compatibility with legacy code. We plan to remove them by the CTR-SDK 1.0 official release. Please update your code. ******************************/ /*--- Handle as success ---*/ //Processing is already complete inline nn::Result MakeResultAlreadyDone() { return ResultSuccess(); } //There was no data to obtain inline nn::Result MakeResultNoData() { return ResultSuccess(); } /*--- Connection failure ---*/ //No target network was found inline nn::Result MakeResultNotFoundNetwork() { return ResultNotFoundNetwork(); } //Insufficient resources for target network inline nn::Result MakeResultInsufficientResourceAtMaster() { return ResultAlreadyNetworkIsFull(); } //Connection from Master denied inline nn::Result MakeResultDeniedFromMaster() { return ResultDeniedFromMaster(); } //Timeout during connection process inline nn::Result MakeResultConnectionTimeout() { return ResultConnectionTimeout(); } /*--- General errors ---*/ //The current state does not allow execution inline nn::Result MakeResultInvalidState() { return ResultInvalidState(); } //Library not initialized inline nn::Result MakeResultNotInitialized() { return ResultNotInitialized(); } //Already initialized inline nn::Result MakeResultAlreadyInitialized() { return ResultAlreadyOccupiedWirelessDevice(); } //Invalid arguments inline nn::Result MakeResultInvalidParam() { return ResultOutOfRange(); } //Buffer is full inline nn::Result MakeResultBufferFull() { return ResultBufferIsFull(); } //Data is too big inline nn::Result MakeResultTooLarge() { return ResultTooLarge(); } //There are no target nodes inline nn::Result MakeResultNotFoundTarget() { return ResultInvalidNode(); } //Feature is not implemented inline nn::Result MakeResultNotImplemented() { return ResultNotImplemented(); } //Insufficient resources inline nn::Result MakeResultOutOfResouece() { return ResultNotImplemented(); } } // namespace CTR } // namespace uds } // namespace nn #endif //NN_UDS_CTR_UDS_RESULT_H_