//==============================================================================
//
// Copyright (c) 2016-2021 Qualcomm Technologies, Inc.
// All Rights Reserved.
// Confidential and Proprietary - Qualcomm Technologies, Inc.
//
//==============================================================================
# ifndef _DL_ERROR_HPP_
# define _DL_ERROR_HPP_
# include <stdint.h>
# include <limits> // numeric_limits
# include "DlSystem/ZdlExportDefine.hpp"
namespace zdl {
namespace DlSystem {
// clang and arm gcc different in how ZDL_EXPORT is used with enum class
# if !defined (__clang__)
enum class ErrorCode : uint32_t ZDL_EXPORT {
# else
enum class ZDL_EXPORT ErrorCode : uint32_t {
# endif // ARM64V8A
NONE = 0 ,
// System config errors
SNPE_CONFIG_MISSING_PARAM = 100 ,
SNPE_CONFIG_INVALID_PARAM = 101 ,
SNPE_CONFIG_MISSING_FILE = 102 ,
SNPE_CONFIG_NNCONFIG_NOT_SET = 103 ,
SNPE_CONFIG_NNCONFIG_INVALID = 104 ,
SNPE_CONFIG_WRONG_INPUT_NAME = 105 ,
SNPE_CONFIG_INCORRECT_INPUT_DIMENSIONS = 106 ,
SNPE_CONFIG_DIMENSIONS_MODIFICATION_NOT_SUPPORTED = 107 ,
SNPE_CONFIG_BOTH_OUTPUT_LAYER_TENSOR_NAMES_SET = 108 ,
SNPE_CONFIG_NNCONFIG_ONLY_TENSOR_SUPPORTED = 120 ,
SNPE_CONFIG_NNCONFIG_ONLY_USER_BUFFER_SUPPORTED = 121 ,
// DlSystem errors
SNPE_DLSYSTEM_MISSING_BUFFER = 200 ,
SNPE_DLSYSTEM_TENSOR_CAST_FAILED = 201 ,
SNPE_DLSYSTEM_FIXED_POINT_PARAM_INVALID = 202 ,
SNPE_DLSYSTEM_SIZE_MISMATCH = 203 ,
SNPE_DLSYSTEM_NAME_NOT_FOUND = 204 ,
SNPE_DLSYSTEM_VALUE_MISMATCH = 205 ,
SNPE_DLSYSTEM_INSERT_FAILED = 206 ,
SNPE_DLSYSTEM_TENSOR_FILE_READ_FAILED = 207 ,
SNPE_DLSYSTEM_DIAGLOG_FAILURE = 208 ,
SNPE_DLSYSTEM_LAYER_NOT_SET = 209 ,
SNPE_DLSYSTEM_WRONG_NUMBER_INPUT_BUFFERS = 210 ,
SNPE_DLSYSTEM_RUNTIME_TENSOR_SHAPE_MISMATCH = 211 ,
SNPE_DLSYSTEM_TENSOR_MISSING = 212 ,
SNPE_DLSYSTEM_TENSOR_ITERATION_UNSUPPORTED = 213 ,
SNPE_DLSYSTEM_BUFFER_MANAGER_MISSING = 214 ,
SNPE_DLSYSTEM_RUNTIME_BUFFER_SOURCE_UNSUPPORTED = 215 ,
SNPE_DLSYSTEM_BUFFER_CAST_FAILED = 216 ,
SNPE_DLSYSTEM_WRONG_TRANSITION_TYPE = 217 ,
SNPE_DLSYSTEM_LAYER_ALREADY_REGISTERED = 218 ,
SNPE_DLSYSTEM_TENSOR_DIM_INVALID = 219 ,
SNPE_DLSYSTEM_BUFFERENCODING_UNKNOWN = 240 ,
SNPE_DLSYSTEM_BUFFER_INVALID_PARAM = 241 ,
// DlContainer errors
SNPE_DLCONTAINER_MODEL_PARSING_FAILED = 300 ,
SNPE_DLCONTAINER_UNKNOWN_LAYER_CODE = 301 ,
SNPE_DLCONTAINER_MISSING_LAYER_PARAM = 302 ,
SNPE_DLCONTAINER_LAYER_PARAM_NOT_SUPPORTED = 303 ,
SNPE_DLCONTAINER_LAYER_PARAM_INVALID = 304 ,
SNPE_DLCONTAINER_TENSOR_DATA_MISSING = 305 ,
SNPE_DLCONTAINER_MODEL_LOAD_FAILED = 306 ,
SNPE_DLCONTAINER_MISSING_RECORDS = 307 ,
SNPE_DLCONTAINER_INVALID_RECORD = 308 ,
SNPE_DLCONTAINER_WRITE_FAILURE = 309 ,
SNPE_DLCONTAINER_READ_FAILURE = 310 ,
SNPE_DLCONTAINER_BAD_CONTAINER = 311 ,
SNPE_DLCONTAINER_BAD_DNN_FORMAT_VERSION = 312 ,
SNPE_DLCONTAINER_UNKNOWN_AXIS_ANNOTATION = 313 ,
SNPE_DLCONTAINER_UNKNOWN_SHUFFLE_TYPE = 314 ,
SNPE_DLCONTAINER_TEMP_FILE_FAILURE = 315 ,
// Network errors
SNPE_NETWORK_EMPTY_NETWORK = 400 ,
SNPE_NETWORK_CREATION_FAILED = 401 ,
SNPE_NETWORK_PARTITION_FAILED = 402 ,
SNPE_NETWORK_NO_OUTPUT_DEFINED = 403 ,
SNPE_NETWORK_MISMATCH_BETWEEN_NAMES_AND_DIMS = 404 ,
SNPE_NETWORK_MISSING_INPUT_NAMES = 405 ,
SNPE_NETWORK_MISSING_OUTPUT_NAMES = 406 ,
SNPE_NETWORK_EXECUTION_FAILED = 407 ,
// Host runtime errors
SNPE_HOST_RUNTIME_TARGET_UNAVAILABLE = 500 ,
// CPU runtime errors
SNPE_CPU_LAYER_NOT_SUPPORTED = 600 ,
SNPE_CPU_LAYER_PARAM_NOT_SUPPORTED = 601 ,
SNPE_CPU_LAYER_PARAM_INVALID = 602 ,
SNPE_CPU_LAYER_PARAM_COMBINATION_INVALID = 603 ,
SNPE_CPU_BUFFER_NOT_FOUND = 604 ,
SNPE_CPU_NETWORK_NOT_SUPPORTED = 605 ,
SNPE_CPU_UDO_OPERATION_FAILED = 606 ,
// CPU fixed-point runtime errors
SNPE_CPU_FXP_LAYER_NOT_SUPPORTED = 700 ,
SNPE_CPU_FXP_LAYER_PARAM_NOT_SUPPORTED = 701 ,
SNPE_CPU_FXP_LAYER_PARAM_INVALID = 702 ,
// GPU runtime errors
SNPE_GPU_LAYER_NOT_SUPPORTED = 800 ,
SNPE_GPU_LAYER_PARAM_NOT_SUPPORTED = 801 ,
SNPE_GPU_LAYER_PARAM_INVALID = 802 ,
SNPE_GPU_LAYER_PARAM_COMBINATION_INVALID = 803 ,
SNPE_GPU_KERNEL_COMPILATION_FAILED = 804 ,
SNPE_GPU_CONTEXT_NOT_SET = 805 ,
SNPE_GPU_KERNEL_NOT_SET = 806 ,
SNPE_GPU_KERNEL_PARAM_INVALID = 807 ,
SNPE_GPU_OPENCL_CHECK_FAILED = 808 ,
SNPE_GPU_OPENCL_FUNCTION_ERROR = 809 ,
SNPE_GPU_BUFFER_NOT_FOUND = 810 ,
SNPE_GPU_TENSOR_DIM_INVALID = 811 ,
SNPE_GPU_MEMORY_FLAGS_INVALID = 812 ,
SNPE_GPU_UNEXPECTED_NUMBER_OF_IO = 813 ,
SNPE_GPU_LAYER_PROXY_ERROR = 814 ,
SNPE_GPU_BUFFER_IN_USE = 815 ,
SNPE_GPU_BUFFER_MODIFICATION_ERROR = 816 ,
SNPE_GPU_DATA_ARRANGEMENT_INVALID = 817 ,
SNPE_GPU_UDO_OPERATION_FAILED = 818 ,
// DSP runtime errors
SNPE_DSP_LAYER_NOT_SUPPORTED = 900 ,
SNPE_DSP_LAYER_PARAM_NOT_SUPPORTED = 901 ,
SNPE_DSP_LAYER_PARAM_INVALID = 902 ,
SNPE_DSP_LAYER_PARAM_COMBINATION_INVALID = 903 ,
SNPE_DSP_STUB_NOT_PRESENT = 904 ,
SNPE_DSP_LAYER_NAME_TRUNCATED = 905 ,
SNPE_DSP_LAYER_INPUT_BUFFER_NAME_TRUNCATED = 906 ,
SNPE_DSP_LAYER_OUTPUT_BUFFER_NAME_TRUNCATED = 907 ,
SNPE_DSP_RUNTIME_COMMUNICATION_ERROR = 908 ,
SNPE_DSP_RUNTIME_INVALID_PARAM_ERROR = 909 ,
SNPE_DSP_RUNTIME_SYSTEM_ERROR = 910 ,
SNPE_DSP_RUNTIME_CRASHED_ERROR = 911 ,
SNPE_DSP_BUFFER_SIZE_ERROR = 912 ,
SNPE_DSP_UDO_EXECUTE_ERROR = 913 ,
SNPE_DSP_UDO_LIB_NOT_REGISTERED_ERROR = 914 ,
SNPE_DSP_UDO_INVALID_QUANTIZATION_TYPE_ERROR = 915 ,
SNPE_DSP_RUNTIME_INVALID_RPC_DRIVER = 916 ,
SNPE_DSP_RUNTIME_RPC_PERMISSION_ERROR = 917 ,
SNPE_DSP_RUNTIME_DSP_FILE_OPEN_ERROR = 918 ,
// Model validataion errors
SNPE_MODEL_VALIDATION_LAYER_NOT_SUPPORTED = 1000 ,
SNPE_MODEL_VALIDATION_LAYER_PARAM_NOT_SUPPORTED = 1001 ,
SNPE_MODEL_VALIDATION_LAYER_PARAM_INVALID = 1002 ,
SNPE_MODEL_VALIDATION_LAYER_PARAM_MISSING = 1003 ,
SNPE_MODEL_VALIDATION_LAYER_PARAM_COMBINATION_INVALID = 1004 ,
SNPE_MODEL_VALIDATION_LAYER_ORDERING_INVALID = 1005 ,
SNPE_MODEL_VALIDATION_INVALID_CONSTRAINT = 1006 ,
SNPE_MODEL_VALIDATION_MISSING_BUFFER = 1007 ,
SNPE_MODEL_VALIDATION_BUFFER_REUSE_NOT_SUPPORTED = 1008 ,
SNPE_MODEL_VALIDATION_LAYER_COULD_NOT_BE_ASSIGNED = 1009 ,
SNPE_MODEL_VALIDATION_UDO_LAYER_FAILED = 1010 ,
// UDL errors
SNPE_UDL_LAYER_EMPTY_UDL_NETWORK = 1100 ,
SNPE_UDL_LAYER_PARAM_INVALID = 1101 ,
SNPE_UDL_LAYER_INSTANCE_MISSING = 1102 ,
SNPE_UDL_LAYER_SETUP_FAILED = 1103 ,
SNPE_UDL_EXECUTE_FAILED = 1104 ,
SNPE_UDL_BUNDLE_INVALID = 1105 ,
SNPE_UDO_REGISTRATION_FAILED = 1106 ,
SNPE_UDO_GET_PACKAGE_FAILED = 1107 ,
SNPE_UDO_GET_IMPLEMENTATION_FAILED = 1108 ,
// Dependent library errors
SNPE_STD_LIBRARY_ERROR = 1200 ,
// Unknown exception (catch (...)), Has no component attached to this
SNPE_UNKNOWN_EXCEPTION = 1210 ,
// Storage Errors
SNPE_STORAGE_INVALID_KERNEL_REPO = 1300 ,
// AIP runtime errors
SNPE_AIP_LAYER_NOT_SUPPORTED = 1400 ,
SNPE_AIP_LAYER_PARAM_NOT_SUPPORTED = 1401 ,
SNPE_AIP_LAYER_PARAM_INVALID = 1402 ,
SNPE_AIP_LAYER_PARAM_COMBINATION_INVALID = 1403 ,
SNPE_AIP_STUB_NOT_PRESENT = 1404 ,
SNPE_AIP_LAYER_NAME_TRUNCATED = 1405 ,
SNPE_AIP_LAYER_INPUT_BUFFER_NAME_TRUNCATED = 1406 ,
SNPE_AIP_LAYER_OUTPUT_BUFFER_NAME_TRUNCATED = 1407 ,
SNPE_AIP_RUNTIME_COMMUNICATION_ERROR = 1408 ,
SNPE_AIP_RUNTIME_INVALID_PARAM_ERROR = 1409 ,
SNPE_AIP_RUNTIME_SYSTEM_ERROR = 1410 ,
SNPE_AIP_RUNTIME_TENSOR_MISSING = 1411 ,
SNPE_AIP_RUNTIME_TENSOR_SHAPE_MISMATCH = 1412 ,
SNPE_AIP_RUNTIME_BAD_AIX_RECORD = 1413 ,
// DlCaching errors
SNPE_DLCACHING_INVALID_METADATA = 1500 ,
SNPE_DLCACHING_INVALID_INITBLOB = 1501 ,
// Infrastructure Errors
SNPE_INFRA_CLUSTERMGR_INSTANCE_INVALID = 1600 ,
SNPE_INFRA_CLUSTERMGR_EXECUTE_SYNC_FAILED = 1601 ,
// Memory Errors
SNPE_MEMORY_CORRUPTION_ERROR = 1700
} ;
/** @addtogroup c_plus_plus_apis C++
@ { */
/**
* Returns the error code of the last error encountered .
*
* @ return The error code .
*
* @ note The returned error code is significant only when the return
* value of the call indicated an error .
*/
ZDL_EXPORT ErrorCode getLastErrorCode ( ) ;
/**
* Returns the error string of the last error encountered .
*
* @ return The error string .
*
* @ note The returned error string is significant only when the return
* value of the call indicated an error .
*/
ZDL_EXPORT const char * getLastErrorString ( ) ;
/**
* Returns the info string of the last error encountered .
*/
ZDL_EXPORT const char * getLastInfoString ( ) ;
/**
* Returns the uint32_t representation of the error code enum .
*
* @ param [ in ] code The error code to be converted .
*
* @ return uint32_t representation of the error code .
*/
ZDL_EXPORT uint32_t enumToUInt32 ( zdl : : DlSystem : : ErrorCode code ) ;
/** @} */ /* end_addtogroup c_plus_plus_apis C++ */
} // DlSystem
} // zdl
# endif // _DL_ERROR_HPP_