Mayank Gupta / Mbed OS pelion-example-frdm

Dependencies:   FXAS21002 FXOS8700Q

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers pal_errors.h Source File

pal_errors.h

Go to the documentation of this file.
00001 // ----------------------------------------------------------------------------
00002 // Copyright 2016-2019 ARM Ltd.
00003 //
00004 // SPDX-License-Identifier: Apache-2.0
00005 //
00006 // Licensed under the Apache License, Version 2.0 (the "License");
00007 // you may not use this file except in compliance with the License.
00008 // You may obtain a copy of the License at
00009 //
00010 //     http://www.apache.org/licenses/LICENSE-2.0
00011 //
00012 // Unless required by applicable law or agreed to in writing, software
00013 // distributed under the License is distributed on an "AS IS" BASIS,
00014 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00015 // See the License for the specific language governing permissions and
00016 // limitations under the License.
00017 // ----------------------------------------------------------------------------
00018 
00019 #ifndef _PAL_ERRORS_H
00020 #define _PAL_ERRORS_H
00021 
00022 #ifdef __cplusplus
00023 extern "C" {
00024 #endif
00025 
00026 #include "pal_types.h"
00027 
00028 /*! \file pal_errors.h
00029  *  \brief PAL errors.
00030  *   This file contains enumeration for PAL errors. These errors are returned to the service layer.
00031  */
00032 
00033 #define PAL_ERR_MODULE_GENERAL_BASE             ((int32_t)0xFFFFFFF0) // -1 << 0x4
00034 #define PAL_ERR_MODULE_PAL_BASE                 ((int32_t)0xFFFFFFC0) // -1 << 0x6
00035 #define PAL_ERR_MODULE_C_BASE                   ((int32_t)0xFFFFFF00) // -1 << 0x8,
00036 #define PAL_ERR_MODULE_RTOS_BASE                ((int32_t)0xFFFFF000) // -1 << 0xC,
00037 #define PAL_ERR_MODULE_NET_BASE                 ((int32_t)0xFFFF0000) // -1 << 0x10,
00038 #define PAL_ERR_MODULE_TLS_BASE                 ((int32_t)0xFFF00000) // -1 << 0x14,
00039 #define PAL_ERR_MODULE_CRYPTO_BASE              ((int32_t)0xFF000000) // -1 << 0x18,
00040 #define PAL_ERR_MODULE_FILESYSTEM_BASE          ((int32_t)0xFC000000) // -1 << 0x1A,
00041 #define PAL_ERR_MODULE_INTERNAL_FLASH_BASE      ((int32_t)0xFC000500)
00042 #define PAL_ERR_MODULE_SST_BASE                 ((int32_t)0xFC000A00)
00043 #define PAL_ERR_MODULE_UPDATE_BASE              ((int32_t)0xF0000000) // -1 << 0x1C,
00044 #define PAL_ERR_MODULE_BITMASK_BASE             ((int32_t)0xE0000000)
00045 
00046 
00047 typedef enum {
00048     //Success Codes are positive
00049     PAL_SUCCESS = 0, //!< Generic success code
00050 
00051     //All errors are Negative
00052     // generic errors
00053     PAL_ERR_GENERAL_BASE =          PAL_ERR_MODULE_GENERAL_BASE,
00054     PAL_ERR_GENERIC_FAILURE  =       PAL_ERR_GENERAL_BASE,          /*!< Generic failure*/ // Try to use a more specific error message whenever possible.
00055     PAL_ERR_INVALID_ARGUMENT  =      PAL_ERR_GENERAL_BASE + 0x01,   /*!< One or more of the function arguments is invalid. */
00056     PAL_ERR_NO_MEMORY  =             PAL_ERR_GENERAL_BASE + 0x02,   /*!< Failure due to a failed attempt to allocate memory. */
00057     PAL_ERR_BUFFER_TOO_SMALL  =      PAL_ERR_GENERAL_BASE + 0x03,   /*!< The buffer given is too small. */
00058     PAL_ERR_NOT_SUPPORTED  =         PAL_ERR_GENERAL_BASE + 0x04,   /*!< The operation is not supported by PAL for the current configuration. */
00059     PAL_ERR_TIMEOUT_EXPIRED  =       PAL_ERR_GENERAL_BASE + 0x05,   /*!< The timeout for the operation has expired. */
00060     PAL_ERR_NOT_INITIALIZED  =       PAL_ERR_GENERAL_BASE + 0x06,   /*!< Component is not initialized */
00061     PAL_ERR_NULL_POINTER  =          PAL_ERR_GENERAL_BASE + 0x07,   /*!< Received a null pointer when it should be initialized. */
00062     PAL_ERR_CREATION_FAILED  =       PAL_ERR_GENERAL_BASE + 0x08,   /*!< Failure in creation of the given type, such as mutex or thread. */
00063     PAL_ERR_END_OF_FILE  =           PAL_ERR_GENERAL_BASE + 0x09,   /*!< The reading process finished because end of file reached. */
00064     PAL_ERR_INVALID_TIME  =          PAL_ERR_GENERAL_BASE + 0x0A,   /*!< Invalid time value. */
00065     PAL_ERR_GET_DEV_KEY  =           PAL_ERR_GENERAL_BASE + 0x0B,   /*!< Failure deriving the key from RoT. */
00066     PAL_ERR_TIME_TRANSLATE  =        PAL_ERR_GENERAL_BASE + 0x0C,   /*!< Failure to translate the time from "struct tm" to epoch time. */
00067     PAL_ERR_SYSCALL_FAILED  =        PAL_ERR_GENERAL_BASE + 0x0D,   /*!< Failure in making a system call using system, popen, exec and ect.*/
00068     PAL_ERR_INIT_SOTP_FAILED  =      PAL_ERR_GENERAL_BASE + 0x0E,   /*!< Failure of SOTP initialization.*/
00069 
00070     // pal errors
00071     PAL_ERR_NOT_IMPLEMENTED =                               PAL_ERR_MODULE_PAL_BASE,            /*! Failure due to being currently not implemented. */
00072     PAL_ERR_ITEM_NOT_EXIST  =                                PAL_ERR_NOT_IMPLEMENTED + 0x01,     /*! Failure, item does not exist. Used in Storage RBP */
00073     PAL_ERR_ITEM_EXIST  =                                    PAL_ERR_NOT_IMPLEMENTED + 0x02,     /*! Failure, item exists. Used in Storage RBP */
00074     
00075     // c errors
00076     // RTOS errors
00077     PAL_ERR_RTOS_ERROR_BASE  =                               PAL_ERR_MODULE_RTOS_BASE,           /*!< A generic failure in the RTOS module*/ // Try to use a more specific error message whenever possible. 
00078     PAL_ERR_RTOS_TRNG_FAILED  =                              PAL_ERR_MODULE_RTOS_BASE + 1,       /*!< Failed to get all the required random data */
00079     PAL_ERR_RTOS_TRNG_PARTIAL_DATA  =                        PAL_ERR_MODULE_RTOS_BASE + 2,       /*!< Got partial random data, instead of getting the full length */
00080     PAL_ERR_RTOS_PARAMETER  =                                PAL_ERR_RTOS_ERROR_BASE  + 0x80,     /*!< PAL mapping of CMSIS error `osErrorParameter`: A parameter error: A mandatory parameter was missing or specified an incorrect object. */
00081     PAL_ERR_RTOS_RESOURCE  =                                 PAL_ERR_RTOS_ERROR_BASE  + 0x81,     /*!< PAL mapping of CMSIS error `osErrorResource`: Resource not available: The specified resource was not available. */
00082     PAL_ERR_RTOS_TIMEOUT  =                                  PAL_ERR_RTOS_ERROR_BASE  + 0xC1,     /*!< PAL mapping of CMSIS error `osErrorTimeoutResource`: Resource not available within the given time: A specified resource was not available within the timeout period. */
00083     PAL_ERR_RTOS_ISR  =                                      PAL_ERR_RTOS_ERROR_BASE  + 0x82,     /*!< PAL mapping of CMSIS error `osErrorISR`: Not allowed in ISR context: The function cannot be called from interrupt service routines. */
00084     PAL_ERR_RTOS_ISR_RECURSIVE  =                            PAL_ERR_RTOS_ERROR_BASE  + 0x83,     /*!< PAL mapping of CMSIS error `osErrorISRRecursive`: Function called multiple times from ISR with same `object.c` */
00085     PAL_ERR_RTOS_PRIORITY  =                                 PAL_ERR_RTOS_ERROR_BASE  + 0x84,     /*!< PAL mapping of CMSIS error `osErrorPriority`: The system cannot determine the priority or the thread has illegal priority. */
00086     PAL_ERR_RTOS_NO_MEMORY  =                                PAL_ERR_RTOS_ERROR_BASE  + 0x85,     /*!< PAL mapping of CMSIS error `osErrorNoMemory`: The system is out of memory: It was impossible to allocate or reserve memory for the operation. */
00087     PAL_ERR_RTOS_VALUE  =                                    PAL_ERR_RTOS_ERROR_BASE  + 0x86,     /*!< PAL mapping of CMSIS error `osErrorValue`: The value of a parameter is out of range. */
00088     PAL_ERR_RTOS_TASK  =                                     PAL_ERR_RTOS_ERROR_BASE  + 0x87,     /*!< PAL mapping - Cannot kill own task. */
00089     PAL_ERR_RTOS_RECEIVED_LENGTH_IS_TOO_SHORT  =             PAL_ERR_RTOS_ERROR_BASE  + 0x88,     /*!< Key received by SOTP is not long enough. */
00090     PAL_ERR_RTOS_BUFFER_NOT_ALIGNED  =                       PAL_ERR_RTOS_ERROR_BASE  + 0x89,     /*!< Buffer not aligned to 32 bits*/
00091     PAL_ERR_RTOS_RTC_SET_TIME_ERROR =                       PAL_ERR_RTOS_ERROR_BASE  + 0x8A,
00092     PAL_ERR_RTOS_RTC_OPEN_DEVICE_ERROR =                    PAL_ERR_RTOS_ERROR_BASE  + 0x8B,
00093     PAL_ERR_RTOS_RTC_GET_TIME_ERROR =                       PAL_ERR_RTOS_ERROR_BASE  + 0x8C,
00094     PAL_ERR_RTOS_NO_PRIVILEGED  =                            PAL_ERR_RTOS_ERROR_BASE  + 0x8D,     /*!< Insufficient privilege*/
00095     PAL_ERR_RTOS_RTC_OPEN_IOCTL_ERROR =                     PAL_ERR_RTOS_ERROR_BASE  + 0x8E,
00096     PAL_ERR_NO_HIGH_RES_TIMER_LEFT  =                        PAL_ERR_RTOS_ERROR_BASE  + 0x8F,     /*!< only one high resolution timer at a time is supported by pal  */
00097     PAL_ERR_RTOS_NOISE_BUFFER_FULL  =                        PAL_ERR_RTOS_ERROR_BASE  + 0x90,     /*!< Noise buffer is full. */
00098     PAL_ERR_RTOS_NOISE_BUFFER_IS_READING  =                  PAL_ERR_RTOS_ERROR_BASE  + 0x91,     /*!< Noise buffer is currently being read, and writes are not allowed while reading. */
00099     PAL_ERR_RTOS_NOISE_BUFFER_EMPTY  =                       PAL_ERR_RTOS_ERROR_BASE  + 0x92,     /*!< Noise buffer is empty. */
00100     PAL_ERR_RTOS_NOISE_BUFFER_NOT_FULL  =                    PAL_ERR_RTOS_ERROR_BASE  + 0x93,     /*!< Noise buffer is not full. */
00101     PAL_ERR_RTOS_OS  =                                       PAL_ERR_RTOS_ERROR_BASE  + 0xFF,     /*!< PAL mapping of CMSIS error `osErrorOS`: An unspecified RTOS error: Run-time error but no other error message fits. */
00102 
00103     // Network errors.
00104     PAL_ERR_SOCKET_ERROR_BASE  =                             PAL_ERR_MODULE_NET_BASE,            /*!< Generic socket error. */
00105     PAL_ERR_SOCKET_GENERIC  =                                PAL_ERR_SOCKET_ERROR_BASE ,          /*!< Generic socket error */
00106     PAL_ERR_SOCKET_NO_BUFFERS  =                             PAL_ERR_SOCKET_ERROR_BASE  + 1,      /*!< No buffers - PAL mapping of Posix error ENOBUFS. */
00107     PAL_ERR_SOCKET_HOST_UNREACHABLE  =                       PAL_ERR_SOCKET_ERROR_BASE  + 2,      /*!< Host unreachable (routing error) - PAL mapping of Posix error EHOSTUNREACH. */
00108     PAL_ERR_SOCKET_IN_PROGRES  =                             PAL_ERR_SOCKET_ERROR_BASE  + 3,      /*!< In progress - PAL mapping of Posix error EINPROGRESS. */
00109     PAL_ERR_SOCKET_INVALID_VALUE  =                          PAL_ERR_SOCKET_ERROR_BASE  + 4,      /*!< Invalid value - PAL mapping of Posix error EINVAL*/
00110     PAL_ERR_SOCKET_WOULD_BLOCK  =                            PAL_ERR_SOCKET_ERROR_BASE  + 5,      /*!< Would block - PAL mapping of Posix error EWOULDBLOCK. */
00111     PAL_ERR_SOCKET_ADDRESS_IN_USE  =                         PAL_ERR_SOCKET_ERROR_BASE  + 6,      /*!< Address in use - PAL mapping of Posix error EADDRINUSE. */
00112     PAL_ERR_SOCKET_ALREADY_CONNECTED  =                      PAL_ERR_SOCKET_ERROR_BASE  + 7,      /*!< Already connected - PAL mapping of Posix error EALREADY. */
00113     PAL_ERR_SOCKET_CONNECTION_ABORTED  =                     PAL_ERR_SOCKET_ERROR_BASE  + 8,      /*!< Connection aborted - PAL mapping of Posix error ECONNABORTED. */
00114     PAL_ERR_SOCKET_CONNECTION_RESET  =                       PAL_ERR_SOCKET_ERROR_BASE  + 9,      /*!< Connection reset - PAL mapping of Posix error ECONNRESET. */
00115     PAL_ERR_SOCKET_NOT_CONNECTED  =                          PAL_ERR_SOCKET_ERROR_BASE  + 10,     /*!< Not connected - PAL mapping of Posix error ENOTCONN. */
00116     PAL_ERR_SOCKET_INPUT_OUTPUT_ERROR  =                     PAL_ERR_SOCKET_ERROR_BASE  + 11,     /*!< I/O error - PAL mapping of Posix error EIO. */
00117     PAL_ERR_SOCKET_CONNECTION_CLOSED  =                      PAL_ERR_SOCKET_ERROR_BASE  + 12,     /*!< Connection closed. */
00118     PAL_ERR_SOCKET_FAILED_TO_SET_SOCKET_TO_NON_BLOCKING  =   PAL_ERR_SOCKET_ERROR_BASE  + 13,     /*!< Failed to set the socket to non-blocking. */
00119     PAL_ERR_SOCKET_INVALID_ADDRESS_FAMILY  =                 PAL_ERR_SOCKET_ERROR_BASE  + 14,     /*!< Invalid Address family field. */
00120     PAL_ERR_SOCKET_INVALID_ADDRESS  =                        PAL_ERR_SOCKET_ERROR_BASE  + 15,     /*!< Address given was not valid/found. */
00121     PAL_ERR_SOCKET_DNS_ERROR  =                              PAL_ERR_SOCKET_ERROR_BASE  + 16,     /*!< DNS lookup error. */
00122     PAL_ERR_SOCKET_HDCP_ERROR  =                             PAL_ERR_SOCKET_ERROR_BASE  + 17,     /*!< HDCP error. */
00123     PAL_ERR_SOCKET_AUTH_ERROR  =                             PAL_ERR_SOCKET_ERROR_BASE  + 18,     /*!< Authentication error. */
00124     PAL_ERR_SOCKET_OPTION_NOT_SUPPORTED  =                   PAL_ERR_SOCKET_ERROR_BASE  + 19,     /*!< Socket option not supported. */
00125     PAL_ERR_SOCKET_SEND_BUFFER_TOO_BIG  =                    PAL_ERR_SOCKET_ERROR_BASE  + 20,     /*!< Buffer sent too large (over supported MTU). */
00126     PAL_ERR_SOCKET_ALLOCATION_FAILED  =                      PAL_ERR_SOCKET_ERROR_BASE  + 21,     /*!< Failed to allocate the socket. */
00127     PAL_ERR_SOCKET_OPERATION_NOT_PERMITTED  =                PAL_ERR_SOCKET_ERROR_BASE  + 22,     /*!< operation not permitted */
00128     PAL_ERR_SOCKET_MAX_NUMBER_OF_INTERFACES_REACHED  =       PAL_ERR_SOCKET_ERROR_BASE  + 23,     /*!< Failed to register the new interface. */
00129     PAL_ERR_SOCKET_INTERRUPTED   =                           PAL_ERR_SOCKET_ERROR_BASE  + 24,     /*!< Function call interrupted. */
00130 
00131     //TLS errors
00132     PAL_ERR_TLS_ERROR_BASE =                                PAL_ERR_MODULE_TLS_BASE,
00133     PAL_ERR_TLS_INIT =                                      PAL_ERR_TLS_ERROR_BASE,
00134     PAL_ERR_TLS_RESOURCE =                                  PAL_ERR_TLS_ERROR_BASE + 1,
00135     PAL_ERR_TLS_CONFIG_INIT =                               PAL_ERR_TLS_ERROR_BASE + 2,
00136     PAL_ERR_TLS_CONTEXT_NOT_INITIALIZED =                   PAL_ERR_TLS_ERROR_BASE + 3,
00137     PAL_ERR_TLS_INVALID_CIPHER =                            PAL_ERR_TLS_ERROR_BASE + 4,
00138     PAL_ERR_TLS_WANT_READ =                                 PAL_ERR_TLS_ERROR_BASE + 5,
00139     PAL_ERR_TLS_WANT_WRITE =                                PAL_ERR_TLS_ERROR_BASE + 6,
00140     PAL_ERR_TLS_CLIENT_RECONNECT =                          PAL_ERR_TLS_ERROR_BASE + 7,
00141     PAL_ERR_TLS_BAD_INPUT_DATA =                            PAL_ERR_TLS_ERROR_BASE + 8,
00142     PAL_ERR_TLS_HELLO_VERIFY_REQUIRED =                     PAL_ERR_TLS_ERROR_BASE + 9,
00143     PAL_ERR_TLS_FAILED_TO_PARSE_CERT =                      PAL_ERR_TLS_ERROR_BASE + 10,
00144     PAL_ERR_TLS_FAILED_TO_PARSE_KEY =                       PAL_ERR_TLS_ERROR_BASE + 11,
00145     PAL_ERR_TLS_FAILED_TO_SET_CERT =                        PAL_ERR_TLS_ERROR_BASE + 12,
00146     PAL_ERR_TLS_PEER_CLOSE_NOTIFY =                         PAL_ERR_TLS_ERROR_BASE + 13,
00147     PAL_ERR_TLS_MULTIPLE_HANDSHAKE =                        PAL_ERR_TLS_ERROR_BASE + 14,
00148 
00149     //Update errors
00150     PAL_ERR_UPDATE_ERROR_BASE =                             PAL_ERR_MODULE_UPDATE_BASE,         /*! Generic error. */
00151     PAL_ERR_UPDATE_ERROR  =                                  PAL_ERR_UPDATE_ERROR_BASE,          /*! Unknown error. */
00152     PAL_ERR_UPDATE_BUSY  =                                   PAL_ERR_UPDATE_ERROR_BASE + 1,      /*! Unknown error. */
00153     PAL_ERR_UPDATE_TIMEOUT  =                                PAL_ERR_UPDATE_ERROR_BASE + 2,      /*! Unknown error. */
00154     PAL_ERR_UPDATE_OUT_OF_BOUNDS  =                          PAL_ERR_UPDATE_ERROR_BASE + 3,      /*! Unknown error. */
00155     PAL_ERR_UPDATE_PALFROM_API  =                            PAL_ERR_UPDATE_ERROR_BASE + 4,      /*! Unknown error. */
00156     PAL_ERR_UPDATE_PALFROM_IO  =                             PAL_ERR_UPDATE_ERROR_BASE + 5,      /*! Unknown error. */
00157     PAL_ERR_UPDATE_END_OF_IMAGE  =                           PAL_ERR_UPDATE_ERROR_BASE + 6,      /*! Unknown error. */
00158     PAL_ERR_UPDATE_CHUNK_TO_SMALL  =                         PAL_ERR_UPDATE_ERROR_BASE + 7,      /*! Unknown error. */
00159 
00160     //Crypto errors
00161     PAL_ERR_CRYPTO_ERROR_BASE  =                             PAL_ERR_MODULE_CRYPTO_BASE,
00162     PAL_ERR_AES_INVALID_KEY_LENGTH =                        PAL_ERR_CRYPTO_ERROR_BASE ,
00163     PAL_ERR_CERT_PARSING_FAILED =                           PAL_ERR_CRYPTO_ERROR_BASE  + 1,
00164     PAL_ERR_INVALID_MD_TYPE =                               PAL_ERR_CRYPTO_ERROR_BASE  + 2,
00165     PAL_ERR_MD_BAD_INPUT_DATA =                             PAL_ERR_CRYPTO_ERROR_BASE  + 3,
00166     PAL_ERR_PK_SIG_VERIFY_FAILED =                          PAL_ERR_CRYPTO_ERROR_BASE  + 4,
00167     PAL_ERR_ASN1_UNEXPECTED_TAG =                           PAL_ERR_CRYPTO_ERROR_BASE  + 5,
00168     PAL_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED =                PAL_ERR_CRYPTO_ERROR_BASE  + 6,
00169     PAL_ERR_CTR_DRBG_REQUEST_TOO_BIG =                      PAL_ERR_CRYPTO_ERROR_BASE  + 7,
00170     PAL_ERR_ECP_BAD_INPUT_DATA =                            PAL_ERR_CRYPTO_ERROR_BASE  + 8,
00171     PAL_ERR_MPI_ALLOC_FAILED =                              PAL_ERR_CRYPTO_ERROR_BASE  + 9,
00172     PAL_ERR_ECP_FEATURE_UNAVAILABLE =                       PAL_ERR_CRYPTO_ERROR_BASE  + 10,
00173     PAL_ERR_ECP_BUFFER_TOO_SMALL =                          PAL_ERR_CRYPTO_ERROR_BASE  + 11,
00174     PAL_ERR_MPI_BUFFER_TOO_SMALL =                          PAL_ERR_CRYPTO_ERROR_BASE  + 12,
00175     PAL_ERR_CMAC_GENERIC_FAILURE =                          PAL_ERR_CRYPTO_ERROR_BASE  + 13,
00176     PAL_ERR_NOT_SUPPORTED_ASN_TAG =                         PAL_ERR_CRYPTO_ERROR_BASE  + 14,
00177     PAL_ERR_PRIVATE_KEY_BAD_DATA =                          PAL_ERR_CRYPTO_ERROR_BASE  + 15,
00178     PAL_ERR_PRIVATE_KEY_VARIFICATION_FAILED =               PAL_ERR_CRYPTO_ERROR_BASE  + 16,
00179     PAL_ERR_PUBLIC_KEY_BAD_DATA =                           PAL_ERR_CRYPTO_ERROR_BASE  + 17,
00180     PAL_ERR_PUBLIC_KEY_VARIFICATION_FAILED =                PAL_ERR_CRYPTO_ERROR_BASE  + 18,
00181     PAL_ERR_NOT_SUPPORTED_CURVE =                           PAL_ERR_CRYPTO_ERROR_BASE  + 19,
00182     PAL_ERR_GROUP_LOAD_FAILED =                             PAL_ERR_CRYPTO_ERROR_BASE  + 20,
00183     PAL_ERR_PARSING_PRIVATE_KEY =                           PAL_ERR_CRYPTO_ERROR_BASE  + 21,
00184     PAL_ERR_PARSING_PUBLIC_KEY =                            PAL_ERR_CRYPTO_ERROR_BASE  + 22,
00185     PAL_ERR_KEYPAIR_GEN_FAIL =                              PAL_ERR_CRYPTO_ERROR_BASE  + 23,
00186     PAL_ERR_X509_UNKNOWN_OID =                              PAL_ERR_CRYPTO_ERROR_BASE  + 24,
00187     PAL_ERR_X509_INVALID_NAME =                             PAL_ERR_CRYPTO_ERROR_BASE  + 25,
00188     PAL_ERR_FAILED_TO_SET_KEY_USAGE =                       PAL_ERR_CRYPTO_ERROR_BASE  + 26,
00189     PAL_ERR_INVALID_KEY_USAGE =                             PAL_ERR_CRYPTO_ERROR_BASE  + 27,
00190     PAL_ERR_SET_EXTENSION_FAILED =                          PAL_ERR_CRYPTO_ERROR_BASE  + 28,
00191     PAL_ERR_CSR_WRITE_DER_FAILED =                          PAL_ERR_CRYPTO_ERROR_BASE  + 29,
00192     PAL_ERR_FAILED_TO_COPY_KEYPAIR =                        PAL_ERR_CRYPTO_ERROR_BASE  + 30,
00193     PAL_ERR_FAILED_TO_COPY_GROUP =                          PAL_ERR_CRYPTO_ERROR_BASE  + 31,
00194     PAL_ERR_FAILED_TO_WRITE_SIGNATURE =                     PAL_ERR_CRYPTO_ERROR_BASE  + 32,
00195     PAL_ERR_FAILED_TO_VERIFY_SIGNATURE =                    PAL_ERR_CRYPTO_ERROR_BASE  + 33,
00196     PAL_ERR_FAILED_TO_WRITE_PRIVATE_KEY =                   PAL_ERR_CRYPTO_ERROR_BASE  + 34,
00197     PAL_ERR_FAILED_TO_WRITE_PUBLIC_KEY  =                   PAL_ERR_CRYPTO_ERROR_BASE  + 35,
00198     PAL_ERR_FAILED_TO_COMPUTE_SHRED_KEY =                   PAL_ERR_CRYPTO_ERROR_BASE  + 36,
00199     PAL_ERR_INVALID_X509_ATTR =                             PAL_ERR_CRYPTO_ERROR_BASE  + 37,
00200     PAL_ERR_INVALID_CIPHER_ID =                             PAL_ERR_CRYPTO_ERROR_BASE  + 38,
00201     PAL_ERR_CMAC_START_FAILED =                             PAL_ERR_CRYPTO_ERROR_BASE  + 39,
00202     PAL_ERR_CMAC_UPDATE_FAILED =                            PAL_ERR_CRYPTO_ERROR_BASE  + 40,
00203     PAL_ERR_CMAC_FINISH_FAILED =                            PAL_ERR_CRYPTO_ERROR_BASE  + 41,
00204     PAL_ERR_INVALID_IOD =                                   PAL_ERR_CRYPTO_ERROR_BASE  + 42,
00205     PAL_ERR_PK_UNKNOWN_PK_ALG =                             PAL_ERR_CRYPTO_ERROR_BASE  + 43,
00206     PAL_ERR_PK_KEY_INVALID_VERSION =                        PAL_ERR_CRYPTO_ERROR_BASE  + 44,
00207     PAL_ERR_PK_KEY_INVALID_FORMAT =                         PAL_ERR_CRYPTO_ERROR_BASE  + 45,
00208     PAL_ERR_PK_PASSWORD_REQUIRED =                          PAL_ERR_CRYPTO_ERROR_BASE  + 46,
00209     PAL_ERR_PK_INVALID_PUBKEY_AND_ASN1_LEN_MISMATCH =       PAL_ERR_CRYPTO_ERROR_BASE  + 47,
00210     PAL_ERR_ECP_INVALID_KEY =                               PAL_ERR_CRYPTO_ERROR_BASE  + 48,
00211     PAL_ERR_FAILED_SET_TIME_CB =                            PAL_ERR_CRYPTO_ERROR_BASE  + 49,
00212     PAL_ERR_HMAC_GENERIC_FAILURE =                          PAL_ERR_CRYPTO_ERROR_BASE  + 50,
00213     PAL_ERR_X509_CERT_VERIFY_FAILED =                       PAL_ERR_CRYPTO_ERROR_BASE  + 51,
00214     PAL_ERR_FAILED_TO_SET_EXT_KEY_USAGE =                   PAL_ERR_CRYPTO_ERROR_BASE  + 52,
00215     PAL_ERR_CRYPTO_ALLOC_FAILED =                           PAL_ERR_CRYPTO_ERROR_BASE  + 53,
00216     PAL_ERR_ENTROPY_EXISTS =                                PAL_ERR_CRYPTO_ERROR_BASE  + 54,
00217     PAL_ERR_ENTROPY_TOO_LARGE =                             PAL_ERR_CRYPTO_ERROR_BASE  + 55,
00218     PAL_ERR_CTR_DRBG_NOT_SEEDED =                           PAL_ERR_CRYPTO_ERROR_BASE  + 56,
00219     PAL_ERR_X509_BADCERT_EXPIRED =                          PAL_ERR_MODULE_BITMASK_BASE + 0x01, //!< Value must not be changed in order to be able to create bit mask
00220     PAL_ERR_X509_BADCERT_FUTURE =                           PAL_ERR_MODULE_BITMASK_BASE + 0x02, //!< Value must not be changed in order to be able to create bit mask
00221     PAL_ERR_X509_BADCERT_BAD_MD =                           PAL_ERR_MODULE_BITMASK_BASE + 0x04, //!< Value must not be changed in order to be able to create bit mask
00222     PAL_ERR_X509_BADCERT_BAD_PK =                           PAL_ERR_MODULE_BITMASK_BASE + 0x08, //!< Value must not be changed in order to be able to create bit mask
00223     PAL_ERR_X509_BADCERT_NOT_TRUSTED =                      PAL_ERR_MODULE_BITMASK_BASE + 0x10, //!< Value must not be changed in order to be able to create bit mask
00224     PAL_ERR_X509_BADCERT_BAD_KEY =                          PAL_ERR_MODULE_BITMASK_BASE + 0x20, //!< Value must not be changed in order to be able to create bit mask
00225 
00226     //Filesystem errors
00227     PAL_ERR_FILESYSTEM_ERROR_BASE =                         PAL_ERR_MODULE_FILESYSTEM_BASE,
00228     PAL_ERR_FS_OFFSET_ERROR =                               PAL_ERR_FILESYSTEM_ERROR_BASE + 1,  //!< Offset given is greater than the EOF.
00229     PAL_ERR_FS_ACCESS_DENIED =                              PAL_ERR_FILESYSTEM_ERROR_BASE + 2,  //!< No permission to execute the command due to Permission, file in use.
00230     PAL_ERR_FS_NAME_ALREADY_EXIST =                         PAL_ERR_FILESYSTEM_ERROR_BASE + 3,  //!< Pathname or filename already exists.
00231     PAL_ERR_FS_INSUFFICIENT_SPACE =                         PAL_ERR_FILESYSTEM_ERROR_BASE + 4,  //!< Insufficient space to execute the command.
00232     PAL_ERR_FS_INVALID_FILE_NAME =                          PAL_ERR_FILESYSTEM_ERROR_BASE + 5,  //!< File name not valid.
00233     PAL_ERR_FS_BAD_FD =                                     PAL_ERR_FILESYSTEM_ERROR_BASE + 6,  //!< Bad file descriptor pointer.
00234     PAL_ERR_FS_INVALID_ARGUMENT =                           PAL_ERR_FILESYSTEM_ERROR_BASE + 7,  //!< Invalid argument in calling function.
00235     PAL_ERR_FS_NO_FILE =                                    PAL_ERR_FILESYSTEM_ERROR_BASE + 8,  //!< Could not find the file.
00236     PAL_ERR_FS_NO_PATH =                                    PAL_ERR_FILESYSTEM_ERROR_BASE + 9,  //!< Could not find the path.
00237     PAL_ERR_FS_DIR_NOT_EMPTY =                              PAL_ERR_FILESYSTEM_ERROR_BASE + 10, //!< Directory not empty.
00238     PAL_ERR_FS_INVALID_FS =                                 PAL_ERR_FILESYSTEM_ERROR_BASE + 11, //!< Invalid file system mounting or drive.
00239     PAL_ERR_FS_TOO_MANY_OPEN_FD =                           PAL_ERR_FILESYSTEM_ERROR_BASE + 12, //!< Too many open file descriptors simultaneously.
00240     PAL_ERR_FS_FILENAME_LENGTH =                            PAL_ERR_FILESYSTEM_ERROR_BASE + 13, //!< File name is too long or invalid.
00241     PAL_ERR_FS_LENGTH_ERROR =                               PAL_ERR_FILESYSTEM_ERROR_BASE + 14, //!< Given length to read/write is wrong.
00242     PAL_ERR_FS_BUFFER_ERROR =                               PAL_ERR_FILESYSTEM_ERROR_BASE + 15, //!< Given buffer is not initialized.
00243     PAL_ERR_FS_ERROR =                                      PAL_ERR_FILESYSTEM_ERROR_BASE + 16, //!< Generic file system error.
00244     PAL_ERR_FS_BUSY =                                       PAL_ERR_FILESYSTEM_ERROR_BASE + 17, //!< File/directory is open.
00245     PAL_ERR_FS_INVALID_OPEN_FLAGS =                         PAL_ERR_FILESYSTEM_ERROR_BASE + 18, //!< File open mode is invalid.
00246     PAL_ERR_FS_FILE_IS_DIR =                                PAL_ERR_FILESYSTEM_ERROR_BASE + 19, //!< File path given is a directory, not a file.
00247     PAL_ERR_FS_ERROR_IN_SEARCHING =                         PAL_ERR_FILESYSTEM_ERROR_BASE + 20, //!< Next file in directory could not be found.
00248     PAL_ERR_FS_DISK_ERR =                                   PAL_ERR_FILESYSTEM_ERROR_BASE + 21, //!< A hard error occurred in the low level disk I/O layer.
00249 
00250     //Internal flash errors
00251     PAL_ERR_INTERNAL_FLASH_ERROR_BASE =                     PAL_ERR_MODULE_INTERNAL_FLASH_BASE,
00252     PAL_ERR_INTERNAL_FLASH_GENERIC_FAILURE =                PAL_ERR_MODULE_INTERNAL_FLASH_BASE + 0x01,
00253     PAL_ERR_INTERNAL_FLASH_SECTOR_NOT_ALIGNED =             PAL_ERR_MODULE_INTERNAL_FLASH_BASE + 0x02,
00254     PAL_ERR_INTERNAL_FLASH_ADDRESS_NOT_ALIGNED =            PAL_ERR_MODULE_INTERNAL_FLASH_BASE + 0x03,
00255     PAL_ERR_INTERNAL_FLASH_CROSSING_SECTORS =               PAL_ERR_MODULE_INTERNAL_FLASH_BASE + 0x04,
00256     PAL_ERR_INTERNAL_FLASH_NULL_PTR_RECEIVED =              PAL_ERR_MODULE_INTERNAL_FLASH_BASE + 0x05,
00257     PAL_ERR_INTERNAL_FLASH_WRONG_SIZE =                     PAL_ERR_MODULE_INTERNAL_FLASH_BASE + 0x06,
00258     PAL_ERR_INTERNAL_FLASH_BUFFER_ADDRESS_NOT_ALIGNED =     PAL_ERR_MODULE_INTERNAL_FLASH_BASE + 0x07,
00259     PAL_ERR_INTERNAL_FLASH_INIT_ERROR =                     PAL_ERR_MODULE_INTERNAL_FLASH_BASE + 0x08,
00260     PAL_ERR_INTERNAL_FLASH_WRITE_ERROR =                    PAL_ERR_MODULE_INTERNAL_FLASH_BASE + 0x09,
00261     PAL_ERR_INTERNAL_FLASH_BUFFER_SIZE_NOT_ALIGNED =        PAL_ERR_MODULE_INTERNAL_FLASH_BASE + 0x0A,
00262     PAL_ERR_INTERNAL_FLASH_ERASE_ERROR =                    PAL_ERR_MODULE_INTERNAL_FLASH_BASE + 0x0B,
00263     PAL_ERR_INTERNAL_FLASH_NOT_INIT_ERROR =                 PAL_ERR_MODULE_INTERNAL_FLASH_BASE + 0x0C,
00264     PAL_ERR_INTERNAL_FLASH_MUTEX_RELEASE_ERROR =            PAL_ERR_MODULE_INTERNAL_FLASH_BASE + 0x0D, //!< One or more Mutex commands (release,read, write, erase) failed
00265     PAL_ERR_INTERNAL_FLASH_FLASH_ZERO_SIZE =                PAL_ERR_MODULE_INTERNAL_FLASH_BASE + 0x0E,
00266 
00267     //Secure storage errors
00268     PAL_ERR_SST_ERROR_BASE  =                               PAL_ERR_MODULE_SST_BASE,
00269     PAL_ERR_SST_GENERIC_FAILURE =                           PAL_ERR_SST_ERROR_BASE,
00270     PAL_ERR_SST_ITEM_NOT_FOUND =                            PAL_ERR_SST_ERROR_BASE + 0x01,      //!< Item Not Found */
00271     PAL_ERR_SST_INVALID_SIZE =                              PAL_ERR_SST_ERROR_BASE + 0x02,      //!< Invalid Size   */
00272     PAL_ERR_SST_NOT_READY =                                 PAL_ERR_SST_ERROR_BASE + 0x03,      //!< Not Ready      */ 
00273     PAL_ERR_SST_WRITE_PROTECTED =                           PAL_ERR_SST_ERROR_BASE + 0x04,      //!< Attempt to write to write-protected resource */
00274     PAL_ERR_SST_WRITE_FAILED =                              PAL_ERR_SST_ERROR_BASE + 0x05,      //!< Write failed */
00275     PAL_ERR_SST_READ_FAILED =                               PAL_ERR_SST_ERROR_BASE + 0x06,      //!< Read failed */
00276     PAL_ERR_SST_INVALID_DATA_DETECTED =                     PAL_ERR_SST_ERROR_BASE + 0x07,      //!< Invalid data detected */
00277     PAL_ERR_SST_FAILED_OPERATION =                          PAL_ERR_SST_ERROR_BASE + 0x08,      //!< Requested Operation failed */
00278     PAL_ERR_SST_MEDIA_FULL =                                PAL_ERR_SST_ERROR_BASE + 0x09,      //!< Media Full */
00279     PAL_ERR_SST_RBP_AUTHENTICATION_FAILED =                 PAL_ERR_SST_ERROR_BASE + 0x0A,      //!< Rollback protection authentication failed */
00280     PAL_ERR_SST_AUTHENTICATION_FAILED =                     PAL_ERR_SST_ERROR_BASE + 0x0B,      //!< Authentication failed */
00281 
00282 } palError_t ; /*! errors returned by the pal service API  */
00283 
00284 #ifdef __cplusplus
00285 }
00286 #endif
00287 #endif //_PAL_ERRORS