LCOV - code coverage report
Current view: top level - lib/core - CHIPError.h (source / functions) Hit Total Coverage
Test: lcov_final.info Lines: 34 37 91.9 %
Date: 2024-02-15 08:20:41 Functions: 21 22 95.5 %

          Line data    Source code
       1             : /*
       2             :  *
       3             :  *    Copyright (c) 2020-2022 Project CHIP Authors
       4             :  *    Copyright (c) 2013-2017 Nest Labs, Inc.
       5             :  *
       6             :  *    Licensed under the Apache License, Version 2.0 (the "License");
       7             :  *    you may not use this file except in compliance with the License.
       8             :  *    You may obtain a copy of the License at
       9             :  *
      10             :  *        http://www.apache.org/licenses/LICENSE-2.0
      11             :  *
      12             :  *    Unless required by applicable law or agreed to in writing, software
      13             :  *    distributed under the License is distributed on an "AS IS" BASIS,
      14             :  *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      15             :  *    See the License for the specific language governing permissions and
      16             :  *    limitations under the License.
      17             :  */
      18             : 
      19             : /**
      20             :  *    @file
      21             :  *      This file defines error constants for the CHIP core
      22             :  *      subsystem.
      23             :  *
      24             :  *      Error types, ranges, and mappings overrides may be made by
      25             :  *      defining the appropriate CHIP_CONFIG_* or _CHIP_CONFIG_*
      26             :  *      macros.
      27             :  */
      28             : 
      29             : #pragma once
      30             : 
      31             : #include <lib/core/CHIPConfig.h>
      32             : #include <lib/support/TypeTraits.h>
      33             : 
      34             : #include <inttypes.h>
      35             : #include <limits>
      36             : #include <type_traits>
      37             : 
      38             : namespace chip {
      39             : 
      40             : /**
      41             :  * This class represents CHIP errors.
      42             :  *
      43             :  * At the top level, an error belongs to a Range and has an integral Value whose meaning depends on the Range.
      44             :  * One, Range::kSDK, is used for the CHIP SDK's own errors; others encapsulate error codes from external sources
      45             :  * (e.g. libraries, OS) into a CHIP_ERROR.
      46             :  *
      47             :  * CHIP SDK errors inside Range::kSDK consist of a component identifier given by SdkPart and an arbitrary small
      48             :  * integer Code.
      49             :  */
      50             : class ChipError
      51             : {
      52             : public:
      53             :     /// Internal representation of an error.
      54             :     using StorageType = uint32_t;
      55             : 
      56             :     /// Type for encapsulated error values.
      57             :     using ValueType = StorageType;
      58             : 
      59             :     /// Integer `printf` format for errors. This is a C macro in order to allow for string literal concatenation.
      60             : #define CHIP_ERROR_INTEGER_FORMAT PRIx32
      61             : 
      62             : #if CHIP_CONFIG_ERROR_FORMAT_AS_STRING
      63             : 
      64             :     /// Type returned by Format().
      65             :     using FormatType = const char *;
      66             :     /// `printf` format for Format(). This is a C macro in order to allow for string literal concatenation.
      67             : #define CHIP_ERROR_FORMAT "s"
      68             : 
      69             : #else // CHIP_CONFIG_ERROR_FORMAT_AS_STRING
      70             : 
      71             :     /// Type returned by Format().
      72             :     using FormatType = StorageType;
      73             :     /// `printf` format for Format(). This is a C macro in order to allow for string literal concatenation.
      74             : #define CHIP_ERROR_FORMAT CHIP_ERROR_INTEGER_FORMAT
      75             : 
      76             : #endif // CHIP_CONFIG_ERROR_FORMAT_AS_STRING
      77             : 
      78             :     /**
      79             :      * Top-level error classification.
      80             :      *
      81             :      * Every error belongs to a Range and has an integral Value whose meaning depends on the Range.
      82             :      * All native CHIP SDK errors belong to the kSDK range. Other ranges are used to encapsulate error
      83             :      * codes from other subsystems (e.g. platform or library) used by the CHIP SDK.
      84             :      */
      85             :     enum class Range : uint8_t
      86             :     {
      87             :         kSDK        = 0x0, ///< CHIP SDK errors.
      88             :         kOS         = 0x1, ///< Encapsulated OS errors, other than POSIX errno.
      89             :         kPOSIX      = 0x2, ///< Encapsulated POSIX errno values.
      90             :         kLwIP       = 0x3, ///< Encapsulated LwIP errors.
      91             :         kOpenThread = 0x4, ///< Encapsulated OpenThread errors.
      92             :         kPlatform   = 0x5, ///< Platform-defined encapsulation.
      93             :         kLastRange  = kPlatform,
      94             :     };
      95             : 
      96             :     /**
      97             :      * Secondary classification of CHIP SDK errors (Range::kSDK).
      98             :      */
      99             :     enum class SdkPart : uint8_t
     100             :     {
     101             :         kCore            = 0, ///< SDK core errors.
     102             :         kInet            = 1, ///< Inet layer errors; see <inet/InetError.h>.
     103             :         kDevice          = 2, ///< Device layer errors; see <platform/CHIPDeviceError.h>.
     104             :         kASN1            = 3, ///< ASN1 errors; see <asn1/ASN1Error.h>.
     105             :         kBLE             = 4, ///< BLE layer errors; see <ble/BleError.h>.
     106             :         kIMGlobalStatus  = 5, ///< Interaction Model global status code.
     107             :         kIMClusterStatus = 6, ///< Interaction Model cluster-specific status code.
     108             :         kApplication     = 7, ///< Application-defined errors; see CHIP_APPLICATION_ERROR
     109             :     };
     110             : 
     111             :     ChipError() = default;
     112             : 
     113             :     // Helper for declaring constructors without too much repetition.
     114             : #if CHIP_CONFIG_ERROR_SOURCE
     115             : #define CHIP_INITIALIZE_ERROR_SOURCE(f, l) , mFile((f)), mLine((l))
     116             : #else // CHIP_CONFIG_ERROR_SOURCE
     117             : #define CHIP_INITIALIZE_ERROR_SOURCE(f, l)
     118             : #endif // CHIP_CONFIG_ERROR_SOURCE
     119             : 
     120             :     /**
     121             :      * Construct a CHIP_ERROR encapsulating @a value inside the Range @a range.
     122             :      *
     123             :      * @note
     124             :      *  The result is valid only if CanEncapsulate() is true.
     125             :      */
     126           0 :     constexpr ChipError(Range range, ValueType value) :
     127           0 :         mError(MakeInteger(range, (value & MakeMask(0, kValueLength)))) CHIP_INITIALIZE_ERROR_SOURCE(nullptr, 0)
     128           0 :     {}
     129       14112 :     constexpr ChipError(Range range, ValueType value, const char * file, unsigned int line) :
     130       14112 :         mError(MakeInteger(range, (value & MakeMask(0, kValueLength)))) CHIP_INITIALIZE_ERROR_SOURCE(file, line)
     131       14112 :     {}
     132             : 
     133             :     /**
     134             :      * Construct a CHIP_ERROR for SdkPart @a part with @a code.
     135             :      *
     136             :      * @note
     137             :      *  The macro version CHIP_SDK_ERROR checks that the numeric value is constant and well-formed.
     138             :      */
     139         118 :     constexpr ChipError(SdkPart part, uint8_t code) : mError(MakeInteger(part, code)) CHIP_INITIALIZE_ERROR_SOURCE(nullptr, 0) {}
     140             :     constexpr ChipError(SdkPart part, uint8_t code, const char * file, unsigned int line) :
     141             :         mError(MakeInteger(part, code)) CHIP_INITIALIZE_ERROR_SOURCE(file, line)
     142             :     {}
     143             : 
     144             :     /**
     145             :      * Construct a CHIP_ERROR constant for SdkPart @a part with @a code at the current source line.
     146             :      * This checks that the numeric value is constant and well-formed.
     147             :      * (In C++20 this could be replaced by a consteval constructor.)
     148             :      */
     149             : #if CHIP_CONFIG_ERROR_SOURCE
     150             : #define CHIP_SDK_ERROR(part, code)                                                                                                 \
     151             :     (::chip::ChipError(::chip::ChipError::SdkErrorConstant<(part), (code)>::value, __FILE__, __LINE__))
     152             : #else // CHIP_CONFIG_ERROR_SOURCE
     153             : #define CHIP_SDK_ERROR(part, code) (::chip::ChipError(::chip::ChipError::SdkErrorConstant<(part), (code)>::value))
     154             : #endif // CHIP_CONFIG_ERROR_SOURCE
     155             : 
     156             :     /**
     157             :      * Construct a CHIP_ERROR from the underlying storage type.
     158             :      *
     159             :      * @note
     160             :      *  This is intended to be used only in foreign function interfaces.
     161             :      */
     162             :     explicit constexpr ChipError(StorageType error) : mError(error) CHIP_INITIALIZE_ERROR_SOURCE(nullptr, 0) {}
     163   123183798 :     explicit constexpr ChipError(StorageType error, const char * file, unsigned int line) :
     164   123183798 :         mError(error) CHIP_INITIALIZE_ERROR_SOURCE(file, line)
     165   123183798 :     {}
     166             : 
     167             : #undef CHIP_INITIALIZE_ERROR_SOURCE
     168             : 
     169             :     /**
     170             :      * Compare errors for equality.
     171             :      *
     172             :      * @note
     173             :      *  This only compares the error code. Under the CHIP_CONFIG_ERROR_SOURCE configuration, errors compare equal
     174             :      *  if they have the same error code, even if they have different source locations.
     175             :      */
     176     3905097 :     bool operator==(const ChipError & other) const { return mError == other.mError; }
     177    34288048 :     bool operator!=(const ChipError & other) const { return mError != other.mError; }
     178             : 
     179             :     /**
     180             :      * Return an integer code for the error.
     181             :      */
     182        1466 :     constexpr StorageType AsInteger() const { return mError; }
     183             : 
     184             :     /*
     185             :      * IsSuccess() is intended to support macros that can take either a ChipError or an integer error code.
     186             :      * The latter follows the C convention that a non-zero integer indicates an error.
     187             :      *
     188             :      * @note
     189             :      *  Normal code should use `status == CHIP_NO_ERROR` rather than `IsSuccess(status)`.
     190             :      */
     191    52129599 :     static constexpr bool IsSuccess(ChipError error) { return error.mError == 0; }
     192             :     static constexpr bool IsSuccess(StorageType error) { return error == 0; }
     193             : 
     194             :     /**
     195             :      * Format an @a error for printing.
     196             :      *
     197             :      * Normally, this is used with the `printf()`-style macro CHIP_ERROR_FORMAT.
     198             :      * For example,
     199             :      *  @code
     200             :      *      ChipLogError(subsystem, "A bad thing happened! %" CHIP_ERROR_FORMAT, status.Format());
     201             :      *  @endcode
     202             :      */
     203             : #if CHIP_CONFIG_ERROR_FORMAT_AS_STRING
     204         264 :     FormatType Format() const { return AsString(); }
     205             : #else  // CHIP_CONFIG_ERROR_FORMAT_AS_STRING
     206             :     FormatType Format() const { return mError; }
     207             : #endif // CHIP_CONFIG_ERROR_FORMAT_AS_STRING
     208             : 
     209             :     /**
     210             :      * Format an @a error as a string for printing.
     211             :      *
     212             :      * @note
     213             :      *  Normally, prefer to use Format()
     214             :      */
     215        2698 :     const char * AsString() const
     216             :     {
     217             :         extern const char * ErrorStr(ChipError);
     218        2698 :         return ErrorStr(*this);
     219             :     }
     220             : 
     221             :     /**
     222             :      * Test whether @a error belongs to the Range @a range.
     223             :      */
     224          41 :     constexpr bool IsRange(Range range) const
     225             :     {
     226          41 :         return (mError & MakeMask(kRangeStart, kRangeLength)) == MakeField(kRangeStart, static_cast<StorageType>(range));
     227             :     }
     228             : 
     229             :     /**
     230             :      * Get the Range to which the @a error belongs.
     231             :      */
     232             :     constexpr Range GetRange() const { return static_cast<Range>(GetField(kRangeStart, kRangeLength, mError)); }
     233             : 
     234             :     /**
     235             :      * Get the encapsulated value of an @a error.
     236             :      */
     237           2 :     constexpr ValueType GetValue() const { return GetField(kValueStart, kValueLength, mError); }
     238             : 
     239             :     /**
     240             :      * Test whether type @a T can always be losslessly encapsulated in a CHIP_ERROR.
     241             :      */
     242             :     template <typename T>
     243             :     static constexpr bool CanEncapsulate()
     244             :     {
     245             :         return std::numeric_limits<typename std::make_unsigned_t<T>>::digits <= kValueLength;
     246             :     }
     247             : 
     248             :     /**
     249             :      * Test whether if @a value can be losslessly encapsulated in a CHIP_ERROR.
     250             :      */
     251             :     template <typename T>
     252             :     static constexpr bool CanEncapsulate(T value)
     253             :     {
     254             :         return CanEncapsulate<T>() || FitsInField(kValueLength, static_cast<ValueType>(value));
     255             :     }
     256             : 
     257             :     /**
     258             :      * Test whether @a error is an SDK error belonging to the SdkPart @a part.
     259             :      */
     260        2528 :     constexpr bool IsPart(SdkPart part) const
     261             :     {
     262        2528 :         return (mError & (MakeMask(kRangeStart, kRangeLength) | MakeMask(kSdkPartStart, kSdkPartLength))) ==
     263        2528 :             (MakeField(kRangeStart, static_cast<StorageType>(Range::kSDK)) |
     264        2528 :              MakeField(kSdkPartStart, static_cast<StorageType>(part)));
     265             :     }
     266             : 
     267             :     /**
     268             :      * Get the SDK code for an SDK error.
     269             :      */
     270          65 :     constexpr uint8_t GetSdkCode() const { return static_cast<uint8_t>(GetField(kSdkCodeStart, kSdkCodeLength, mError)); }
     271             : 
     272             :     /**
     273             :      * Test whether @a error is an SDK error representing an Interaction Model
     274             :      * status.  If it is, it can be converted to/from an interaction model
     275             :      * StatusIB struct.
     276             :      */
     277         449 :     constexpr bool IsIMStatus() const
     278             :     {
     279             :         // Open question: should CHIP_NO_ERROR be treated as an IM status for
     280             :         // purposes of this test?
     281         449 :         return IsPart(SdkPart::kIMGlobalStatus) || IsPart(SdkPart::kIMClusterStatus);
     282             :     }
     283             : 
     284             : #if CHIP_CONFIG_ERROR_SOURCE
     285             : 
     286             :     /**
     287             :      * Get the source file name of the point where the error occurred.
     288             :      *
     289             :      * @note
     290             :      *  This will be `nullptr` if the error was not created with a file name.
     291             :      */
     292        3262 :     const char * GetFile() const { return mFile; }
     293             : 
     294             :     /**
     295             :      * Get the source line number of the point where the error occurred.
     296             :      *
     297             :      * @note
     298             :      *  This will be 0 if the error was not created with a file name.
     299             :      */
     300        3123 :     unsigned int GetLine() const { return mLine; }
     301             : 
     302             : #endif // CHIP_CONFIG_ERROR_SOURCE
     303             : 
     304             : private:
     305             :     /*
     306             :      * The representation of a CHIP_ERROR is structured so that SDK error code constants are small, in order to improve code
     307             :      * density on embedded builds. Arm 32, Xtensa, and RISC-V can all handle 11-bit values in a move-immediate instruction.
     308             :      * Further, SdkPart::kCore is 0 so that the most common errors fit in 8 bits for additional density on some processors.
     309             :      *
     310             :      *  31    28      24      20      16      12       8       4       0    Bit
     311             :      *  |       |       |       |       |       |       |       |       |
     312             :      *  |     range     |                     value                     |
     313             :      *  |    kSdk==0    |       0               |0| part|    code       |   SDK error
     314             :      *  |    01 - FF    |          encapsulated error code              |   Encapsulated error
     315             :      */
     316             :     static constexpr int kRangeStart  = 24;
     317             :     static constexpr int kRangeLength = 8;
     318             :     static constexpr int kValueStart  = 0;
     319             :     static constexpr int kValueLength = 24;
     320             : 
     321             :     static constexpr int kSdkPartStart  = 8;
     322             :     static constexpr int kSdkPartLength = 3;
     323             :     static constexpr int kSdkCodeStart  = 0;
     324             :     static constexpr int kSdkCodeLength = 8;
     325             : 
     326          67 :     static constexpr StorageType GetField(unsigned int start, unsigned int length, StorageType value)
     327             :     {
     328          67 :         return (value >> start) & ((1u << length) - 1);
     329             :     }
     330       19210 :     static constexpr StorageType MakeMask(unsigned int start, unsigned int length) { return ((1u << length) - 1) << start; }
     331       33794 :     static constexpr StorageType MakeField(unsigned int start, StorageType value) { return value << start; }
     332             :     static constexpr bool FitsInField(unsigned int length, StorageType value) { return value < (1u << length); }
     333             : 
     334       14230 :     static constexpr StorageType MakeInteger(Range range, StorageType value)
     335             :     {
     336       14230 :         return MakeField(kRangeStart, to_underlying(range)) | MakeField(kValueStart, value);
     337             :     }
     338         118 :     static constexpr StorageType MakeInteger(SdkPart part, uint8_t code)
     339             :     {
     340         118 :         return MakeInteger(Range::kSDK, MakeField(kSdkPartStart, to_underlying(part)) | MakeField(kSdkCodeStart, code));
     341             :     }
     342             :     template <unsigned int START, unsigned int LENGTH>
     343             :     struct MaskConstant
     344             :     {
     345             :         static constexpr StorageType value = ((1u << LENGTH) - 1) << START;
     346             :     };
     347             : 
     348             :     // Assert that Range and Value fields fit in StorageType and don't overlap.
     349             :     static_assert(kRangeStart + kRangeLength <= std::numeric_limits<StorageType>::digits, "Range does not fit in StorageType");
     350             :     static_assert(kValueStart + kValueLength <= std::numeric_limits<StorageType>::digits, "Value does not fit in StorageType");
     351             :     static_assert((MaskConstant<kRangeStart, kRangeLength>::value & MaskConstant<kValueStart, kValueLength>::value) == 0,
     352             :                   "Range and Value overlap");
     353             : 
     354             :     // Assert that SDK Part and Code fields fit in SdkCode field and don't overlap.
     355             :     static_assert(kSdkPartStart + kSdkPartLength <= kValueLength, "SdkPart does not fit in Value");
     356             :     static_assert(kSdkCodeStart + kSdkCodeLength <= kValueLength, "SdkCode does not fit in Value");
     357             :     static_assert((MaskConstant<kSdkPartStart, kSdkPartLength>::value & MaskConstant<kSdkCodeStart, kSdkCodeLength>::value) == 0,
     358             :                   "SdkPart and SdkCode overlap");
     359             : 
     360             :     // Assert that Value fits in ValueType.
     361             :     static_assert(kValueStart + kValueLength <= std::numeric_limits<ValueType>::digits, "Value does not fit in ValueType");
     362             : 
     363             :     StorageType mError;
     364             : 
     365             : #if CHIP_CONFIG_ERROR_SOURCE
     366             :     const char * mFile;
     367             :     unsigned int mLine;
     368             : #endif // CHIP_CONFIG_ERROR_SOURCE
     369             : 
     370             : public:
     371             :     /**
     372             :      * Helper for constructing error constants.
     373             :      *
     374             :      * This template ensures that the numeric value is constant and well-formed.
     375             :      */
     376             :     template <SdkPart PART, StorageType CODE>
     377             :     struct SdkErrorConstant
     378             :     {
     379             :         static_assert(FitsInField(kSdkPartLength, to_underlying(PART)), "part is too large");
     380             :         static_assert(FitsInField(kSdkCodeLength, CODE), "code is too large");
     381             :         static_assert(MakeInteger(PART, CODE) != 0, "value is zero");
     382             :         static constexpr StorageType value = MakeInteger(PART, CODE);
     383             :     };
     384             : };
     385             : 
     386             : } // namespace chip
     387             : 
     388             : /**
     389             :  *  The basic type for all CHIP errors.
     390             :  */
     391             : using CHIP_ERROR = ::chip::ChipError;
     392             : 
     393             : /**
     394             :  * Applications using the CHIP SDK can use this to define error codes in the CHIP_ERROR space for their own purposes.
     395             :  * This is suitable for a small fixed set of errors, similar to `CHIP_ERROR_…` constants. For embedding arbitrary or
     396             :  * larger values, use a custom Range offset from Range::kLastRange.
     397             :  */
     398             : #define CHIP_APPLICATION_ERROR(e) CHIP_SDK_ERROR(::chip::ChipError::SdkPart::kApplication, (e))
     399             : 
     400             : #define CHIP_CORE_ERROR(e) CHIP_SDK_ERROR(::chip::ChipError::SdkPart::kCore, (e))
     401             : 
     402             : #define CHIP_IM_GLOBAL_STATUS(type)                                                                                                \
     403             :     CHIP_SDK_ERROR(::chip::ChipError::SdkPart::kIMGlobalStatus,                                                                    \
     404             :                    ::chip::to_underlying(::chip::Protocols::InteractionModel::Status::type))
     405             : 
     406             : //
     407             : // type must be a compile-time constant as mandated by CHIP_SDK_ERROR.
     408             : //
     409             : #define CHIP_IM_CLUSTER_STATUS(type) CHIP_SDK_ERROR(::chip::ChipError::SdkPart::kIMClusterStatus, type)
     410             : 
     411             : // clang-format off
     412             : 
     413             : /**
     414             :  *  @name Error Definitions
     415             :  *
     416             :  *  @{
     417             :  */
     418             : 
     419             : /**
     420             :  *  @def CHIP_NO_ERROR
     421             :  *
     422             :  *  @brief
     423             :  *    This defines the CHIP error code for success or no error.
     424             :  *
     425             :  */
     426             : #if CHIP_CONFIG_ERROR_SOURCE && CHIP_CONFIG_ERROR_SOURCE_NO_ERROR
     427             : #define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
     428             : #else // CHIP_CONFIG_ERROR_SOURCE && CHIP_CONFIG_ERROR_SOURCE_NO_ERROR
     429             : #define CHIP_NO_ERROR                                          CHIP_ERROR(0)
     430             : #endif // CHIP_CONFIG_ERROR_SOURCE && CHIP_CONFIG_ERROR_SOURCE_NO_ERROR
     431             : 
     432             : /**
     433             :  *  @def CHIP_ERROR_SENDING_BLOCKED
     434             :  *
     435             :  *  @brief
     436             :  *    A message exceeds the sent limit.
     437             :  *
     438             :  */
     439             : #define CHIP_ERROR_SENDING_BLOCKED                             CHIP_CORE_ERROR(0x01)
     440             : 
     441             : /**
     442             :  *  @def CHIP_ERROR_CONNECTION_ABORTED
     443             :  *
     444             :  *  @brief
     445             :  *    A connection has been aborted.
     446             :  *
     447             :  */
     448             : #define CHIP_ERROR_CONNECTION_ABORTED                          CHIP_CORE_ERROR(0x02)
     449             : 
     450             : /**
     451             :  *  @def CHIP_ERROR_INCORRECT_STATE
     452             :  *
     453             :  *  @brief
     454             :  *    An unexpected state was encountered.
     455             :  *
     456             :  */
     457             : #define CHIP_ERROR_INCORRECT_STATE                             CHIP_CORE_ERROR(0x03)
     458             : 
     459             : /**
     460             :  *  @def CHIP_ERROR_MESSAGE_TOO_LONG
     461             :  *
     462             :  *  @brief
     463             :  *    A message is too long.
     464             :  *
     465             :  */
     466             : #define CHIP_ERROR_MESSAGE_TOO_LONG                            CHIP_CORE_ERROR(0x04)
     467             : 
     468             : /**
     469             :  *    Recursion depth overflow
     470             :  */
     471             : #define CHIP_ERROR_RECURSION_DEPTH_LIMIT                       CHIP_CORE_ERROR(0x05)
     472             : 
     473             : /**
     474             :  *  @def CHIP_ERROR_TOO_MANY_UNSOLICITED_MESSAGE_HANDLERS
     475             :  *
     476             :  *  @brief
     477             :  *    The attempt to register an unsolicited message handler failed because the
     478             :  *    unsolicited message handler pool is full.
     479             :  *
     480             :  */
     481             : #define CHIP_ERROR_TOO_MANY_UNSOLICITED_MESSAGE_HANDLERS       CHIP_CORE_ERROR(0x06)
     482             : 
     483             : /**
     484             :  *  @def CHIP_ERROR_NO_UNSOLICITED_MESSAGE_HANDLER
     485             :  *
     486             :  *  @brief
     487             :  *    The attempt to unregister an unsolicited message handler failed because
     488             :  *    the target handler was not found in the unsolicited message handler pool.
     489             :  *
     490             :  */
     491             : #define CHIP_ERROR_NO_UNSOLICITED_MESSAGE_HANDLER              CHIP_CORE_ERROR(0x07)
     492             : 
     493             : /**
     494             :  *  @def CHIP_ERROR_NO_CONNECTION_HANDLER
     495             :  *
     496             :  *  @brief
     497             :  *    No callback has been registered for handling a connection.
     498             :  *
     499             :  */
     500             : #define CHIP_ERROR_NO_CONNECTION_HANDLER                       CHIP_CORE_ERROR(0x08)
     501             : 
     502             : /**
     503             :  *  @def CHIP_ERROR_TOO_MANY_PEER_NODES
     504             :  *
     505             :  *  @brief
     506             :  *    The number of peer nodes exceeds the maximum limit of a local node.
     507             :  *
     508             :  */
     509             : #define CHIP_ERROR_TOO_MANY_PEER_NODES                         CHIP_CORE_ERROR(0x09)
     510             : 
     511             : /**
     512             :  *  @def CHIP_ERROR_SENTINEL
     513             :  *
     514             :  *  @brief
     515             :  *    For use locally to mark conditions such as value found or end of iteration.
     516             :  *
     517             :  */
     518             : #define CHIP_ERROR_SENTINEL                                    CHIP_CORE_ERROR(0x0a)
     519             : 
     520             : /**
     521             :  *  @def CHIP_ERROR_NO_MEMORY
     522             :  *
     523             :  *  @brief
     524             :  *    The attempt to allocate a buffer or object failed due to a lack of memory.
     525             :  *
     526             :  */
     527             : #define CHIP_ERROR_NO_MEMORY                                   CHIP_CORE_ERROR(0x0b)
     528             : 
     529             : /**
     530             :  *  @def CHIP_ERROR_NO_MESSAGE_HANDLER
     531             :  *
     532             :  *  @brief
     533             :  *    No callback has been registered for handling a message.
     534             :  *
     535             :  */
     536             : #define CHIP_ERROR_NO_MESSAGE_HANDLER                          CHIP_CORE_ERROR(0x0c)
     537             : 
     538             : /**
     539             :  *  @def CHIP_ERROR_MESSAGE_INCOMPLETE
     540             :  *
     541             :  *  @brief
     542             :  *    A message is incomplete.
     543             :  *
     544             :  */
     545             : #define CHIP_ERROR_MESSAGE_INCOMPLETE                          CHIP_CORE_ERROR(0x0d)
     546             : 
     547             : /**
     548             :  *  @def CHIP_ERROR_DATA_NOT_ALIGNED
     549             :  *
     550             :  *  @brief
     551             :  *    The data is not aligned.
     552             :  *
     553             :  */
     554             : #define CHIP_ERROR_DATA_NOT_ALIGNED                            CHIP_CORE_ERROR(0x0e)
     555             : 
     556             : /**
     557             :  *  @def CHIP_ERROR_UNKNOWN_KEY_TYPE
     558             :  *
     559             :  *  @brief
     560             :  *    The encryption key type is unknown.
     561             :  *
     562             :  */
     563             : #define CHIP_ERROR_UNKNOWN_KEY_TYPE                            CHIP_CORE_ERROR(0x0f)
     564             : 
     565             : /**
     566             :  *  @def CHIP_ERROR_KEY_NOT_FOUND
     567             :  *
     568             :  *  @brief
     569             :  *    The encryption key is not found.
     570             :  *
     571             :  */
     572             : #define CHIP_ERROR_KEY_NOT_FOUND                               CHIP_CORE_ERROR(0x10)
     573             : 
     574             : /**
     575             :  *  @def CHIP_ERROR_WRONG_ENCRYPTION_TYPE
     576             :  *
     577             :  *  @brief
     578             :  *    The encryption type is incorrect for the specified key.
     579             :  *
     580             :  */
     581             : #define CHIP_ERROR_WRONG_ENCRYPTION_TYPE                       CHIP_CORE_ERROR(0x11)
     582             : 
     583             : /**
     584             :  *  @def CHIP_ERROR_INVALID_UTF8
     585             :  *
     586             :  *  @brief
     587             :  *    Invalid UTF8 string (contains some characters that are invalid)
     588             :  *
     589             :  */
     590             : #define CHIP_ERROR_INVALID_UTF8                                CHIP_CORE_ERROR(0x12)
     591             : 
     592             : /**
     593             :  *  @def CHIP_ERROR_INTEGRITY_CHECK_FAILED
     594             :  *
     595             :  *  @brief
     596             :  *    The integrity check in the message does not match the expected integrity
     597             :  *    check.
     598             :  *
     599             :  */
     600             : #define CHIP_ERROR_INTEGRITY_CHECK_FAILED                      CHIP_CORE_ERROR(0x13)
     601             : 
     602             : /**
     603             :  *  @def CHIP_ERROR_INVALID_SIGNATURE
     604             :  *
     605             :  *  @brief
     606             :  *    Invalid signature.
     607             :  *
     608             :  */
     609             : #define CHIP_ERROR_INVALID_SIGNATURE                           CHIP_CORE_ERROR(0x14)
     610             : 
     611             : /**
     612             :  *  @def CHIP_ERROR_INVALID_TLV_CHAR_STRING
     613             :  *
     614             :  *  @brief
     615             :  *    Invalid TLV character string (e.g. null terminator)
     616             :  *
     617             :  */
     618             : #define CHIP_ERROR_INVALID_TLV_CHAR_STRING                     CHIP_CORE_ERROR(0x15)
     619             : 
     620             : /**
     621             :  *  @def CHIP_ERROR_LIT_SUBSCRIBE_INACTIVE_TIMEOUT
     622             :  *
     623             :  *  @brief
     624             :  *    Subscription timeout caused by LIT ICD device inactive mode
     625             :  *
     626             :  */
     627             : #define CHIP_ERROR_LIT_SUBSCRIBE_INACTIVE_TIMEOUT              CHIP_CORE_ERROR(0x16)
     628             : 
     629             : /**
     630             :  *  @def CHIP_ERROR_UNSUPPORTED_SIGNATURE_TYPE
     631             :  *
     632             :  *  @brief
     633             :  *    A signature type is unsupported.
     634             :  *
     635             :  */
     636             : #define CHIP_ERROR_UNSUPPORTED_SIGNATURE_TYPE                  CHIP_CORE_ERROR(0x17)
     637             : 
     638             : /**
     639             :  *  @def CHIP_ERROR_INVALID_MESSAGE_LENGTH
     640             :  *
     641             :  *  @brief
     642             :  *    A message length is invalid.
     643             :  *
     644             :  */
     645             : #define CHIP_ERROR_INVALID_MESSAGE_LENGTH                      CHIP_CORE_ERROR(0x18)
     646             : 
     647             : /**
     648             :  *  @def CHIP_ERROR_BUFFER_TOO_SMALL
     649             :  *
     650             :  *  @brief
     651             :  *    A buffer is too small.
     652             :  *
     653             :  */
     654             : #define CHIP_ERROR_BUFFER_TOO_SMALL                            CHIP_CORE_ERROR(0x19)
     655             : 
     656             : /**
     657             :  *  @def CHIP_ERROR_DUPLICATE_KEY_ID
     658             :  *
     659             :  *  @brief
     660             :  *    A key id is duplicate.
     661             :  *
     662             :  */
     663             : #define CHIP_ERROR_DUPLICATE_KEY_ID                            CHIP_CORE_ERROR(0x1a)
     664             : 
     665             : /**
     666             :  *  @def CHIP_ERROR_WRONG_KEY_TYPE
     667             :  *
     668             :  *  @brief
     669             :  *    A key type does not match the expected key type.
     670             :  *
     671             :  */
     672             : #define CHIP_ERROR_WRONG_KEY_TYPE                              CHIP_CORE_ERROR(0x1b)
     673             : 
     674             : /**
     675             :  *  @def CHIP_ERROR_UNINITIALIZED
     676             :  *
     677             :  *  @brief
     678             :  *    A requested object is uninitialized.
     679             :  *
     680             :  */
     681             : #define CHIP_ERROR_UNINITIALIZED                               CHIP_CORE_ERROR(0x1c)
     682             : 
     683             : /**
     684             :  *  @def CHIP_ERROR_INVALID_IPK
     685             :  *
     686             :  *  @brief
     687             :  *    The IPK is invalid
     688             :  *
     689             :  */
     690             : #define CHIP_ERROR_INVALID_IPK                                 CHIP_CORE_ERROR(0x1d)
     691             : 
     692             : /**
     693             :  *  @def CHIP_ERROR_INVALID_STRING_LENGTH
     694             :  *
     695             :  *  @brief
     696             :  *    A string length is invalid.
     697             :  *
     698             :  */
     699             : #define CHIP_ERROR_INVALID_STRING_LENGTH                       CHIP_CORE_ERROR(0x1e)
     700             : 
     701             : /**
     702             :  *  @def CHIP_ERROR_INVALID_LIST_LENGTH
     703             :  *
     704             :  *  @brief
     705             :  *    A list length is invalid.
     706             :  *
     707             :  */
     708             : #define CHIP_ERROR_INVALID_LIST_LENGTH                         CHIP_CORE_ERROR(0x1f)
     709             : 
     710             : // AVAILABLE: 0x20
     711             : 
     712             : /**
     713             :  *  @def CHIP_END_OF_TLV
     714             :  *
     715             :  *  @brief
     716             :  *    The end of a TLV encoding,
     717             :  *    or the end of a TLV container element has been reached.
     718             :  *
     719             :  */
     720             : #define CHIP_ERROR_END_OF_TLV                                  CHIP_CORE_ERROR(0x21)
     721             : #define CHIP_END_OF_TLV CHIP_ERROR_END_OF_TLV
     722             : 
     723             : /**
     724             :  *  @def CHIP_ERROR_TLV_UNDERRUN
     725             :  *
     726             :  *  @brief
     727             :  *    The TLV encoding ended prematurely.
     728             :  *
     729             :  */
     730             : #define CHIP_ERROR_TLV_UNDERRUN                                CHIP_CORE_ERROR(0x22)
     731             : 
     732             : /**
     733             :  *  @def CHIP_ERROR_INVALID_TLV_ELEMENT
     734             :  *
     735             :  *  @brief
     736             :  *    A TLV element is invalid.
     737             :  *
     738             :  */
     739             : #define CHIP_ERROR_INVALID_TLV_ELEMENT                         CHIP_CORE_ERROR(0x23)
     740             : 
     741             : /**
     742             :  *  @def CHIP_ERROR_INVALID_TLV_TAG
     743             :  *
     744             :  *  @brief
     745             :  *    A TLV tag is invalid.
     746             :  *
     747             :  */
     748             : #define CHIP_ERROR_INVALID_TLV_TAG                             CHIP_CORE_ERROR(0x24)
     749             : 
     750             : /**
     751             :  *  @def CHIP_ERROR_UNKNOWN_IMPLICIT_TLV_TAG
     752             :  *
     753             :  *  @brief
     754             :  *    An implicitly encoded TLV tag was encountered,
     755             :  *    but an implicit profile id has not been defined.
     756             :  *
     757             :  */
     758             : #define CHIP_ERROR_UNKNOWN_IMPLICIT_TLV_TAG                    CHIP_CORE_ERROR(0x25)
     759             : 
     760             : /**
     761             :  *  @def CHIP_ERROR_WRONG_TLV_TYPE
     762             :  *
     763             :  *  @brief
     764             :  *    A TLV type is wrong.
     765             :  *
     766             :  */
     767             : #define CHIP_ERROR_WRONG_TLV_TYPE                              CHIP_CORE_ERROR(0x26)
     768             : 
     769             : /**
     770             :  *  @def CHIP_ERROR_TLV_CONTAINER_OPEN
     771             :  *
     772             :  *  @brief
     773             :  *    A TLV container is unexpectedly open.
     774             :  *
     775             :  */
     776             : #define CHIP_ERROR_TLV_CONTAINER_OPEN                          CHIP_CORE_ERROR(0x27)
     777             : 
     778             : // AVAILABLE: 0x28
     779             : // AVAILABLE: 0x29
     780             : 
     781             : /**
     782             :  *  @def CHIP_ERROR_INVALID_MESSAGE_TYPE
     783             :  *
     784             :  *  @brief
     785             :  *    A message type is invalid.
     786             :  *
     787             :  */
     788             : #define CHIP_ERROR_INVALID_MESSAGE_TYPE                        CHIP_CORE_ERROR(0x2a)
     789             : 
     790             : /**
     791             :  *  @def CHIP_ERROR_UNEXPECTED_TLV_ELEMENT
     792             :  *
     793             :  *  @brief
     794             :  *    An unexpected TLV element was encountered.
     795             :  *
     796             :  */
     797             : #define CHIP_ERROR_UNEXPECTED_TLV_ELEMENT                      CHIP_CORE_ERROR(0x2b)
     798             : 
     799             : // AVAILABLE: 0x2c
     800             : 
     801             : /**
     802             :  *  @def CHIP_ERROR_NOT_IMPLEMENTED
     803             :  *
     804             :  *  @brief
     805             :  *    A requested function or feature is not implemented.
     806             :  *
     807             :  */
     808             : #define CHIP_ERROR_NOT_IMPLEMENTED                             CHIP_CORE_ERROR(0x2d)
     809             : 
     810             : /**
     811             :  *  @def CHIP_ERROR_INVALID_ADDRESS
     812             :  *
     813             :  *  @brief
     814             :  *    An address is invalid.
     815             :  *
     816             :  */
     817             : #define CHIP_ERROR_INVALID_ADDRESS                             CHIP_CORE_ERROR(0x2e)
     818             : 
     819             : /**
     820             :  *  @def CHIP_ERROR_INVALID_ARGUMENT
     821             :  *
     822             :  *  @brief
     823             :  *    An argument is invalid.
     824             :  *
     825             :  */
     826             : #define CHIP_ERROR_INVALID_ARGUMENT                            CHIP_CORE_ERROR(0x2f)
     827             : 
     828             : /**
     829             :  *  @def CHIP_ERROR_INVALID_PATH_LIST
     830             :  *
     831             :  *  @brief
     832             :  *    A TLV path list is invalid.
     833             :  *
     834             :  */
     835             : #define CHIP_ERROR_INVALID_PATH_LIST                           CHIP_CORE_ERROR(0x30)
     836             : 
     837             : /**
     838             :  *  @def CHIP_ERROR_INVALID_DATA_LIST
     839             :  *
     840             :  *  @brief
     841             :  *    A TLV data list is invalid.
     842             :  *
     843             :  */
     844             : #define CHIP_ERROR_INVALID_DATA_LIST                           CHIP_CORE_ERROR(0x31)
     845             : 
     846             : /**
     847             :  *  @def CHIP_ERROR_TIMEOUT
     848             :  *
     849             :  *  @brief
     850             :  *    A request timed out.
     851             :  *
     852             :  */
     853             : #define CHIP_ERROR_TIMEOUT                                     CHIP_CORE_ERROR(0x32)
     854             : 
     855             : /**
     856             :  *  @def CHIP_ERROR_INVALID_DEVICE_DESCRIPTOR
     857             :  *
     858             :  *  @brief
     859             :  *    A device descriptor is invalid.
     860             :  *
     861             :  */
     862             : #define CHIP_ERROR_INVALID_DEVICE_DESCRIPTOR                   CHIP_CORE_ERROR(0x33)
     863             : 
     864             : // AVAILABLE: 0x34
     865             : // AVAILABLE: 0x35
     866             : // AVAILABLE: 0x36
     867             : // AVAILABLE: 0x37
     868             : 
     869             : /**
     870             :  *  @def CHIP_ERROR_INVALID_PASE_PARAMETER
     871             :  *
     872             :  *  @brief
     873             :  *    A PASE parameter is invalid.
     874             :  *
     875             :  */
     876             : #define CHIP_ERROR_INVALID_PASE_PARAMETER                      CHIP_CORE_ERROR(0x38)
     877             : 
     878             : // AVAILABLE: 0x39
     879             : // AVAILABLE: 0x3a
     880             : 
     881             : /**
     882             :  *  @def CHIP_ERROR_INVALID_USE_OF_SESSION_KEY
     883             :  *
     884             :  *  @brief
     885             :  *    A use of session key is invalid.
     886             :  *
     887             :  */
     888             : #define CHIP_ERROR_INVALID_USE_OF_SESSION_KEY                  CHIP_CORE_ERROR(0x3b)
     889             : 
     890             : /**
     891             :  *  @def CHIP_ERROR_CONNECTION_CLOSED_UNEXPECTEDLY
     892             :  *
     893             :  *  @brief
     894             :  *    A connection is closed unexpectedly.
     895             :  *
     896             :  */
     897             : #define CHIP_ERROR_CONNECTION_CLOSED_UNEXPECTEDLY              CHIP_CORE_ERROR(0x3c)
     898             : 
     899             : /**
     900             :  *  @def CHIP_ERROR_MISSING_TLV_ELEMENT
     901             :  *
     902             :  *  @brief
     903             :  *    A TLV element is missing.
     904             :  *
     905             :  */
     906             : #define CHIP_ERROR_MISSING_TLV_ELEMENT                         CHIP_CORE_ERROR(0x3d)
     907             : 
     908             : /**
     909             :  *  @def CHIP_ERROR_RANDOM_DATA_UNAVAILABLE
     910             :  *
     911             :  *  @brief
     912             :  *    Secure random data is not available.
     913             :  *
     914             :  */
     915             : #define CHIP_ERROR_RANDOM_DATA_UNAVAILABLE                     CHIP_CORE_ERROR(0x3e)
     916             : 
     917             : // AVAILABLE: 0x3f
     918             : // AVAILABLE: 0x40
     919             : 
     920             : /**
     921             :  *  @def CHIP_ERROR_HOST_PORT_LIST_EMPTY
     922             :  *
     923             :  *  @brief
     924             :  *    A host/port list is empty.
     925             :  *
     926             :  */
     927             : #define CHIP_ERROR_HOST_PORT_LIST_EMPTY                        CHIP_CORE_ERROR(0x41)
     928             : 
     929             : // AVAILABLE: 0x42
     930             : // AVAILABLE: 0x43
     931             : // AVAILABLE: 0x44
     932             : 
     933             : /**
     934             :  *  @def CHIP_ERROR_FORCED_RESET
     935             :  *
     936             :  *  @brief
     937             :  *    A service manager is forced to reset.
     938             :  *
     939             :  */
     940             : #define CHIP_ERROR_FORCED_RESET                                CHIP_CORE_ERROR(0x45)
     941             : 
     942             : /**
     943             :  *  @def CHIP_ERROR_NO_ENDPOINT
     944             :  *
     945             :  *  @brief
     946             :  *    No endpoint is available.
     947             :  *
     948             :  */
     949             : #define CHIP_ERROR_NO_ENDPOINT                                 CHIP_CORE_ERROR(0x46)
     950             : 
     951             : /**
     952             :  *  @def CHIP_ERROR_INVALID_DESTINATION_NODE_ID
     953             :  *
     954             :  *  @brief
     955             :  *    A destination node id is invalid.
     956             :  *
     957             :  */
     958             : #define CHIP_ERROR_INVALID_DESTINATION_NODE_ID                 CHIP_CORE_ERROR(0x47)
     959             : 
     960             : /**
     961             :  *  @def CHIP_ERROR_NOT_CONNECTED
     962             :  *
     963             :  *  @brief
     964             :  *    The operation cannot be performed because the underlying object is not
     965             :  *    connected.
     966             :  *
     967             :  */
     968             : #define CHIP_ERROR_NOT_CONNECTED                               CHIP_CORE_ERROR(0x48)
     969             : 
     970             : // AVAILABLE: 0x49
     971             : 
     972             : /**
     973             :  *  @def CHIP_ERROR_CA_CERT_NOT_FOUND
     974             :  *
     975             :  *  @brief
     976             :  *    CA certificate is not found.
     977             :  *
     978             :  */
     979             : #define CHIP_ERROR_CA_CERT_NOT_FOUND                           CHIP_CORE_ERROR(0x4a)
     980             : 
     981             : /**
     982             :  *  @def CHIP_ERROR_CERT_PATH_LEN_CONSTRAINT_EXCEEDED
     983             :  *
     984             :  *  @brief
     985             :  *    A certificate path length exceeds the constraint.
     986             :  *
     987             :  */
     988             : #define CHIP_ERROR_CERT_PATH_LEN_CONSTRAINT_EXCEEDED           CHIP_CORE_ERROR(0x4b)
     989             : 
     990             : /**
     991             :  *  @def CHIP_ERROR_CERT_PATH_TOO_LONG
     992             :  *
     993             :  *  @brief
     994             :  *    A certificate path is too long.
     995             :  *
     996             :  */
     997             : #define CHIP_ERROR_CERT_PATH_TOO_LONG                          CHIP_CORE_ERROR(0x4c)
     998             : 
     999             : /**
    1000             :  *  @def CHIP_ERROR_CERT_USAGE_NOT_ALLOWED
    1001             :  *
    1002             :  *  @brief
    1003             :  *    A requested certificate usage is not allowed.
    1004             :  *
    1005             :  */
    1006             : #define CHIP_ERROR_CERT_USAGE_NOT_ALLOWED                      CHIP_CORE_ERROR(0x4d)
    1007             : 
    1008             : /**
    1009             :  *  @def CHIP_ERROR_CERT_EXPIRED
    1010             :  *
    1011             :  *  @brief
    1012             :  *    A certificate expired.
    1013             :  *
    1014             :  */
    1015             : #define CHIP_ERROR_CERT_EXPIRED                                CHIP_CORE_ERROR(0x4e)
    1016             : 
    1017             : /**
    1018             :  *  @def CHIP_ERROR_CERT_NOT_VALID_YET
    1019             :  *
    1020             :  *  @brief
    1021             :  *    A certificate is not valid yet.
    1022             :  *
    1023             :  */
    1024             : #define CHIP_ERROR_CERT_NOT_VALID_YET                          CHIP_CORE_ERROR(0x4f)
    1025             : 
    1026             : /**
    1027             :  *  @def CHIP_ERROR_UNSUPPORTED_CERT_FORMAT
    1028             :  *
    1029             :  *  @brief
    1030             :  *    A certificate format is unsupported.
    1031             :  *
    1032             :  */
    1033             : #define CHIP_ERROR_UNSUPPORTED_CERT_FORMAT                     CHIP_CORE_ERROR(0x50)
    1034             : 
    1035             : /**
    1036             :  *  @def CHIP_ERROR_UNSUPPORTED_ELLIPTIC_CURVE
    1037             :  *
    1038             :  *  @brief
    1039             :  *    An elliptic curve is unsupported.
    1040             :  *
    1041             :  */
    1042             : #define CHIP_ERROR_UNSUPPORTED_ELLIPTIC_CURVE                  CHIP_CORE_ERROR(0x51)
    1043             : 
    1044             : // AVAILABLE: 0x52
    1045             : 
    1046             : /**
    1047             :  *  @def CHIP_ERROR_CERT_NOT_FOUND
    1048             :  *
    1049             :  *  @brief
    1050             :  *    A certificate is not found.
    1051             :  *
    1052             :  */
    1053             : #define CHIP_ERROR_CERT_NOT_FOUND                              CHIP_CORE_ERROR(0x53)
    1054             : 
    1055             : /**
    1056             :  *  @def CHIP_ERROR_INVALID_CASE_PARAMETER
    1057             :  *
    1058             :  *  @brief
    1059             :  *    A CASE parameter is invalid.
    1060             :  *
    1061             :  */
    1062             : #define CHIP_ERROR_INVALID_CASE_PARAMETER                      CHIP_CORE_ERROR(0x54)
    1063             : 
    1064             : // AVAILABLE: 0x55
    1065             : 
    1066             : /**
    1067             :  *  @def CHIP_ERROR_CERT_LOAD_FAILED
    1068             :  *
    1069             :  *  @brief
    1070             :  *    A certificate load failed.
    1071             :  *
    1072             :  */
    1073             : #define CHIP_ERROR_CERT_LOAD_FAILED                            CHIP_CORE_ERROR(0x56)
    1074             : 
    1075             : /**
    1076             :  *  @def CHIP_ERROR_CERT_NOT_TRUSTED
    1077             :  *
    1078             :  *  @brief
    1079             :  *    A certificate is not trusted.
    1080             :  *
    1081             :  */
    1082             : #define CHIP_ERROR_CERT_NOT_TRUSTED                            CHIP_CORE_ERROR(0x57)
    1083             : 
    1084             : // AVAILABLE: 0x58
    1085             : 
    1086             : /**
    1087             :  *  @def CHIP_ERROR_WRONG_CERT_DN
    1088             :  *
    1089             :  *  @brief
    1090             :  *    A certificate subject/issuer distinguished name is wrong.
    1091             :  *
    1092             :  */
    1093             : #define CHIP_ERROR_WRONG_CERT_DN                               CHIP_CORE_ERROR(0x59)
    1094             : 
    1095             : // AVAILABLE: 0x5a
    1096             : // AVAILABLE: 0x5b
    1097             : 
    1098             : /**
    1099             :  *  @def CHIP_ERROR_WRONG_NODE_ID
    1100             :  *
    1101             :  *  @brief
    1102             :  *    A node id is wrong.
    1103             :  *
    1104             :  */
    1105             : #define CHIP_ERROR_WRONG_NODE_ID                               CHIP_CORE_ERROR(0x5c)
    1106             : 
    1107             : // AVAILABLE: 0x5d
    1108             : // AVAILABLE: 0x5e
    1109             : // AVAILABLE: 0x5f
    1110             : // AVAILABLE: 0x60
    1111             : // AVAILABLE: 0x61
    1112             : // AVAILABLE: 0x62
    1113             : // AVAILABLE: 0x63
    1114             : 
    1115             : /**
    1116             :  *  @def CHIP_ERROR_RETRANS_TABLE_FULL
    1117             :  *
    1118             :  *  @brief
    1119             :  *    A retransmission table is already full.
    1120             :  *
    1121             :  */
    1122             : #define CHIP_ERROR_RETRANS_TABLE_FULL                          CHIP_CORE_ERROR(0x64)
    1123             : 
    1124             : // AVAILABLE: 0x65
    1125             : // AVAILABLE: 0x66
    1126             : // AVAILABLE: 0x67
    1127             : 
    1128             : /**
    1129             :  *  @def CHIP_ERROR_TRANSACTION_CANCELED
    1130             :  *
    1131             :  *  @brief
    1132             :  *    A transaction is cancelled.
    1133             :  *
    1134             :  */
    1135             : #define CHIP_ERROR_TRANSACTION_CANCELED                        CHIP_CORE_ERROR(0x68)
    1136             : 
    1137             : // AVAILABLE: 0x69
    1138             : // AVAILABLE: 0x6a
    1139             : 
    1140             : /**
    1141             :  *  @def CHIP_ERROR_INVALID_SUBSCRIPTION
    1142             :  *
    1143             :  *  @brief
    1144             :  *    A message was received as part of a subscription exchange that has a mis-matching subscription id.
    1145             :  *
    1146             :  */
    1147             : #define CHIP_ERROR_INVALID_SUBSCRIPTION                               CHIP_CORE_ERROR(0x6b)
    1148             : 
    1149             : /**
    1150             :  *  @def CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE
    1151             :  *
    1152             :  *  @brief
    1153             :  *    A CHIP feature is unsupported.
    1154             :  *
    1155             :  */
    1156             : #define CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE                    CHIP_CORE_ERROR(0x6c)
    1157             : 
    1158             : /**
    1159             :  *  @def CHIP_ERROR_UNSOLICITED_MSG_NO_ORIGINATOR
    1160             :  *
    1161             :  *  @brief
    1162             :  *    An unsolicited message with the originator bit clear.
    1163             :  *
    1164             :  */
    1165             : #define CHIP_ERROR_UNSOLICITED_MSG_NO_ORIGINATOR               CHIP_CORE_ERROR(0x70)
    1166             : 
    1167             : /**
    1168             :  *  @def CHIP_ERROR_INVALID_FABRIC_INDEX
    1169             :  *
    1170             :  *  @brief
    1171             :  *    A fabric index is invalid.
    1172             :  *
    1173             :  */
    1174             : #define CHIP_ERROR_INVALID_FABRIC_INDEX                        CHIP_CORE_ERROR(0x71)
    1175             : 
    1176             : /**
    1177             :  *  @def CHIP_ERROR_TOO_MANY_CONNECTIONS
    1178             :  *
    1179             :  *  @brief
    1180             :  *    The attempt to allocate a connection object failed because too many
    1181             :  *    connections exist.
    1182             :  *
    1183             :  */
    1184             : #define CHIP_ERROR_TOO_MANY_CONNECTIONS                        CHIP_CORE_ERROR(0x72)
    1185             : 
    1186             : /**
    1187             :  * @def CHIP_ERROR_SHUT_DOWN
    1188             :  *
    1189             :  * @brief
    1190             :  *   The operation cancelled because a shut down was initiated
    1191             :  */
    1192             : #define CHIP_ERROR_SHUT_DOWN                                   CHIP_CORE_ERROR(0x73)
    1193             : 
    1194             : /**
    1195             :  * @def CHIP_ERROR_CANCELLED
    1196             :  *
    1197             :  * @brief
    1198             :  *   The operation has been cancelled, generally by calling a cancel/abort request.
    1199             :  */
    1200             : #define CHIP_ERROR_CANCELLED                                   CHIP_CORE_ERROR(0x74)
    1201             : 
    1202             : // AVAILABLE: 0x75
    1203             : 
    1204             : /**
    1205             :  *  @def CHIP_ERROR_TLV_TAG_NOT_FOUND
    1206             :  *
    1207             :  *  @brief
    1208             :  *    A specified TLV tag was not found.
    1209             :  *
    1210             :  */
    1211             : #define CHIP_ERROR_TLV_TAG_NOT_FOUND                           CHIP_CORE_ERROR(0x76)
    1212             : 
    1213             : /**
    1214             :  * @def CHIP_ERROR_MISSING_SECURE_SESSION
    1215             :  *
    1216             :  * @brief
    1217             :  *
    1218             :  *  A secure session is needed to do work, but is missing/is not present.
    1219             :  */
    1220             : #define CHIP_ERROR_MISSING_SECURE_SESSION                      CHIP_CORE_ERROR(0x77)
    1221             : 
    1222             : /**
    1223             :  * @def CHIP_ERROR_INVALID_ADMIN_SUBJECT
    1224             :  *
    1225             :  * @brief
    1226             :  *   The CaseAdminSubject field is not valid in AddNOC command.
    1227             :  *
    1228             :  */
    1229             : #define CHIP_ERROR_INVALID_ADMIN_SUBJECT                      CHIP_CORE_ERROR(0x78)
    1230             : 
    1231             : /**
    1232             :  * @def CHIP_ERROR_INSUFFICIENT_PRIVILEGE
    1233             :  *
    1234             :  * @brief
    1235             :  *   Required privilege was insufficient during an operation.
    1236             :  *
    1237             :  */
    1238             : #define CHIP_ERROR_INSUFFICIENT_PRIVILEGE                          CHIP_CORE_ERROR(0x79)
    1239             : 
    1240             : // AVAILABLE: 0x7a
    1241             : // AVAILABLE: 0x7b
    1242             : // AVAILABLE: 0x7c
    1243             : 
    1244             : /**
    1245             :  * @def CHIP_ERROR_MESSAGE_COUNTER_EXHAUSTED
    1246             :  *
    1247             :  * @brief
    1248             :  *   The message counter of the session is exhausted, the session should be closed.
    1249             :  */
    1250             : #define CHIP_ERROR_MESSAGE_COUNTER_EXHAUSTED                 CHIP_CORE_ERROR(0x7d)
    1251             : 
    1252             : /**
    1253             :  *  @def CHIP_ERROR_FABRIC_EXISTS
    1254             :  *
    1255             :  *  @brief
    1256             :  *    The fabric with the given fabric id and root public key already exists.
    1257             :  *
    1258             :  */
    1259             : #define CHIP_ERROR_FABRIC_EXISTS                               CHIP_CORE_ERROR(0x7e)
    1260             : 
    1261             : /**
    1262             :  *  @def CHIP_ERROR_ENDPOINT_EXISTS
    1263             :  *
    1264             :  *  @brief
    1265             :  *    The endpoint with the given endpoint id already exists.
    1266             :  *
    1267             :  */
    1268             : #define CHIP_ERROR_ENDPOINT_EXISTS                               CHIP_CORE_ERROR(0x7f)
    1269             : 
    1270             : /**
    1271             :  *  @def CHIP_ERROR_WRONG_ENCRYPTION_TYPE_FROM_PEER
    1272             :  *
    1273             :  *  @brief
    1274             :  *    The wrong encryption type error received from a peer node.
    1275             :  *
    1276             :  */
    1277             : #define CHIP_ERROR_WRONG_ENCRYPTION_TYPE_FROM_PEER             CHIP_CORE_ERROR(0x80)
    1278             : 
    1279             : // AVAILABLE: 0x81
    1280             : // AVAILABLE: 0x82
    1281             : // AVAILABLE: 0x83
    1282             : // AVAILABLE: 0x84
    1283             : 
    1284             : /**
    1285             :  *  @def CHIP_ERROR_INVALID_KEY_ID
    1286             :  *
    1287             :  *  @brief
    1288             :  *    A key id is invalid.
    1289             :  *
    1290             :  */
    1291             : #define CHIP_ERROR_INVALID_KEY_ID                              CHIP_CORE_ERROR(0x85)
    1292             : 
    1293             : /**
    1294             :  *  @def CHIP_ERROR_INVALID_TIME
    1295             :  *
    1296             :  *  @brief
    1297             :  *    Time has invalid value.
    1298             :  *
    1299             :  */
    1300             : #define CHIP_ERROR_INVALID_TIME                                CHIP_CORE_ERROR(0x86)
    1301             : 
    1302             : // AVAILABLE: 0x87
    1303             : // AVAILABLE: 0x88
    1304             : // AVAILABLE: 0x89
    1305             : // AVAILABLE: 0x8a
    1306             : // AVAILABLE: 0x8b
    1307             : // AVAILABLE: 0x8c
    1308             : // AVAILABLE: 0x8d
    1309             : 
    1310             : /**
    1311             :  *  @def CHIP_ERROR_SCHEMA_MISMATCH
    1312             :  *
    1313             :  *  @brief
    1314             :  *    A mismatch in schema was encountered.
    1315             :  *
    1316             :  */
    1317             : #define CHIP_ERROR_SCHEMA_MISMATCH                             CHIP_CORE_ERROR(0x8e)
    1318             : 
    1319             : /**
    1320             :  *  @def CHIP_ERROR_INVALID_INTEGER_VALUE
    1321             :  *
    1322             :  *  @brief
    1323             :  *    An integer does not have the kind of value we expect.
    1324             :  *
    1325             :  */
    1326             : #define CHIP_ERROR_INVALID_INTEGER_VALUE                       CHIP_CORE_ERROR(0x8f)
    1327             : 
    1328             : // AVAILABLE: 0x90
    1329             : // AVAILABLE: 0x91
    1330             : 
    1331             : /**
    1332             :  *  @def CHIP_ERROR_BAD_REQUEST
    1333             :  *
    1334             :  *  @brief
    1335             :  *    The request cannot be processed or fulfilled
    1336             :  *
    1337             :  */
    1338             : #define CHIP_ERROR_BAD_REQUEST                                 CHIP_CORE_ERROR(0x92)
    1339             : 
    1340             : // AVAILABLE: 0x93
    1341             : // AVAILABLE: 0x94
    1342             : // AVAILABLE: 0x95
    1343             : // AVAILABLE: 0x96
    1344             : // AVAILABLE: 0x97
    1345             : // AVAILABLE: 0x98
    1346             : // AVAILABLE: 0x99
    1347             : // AVAILABLE: 0x9a
    1348             : // AVAILABLE: 0x9b
    1349             : // AVAILABLE: 0x9c
    1350             : 
    1351             : /**
    1352             :  * @def CHIP_ERROR_WRONG_CERT_TYPE
    1353             :  *
    1354             :  * @brief
    1355             :  *   The presented certificate was of the wrong type.
    1356             :  */
    1357             : #define CHIP_ERROR_WRONG_CERT_TYPE                             CHIP_CORE_ERROR(0x9d)
    1358             : 
    1359             : // AVAILABLE: 0x9e
    1360             : 
    1361             : /**
    1362             :  *  @def CHIP_ERROR_PERSISTED_STORAGE_FAILED
    1363             :  *
    1364             :  *  @brief
    1365             :  *    Persisted storage memory read/write failure.
    1366             :  *
    1367             :  */
    1368             : #define CHIP_ERROR_PERSISTED_STORAGE_FAILED                    CHIP_CORE_ERROR(0x9f)
    1369             : 
    1370             : /**
    1371             :  *  @def CHIP_ERROR_PERSISTED_STORAGE_VALUE_NOT_FOUND
    1372             :  *
    1373             :  *  @brief
    1374             :  *    The specific value is not found in the persisted storage.
    1375             :  *
    1376             :  */
    1377             : #define CHIP_ERROR_PERSISTED_STORAGE_VALUE_NOT_FOUND           CHIP_CORE_ERROR(0xa0)
    1378             : 
    1379             : /**
    1380             :  * @def CHIP_ERROR_IM_FABRIC_DELETED
    1381             :  *
    1382             :  * @brief
    1383             :  *   The fabric is deleted, and the corresponding IM resources are released
    1384             :  */
    1385             : #define CHIP_ERROR_IM_FABRIC_DELETED                            CHIP_CORE_ERROR(0xa1)
    1386             : 
    1387             : // AVAILABLE: 0xa2
    1388             : // AVAILABLE: 0xa3
    1389             : 
    1390             : /**
    1391             :  * @def CHIP_ERROR_IN_PROGRESS
    1392             :  *
    1393             :  * @brief
    1394             :  *   The operation is still in progress
    1395             :  */
    1396             : #define CHIP_ERROR_IN_PROGRESS                                 CHIP_CORE_ERROR(0xa4)
    1397             : 
    1398             : /**
    1399             :  *  @def CHIP_ERROR_ACCESS_DENIED
    1400             :  *
    1401             :  *  @brief
    1402             :  *    The CHIP message is not granted access for further processing.
    1403             :  */
    1404             : #define CHIP_ERROR_ACCESS_DENIED                               CHIP_CORE_ERROR(0xa5)
    1405             : 
    1406             : /**
    1407             :  *  @def CHIP_ERROR_UNKNOWN_RESOURCE_ID
    1408             :  *
    1409             :  *  @brief
    1410             :  *    Unknown resource ID
    1411             :  *
    1412             :  */
    1413             : #define CHIP_ERROR_UNKNOWN_RESOURCE_ID                         CHIP_CORE_ERROR(0xa6)
    1414             : 
    1415             : /**
    1416             :  * @def CHIP_ERROR_VERSION_MISMATCH
    1417             :  *
    1418             :  * @brief
    1419             :  *   The conditional update of a trait instance path has failed
    1420             :  *   because the local changes are based on an obsolete version of the
    1421             :  *   data.
    1422             :  */
    1423             : #define CHIP_ERROR_VERSION_MISMATCH                            CHIP_CORE_ERROR(0xa7)
    1424             : 
    1425             : // AVAILABLE: 0xa8
    1426             : // AVAILABLE: 0xa9
    1427             : // AVAILABLE: 0xaa
    1428             : 
    1429             : /**
    1430             :  * @def CHIP_EVENT_ID_FOUND
    1431             :  *
    1432             :  * @brief
    1433             :  *   Event ID matching the criteria was found
    1434             :  */
    1435             : #define CHIP_ERROR_EVENT_ID_FOUND                              CHIP_CORE_ERROR(0xab)
    1436             : #define CHIP_EVENT_ID_FOUND CHIP_ERROR_EVENT_ID_FOUND
    1437             : 
    1438             : /**
    1439             :  * @def CHIP_ERROR_INTERNAL
    1440             :  *
    1441             :  * @brief
    1442             :  *   Internal error
    1443             :  */
    1444             : #define CHIP_ERROR_INTERNAL                                    CHIP_CORE_ERROR(0xac)
    1445             : 
    1446             : /**
    1447             :  * @def CHIP_ERROR_OPEN_FAILED
    1448             :  *
    1449             :  * @brief
    1450             :  *   Open file failed
    1451             :  */
    1452             : #define CHIP_ERROR_OPEN_FAILED                                 CHIP_CORE_ERROR(0xad)
    1453             : 
    1454             : /**
    1455             :  * @def CHIP_ERROR_READ_FAILED
    1456             :  *
    1457             :  * @brief
    1458             :  *   Read from file failed
    1459             :  */
    1460             : #define CHIP_ERROR_READ_FAILED                                 CHIP_CORE_ERROR(0xae)
    1461             : 
    1462             : /**
    1463             :  * @def CHIP_ERROR_WRITE_FAILED
    1464             :  *
    1465             :  * @brief
    1466             :  *   Write to file failed
    1467             :  */
    1468             : #define CHIP_ERROR_WRITE_FAILED                                CHIP_CORE_ERROR(0xaf)
    1469             : 
    1470             : /**
    1471             :  * @def CHIP_ERROR_DECODE_FAILED
    1472             :  *
    1473             :  * @brief
    1474             :  *   Decoding failed
    1475             :  */
    1476             : #define CHIP_ERROR_DECODE_FAILED                               CHIP_CORE_ERROR(0xb0)
    1477             : 
    1478             : // AVAILABLE: 0xb1
    1479             : // AVAILABLE: 0xb2
    1480             : 
    1481             : /**
    1482             :  *  @def CHIP_ERROR_DNS_SD_UNAUTHORIZED
    1483             :  *
    1484             :  *  @brief
    1485             :  *    The application is not authorized to do DNS_SD lookups.
    1486             :  *
    1487             :  */
    1488             : #define CHIP_ERROR_DNS_SD_UNAUTHORIZED                        CHIP_CORE_ERROR(0xb3)
    1489             : 
    1490             : /**
    1491             :  *  @def CHIP_ERROR_MDNS_COLLISION
    1492             :  *
    1493             :  *  @brief
    1494             :  *    The registered service name has collision on the LAN.
    1495             :  *
    1496             :  */
    1497             : #define CHIP_ERROR_MDNS_COLLISION                             CHIP_CORE_ERROR(0xb4)
    1498             : 
    1499             : /**
    1500             :  * @def CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_PATH_IB
    1501             :  *
    1502             :  * @brief
    1503             :  *   The Attribute path IB is malformed: it does not contain
    1504             :  *   the required path
    1505             :  */
    1506             : #define CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_PATH_IB                CHIP_CORE_ERROR(0xb5)
    1507             : 
    1508             : /**
    1509             :  * @def CHIP_ERROR_IM_MALFORMED_EVENT_PATH_IB
    1510             :  *
    1511             :  * @brief
    1512             :  *   The Event Path IB is malformed: it does not contain
    1513             :  *   the required elements
    1514             :  */
    1515             : #define CHIP_ERROR_IM_MALFORMED_EVENT_PATH_IB                     CHIP_CORE_ERROR(0xb6)
    1516             : 
    1517             : // AVAILABLE: 0xb7
    1518             : // AVAILABLE: 0xb8
    1519             : 
    1520             : /**
    1521             :  * @def CHIP_ERROR_IM_MALFORMED_COMMAND_DATA_IB
    1522             :  *
    1523             :  * @brief
    1524             :  *   The Command Data IB is malformed: it does not contain
    1525             :  *   the required elements
    1526             :  */
    1527             : #define CHIP_ERROR_IM_MALFORMED_COMMAND_DATA_IB           CHIP_CORE_ERROR(0xb9)
    1528             : 
    1529             : /**
    1530             :  * @def CHIP_ERROR_IM_MALFORMED_EVENT_DATA_IB
    1531             :  *
    1532             :  * @brief
    1533             :  *   The Event Data IB is malformed: it does not contain
    1534             :  *   the required elements
    1535             :  */
    1536             : #define CHIP_ERROR_IM_MALFORMED_EVENT_DATA_IB             CHIP_CORE_ERROR(0xba)
    1537             : 
    1538             : /**
    1539             :  * @def CHIP_ERROR_MAXIMUM_PATHS_PER_INVOKE_EXCEEDED
    1540             :  *
    1541             :  * @brief
    1542             :  *   Caller is trying to add more invoke command paths
    1543             :  *   than what the remote node reports supporting.
    1544             :  */
    1545             : #define CHIP_ERROR_MAXIMUM_PATHS_PER_INVOKE_EXCEEDED           CHIP_CORE_ERROR(0xbb)
    1546             : 
    1547             : /**
    1548             :  * @def CHIP_ERROR_PEER_NODE_NOT_FOUND
    1549             :  *
    1550             :  * @brief
    1551             :  *   Unable to find the peer node
    1552             :  */
    1553             : #define CHIP_ERROR_PEER_NODE_NOT_FOUND                         CHIP_CORE_ERROR(0xbc)
    1554             : 
    1555             : /**
    1556             :  * @def CHIP_ERROR_HSM
    1557             :  *
    1558             :  * @brief
    1559             :  *   Error in Hardware security module. Used for software fallback option.
    1560             :  */
    1561             : #define CHIP_ERROR_HSM                                         CHIP_CORE_ERROR(0xbd)
    1562             : 
    1563             : // AVAILABLE: 0xbe
    1564             : 
    1565             : /**
    1566             :  *  @def CHIP_ERROR_REAL_TIME_NOT_SYNCED
    1567             :  *
    1568             :  *  @brief
    1569             :  *      The system's real time clock is not synchronized to an accurate time source.
    1570             :  */
    1571             : #define CHIP_ERROR_REAL_TIME_NOT_SYNCED                        CHIP_CORE_ERROR(0xbf)
    1572             : 
    1573             : /**
    1574             :  *  @def CHIP_ERROR_UNEXPECTED_EVENT
    1575             :  *
    1576             :  *  @brief
    1577             :  *      An unexpected event was encountered.
    1578             :  */
    1579             : #define CHIP_ERROR_UNEXPECTED_EVENT                            CHIP_CORE_ERROR(0xc0)
    1580             : 
    1581             : /**
    1582             :  *  @def CHIP_ERROR_ENDPOINT_POOL_FULL
    1583             :  *
    1584             :  *  @brief
    1585             :  *    No endpoint pool entry is available.
    1586             :  *
    1587             :  */
    1588             : #define CHIP_ERROR_ENDPOINT_POOL_FULL                          CHIP_CORE_ERROR(0xc1)
    1589             : 
    1590             : /**
    1591             :  *  @def CHIP_ERROR_INBOUND_MESSAGE_TOO_BIG
    1592             :  *
    1593             :  *  @brief
    1594             :  *    More inbound message data is pending than available buffer space available to copy it.
    1595             :  *
    1596             :  */
    1597             : #define CHIP_ERROR_INBOUND_MESSAGE_TOO_BIG                     CHIP_CORE_ERROR(0xc2)
    1598             : 
    1599             : /**
    1600             :  *  @def CHIP_ERROR_OUTBOUND_MESSAGE_TOO_BIG
    1601             :  *
    1602             :  *  @brief
    1603             :  *    More outbound message data is pending than available buffer space available to copy it.
    1604             :  *
    1605             :  */
    1606             : #define CHIP_ERROR_OUTBOUND_MESSAGE_TOO_BIG                    CHIP_CORE_ERROR(0xc3)
    1607             : 
    1608             : /**
    1609             :  * @def CHIP_ERROR_DUPLICATE_MESSAGE_RECEIVED
    1610             :  *
    1611             :  * @brief
    1612             :  *   The received message is a duplicate of a previously received message.
    1613             :  */
    1614             : #define CHIP_ERROR_DUPLICATE_MESSAGE_RECEIVED                  CHIP_CORE_ERROR(0xc4)
    1615             : 
    1616             : /**
    1617             :  * @def CHIP_ERROR_INVALID_PUBLIC_KEY
    1618             :  *
    1619             :  * @brief
    1620             :  *   The received public key doesn't match locally generated key.
    1621             :  */
    1622             : #define CHIP_ERROR_INVALID_PUBLIC_KEY                          CHIP_CORE_ERROR(0xc5)
    1623             : 
    1624             : /**
    1625             :  * @def CHIP_ERROR_FABRIC_MISMATCH_ON_ICA
    1626             :  *
    1627             :  * @brief
    1628             :  *   The fabric ID in ICA certificate doesn't match the one in NOC.
    1629             :  */
    1630             : #define CHIP_ERROR_FABRIC_MISMATCH_ON_ICA                      CHIP_CORE_ERROR(0xc6)
    1631             : 
    1632             : // AVAILABLE: 0xc7
    1633             : // AVAILABLE: 0xc8
    1634             : 
    1635             : /**
    1636             :  * @def CHIP_ERROR_NO_SHARED_TRUSTED_ROOT
    1637             :  *
    1638             :  * @brief
    1639             :  *   The CASE session could not be established as peer's credentials do not have
    1640             :  *   a common root of trust.
    1641             :  */
    1642             : #define CHIP_ERROR_NO_SHARED_TRUSTED_ROOT                      CHIP_CORE_ERROR(0xc9)
    1643             : 
    1644             : /*
    1645             :  * @def CHIP_ERROR_IM_STATUS_CODE_RECEIVED
    1646             :  *
    1647             :  * @brief
    1648             :  *   Indicates an IM status code was received. Usually accompanied with
    1649             :  *   the actual IM status code.
    1650             :  */
    1651             : #define CHIP_ERROR_IM_STATUS_CODE_RECEIVED                     CHIP_CORE_ERROR(0xca)
    1652             : 
    1653             : // AVAILABLEL 0xcb
    1654             : // AVAILABLEL 0xcc
    1655             : // AVAILABLEL 0xcd
    1656             : // AVAILABLEL 0xce
    1657             : // AVAILABLEL 0xcf
    1658             : // AVAILABLEL 0xd0
    1659             : // AVAILABLEL 0xd1
    1660             : // AVAILABLEL 0xd2
    1661             : // AVAILABLEL 0xd3
    1662             : // AVAILABLEL 0xd4
    1663             : // AVAILABLEL 0xd5
    1664             : // AVAILABLEL 0xd6
    1665             : 
    1666             : /**
    1667             :  * @def CHIP_ERROR_IM_MALFORMED_DATA_VERSION_FILTER_IB
    1668             :  *
    1669             :  * @brief
    1670             :  *   The Data Version Filter IB is malformed: it does not contain
    1671             :  *   the required elements
    1672             :  */
    1673             : #define CHIP_ERROR_IM_MALFORMED_DATA_VERSION_FILTER_IB             CHIP_CORE_ERROR(0xd7)
    1674             : 
    1675             : /**
    1676             :  * @def CHIP_ERROR_NOT_FOUND
    1677             :  *
    1678             :  * @brief
    1679             :  *   The item referenced in the function call was not found
    1680             :  */
    1681             : #define CHIP_ERROR_NOT_FOUND                                       CHIP_CORE_ERROR(0xd8)
    1682             : 
    1683             : // AVAILABLE: 0xd9
    1684             : 
    1685             : /**
    1686             :  * @def CHIP_ERROR_INVALID_FILE_IDENTIFIER
    1687             :  *
    1688             :  * @brief
    1689             :  *   The file identifier, encoded in the first few bytes of a processed file,
    1690             :  *   has unexpected value.
    1691             :  */
    1692             : #define CHIP_ERROR_INVALID_FILE_IDENTIFIER                     CHIP_CORE_ERROR(0xda)
    1693             : 
    1694             : /**
    1695             :  * @def CHIP_ERROR_BUSY
    1696             :  *
    1697             :  * @brief
    1698             :  *   The Resource is busy and cannot process the request. Trying again might work.
    1699             :  */
    1700             : #define CHIP_ERROR_BUSY                                        CHIP_CORE_ERROR(0xdb)
    1701             : 
    1702             : /**
    1703             :   * @def CHIP_ERROR_MAX_RETRY_EXCEEDED
    1704             :   *
    1705             :   * @brief
    1706             :   *   The maximum retry limit has been exceeded.
    1707             :   */
    1708             :  #define CHIP_ERROR_MAX_RETRY_EXCEEDED                         CHIP_CORE_ERROR(0xdc)
    1709             : 
    1710             :  /**
    1711             :   * @def CHIP_ERROR_PROVIDER_LIST_EXHAUSTED
    1712             :   *
    1713             :   * @brief
    1714             :   *   The provider list has been exhausted.
    1715             :   */
    1716             :  #define CHIP_ERROR_PROVIDER_LIST_EXHAUSTED                    CHIP_CORE_ERROR(0xdd)
    1717             : 
    1718             : // AVAILABLE: 0xde
    1719             : 
    1720             : /**
    1721             :  * @def CHIP_ERROR_INVALID_SCHEME_PREFIX
    1722             :  *
    1723             :  * @brief
    1724             :  *   The scheme field contains an invalid prefix
    1725             :  */
    1726             : #define CHIP_ERROR_INVALID_SCHEME_PREFIX                      CHIP_CORE_ERROR(0xdf)
    1727             : 
    1728             : /**
    1729             :  * @def CHIP_ERROR_MISSING_URI_SEPARATOR
    1730             :  *
    1731             :  * @brief
    1732             :  *   The URI separator is missing
    1733             :  */
    1734             : #define CHIP_ERROR_MISSING_URI_SEPARATOR                      CHIP_CORE_ERROR(0xe0)
    1735             : 
    1736             : /**
    1737             :  * @def CHIP_ERROR_HANDLER_NOT_SET
    1738             :  *
    1739             :  * @brief
    1740             :  *   Callback function or callable object is not set
    1741             :  */
    1742             : #define CHIP_ERROR_HANDLER_NOT_SET                            CHIP_CORE_ERROR(0xe1)
    1743             : 
    1744             : // WHEN ADDING A NEW ERROR CODE: Look for "AVAILABLE" comments above and fill in gaps.
    1745             : 
    1746             : // clang-format on
    1747             : 
    1748             : // !!!!! IMPORTANT !!!!!  If you add new CHIP errors, please update the translation
    1749             : // of error codes to strings in CHIPError.cpp, and add them to kTestElements[]
    1750             : // in core/tests/TestCHIPErrorStr.cpp
    1751             : 
    1752             : namespace chip {
    1753             : 
    1754             : extern void RegisterCHIPLayerErrorFormatter();
    1755             : extern bool FormatCHIPError(char * buf, uint16_t bufSize, CHIP_ERROR err);
    1756             : 
    1757             : } // namespace chip

Generated by: LCOV version 1.14