/*
 * SPDX-FileCopyrightText: 2018-2024 Espressif Systems (Shanghai) CO LTD
 *
 * SPDX-License-Identifier: Apache-2.0
 */

//Do not edit this file because it is autogenerated by gen_esp_err_to_name.py

#include <string.h>
#include "esp_err.h"
#if __has_include("soc/soc.h")
#include "soc/soc.h"
#endif
#if __has_include("esp_dpp.h")
#include "esp_dpp.h"
#endif
#if __has_include("esp_ds_err.h")
#include "esp_ds_err.h"
#endif
#if __has_include("esp_efuse.h")
#include "esp_efuse.h"
#endif
#if __has_include("esp_http_client.h")
#include "esp_http_client.h"
#endif
#if __has_include("esp_http_server.h")
#include "esp_http_server.h"
#endif
#if __has_include("esp_https_ota.h")
#include "esp_https_ota.h"
#endif
#if __has_include("esp_image_format.h")
#include "esp_image_format.h"
#endif
#if __has_include("esp_memprot_err.h")
#include "esp_memprot_err.h"
#endif
#if __has_include("esp_mesh.h")
#include "esp_mesh.h"
#endif
#if __has_include("esp_netif_types.h")
#include "esp_netif_types.h"
#endif
#if __has_include("esp_now.h")
#include "esp_now.h"
#endif
#if __has_include("esp_ota_ops.h")
#include "esp_ota_ops.h"
#endif
#if __has_include("esp_ping.h")
#include "esp_ping.h"
#endif
#if __has_include("esp_tls_errors.h")
#include "esp_tls_errors.h"
#endif
#if __has_include("esp_transport.h")
#include "esp_transport.h"
#endif
#if __has_include("esp_wifi.h")
#include "esp_wifi.h"
#endif
#if __has_include("esp_wps.h")
#include "esp_wps.h"
#endif
#if __has_include("hal/esp_flash_err.h")
#include "hal/esp_flash_err.h"
#endif
#if __has_include("nvs.h")
#include "nvs.h"
#endif
#if __has_include("nvs_sec_provider.h")
#include "nvs_sec_provider.h"
#endif
#if __has_include("spi_flash_mmap.h")
#include "spi_flash_mmap.h"
#endif
#if __has_include("ulp_fsm_common.h")
#include "ulp_fsm_common.h"
#endif

#ifdef CONFIG_ESP_ERR_TO_NAME_LOOKUP
#define ERR_TBL_IT(err)    {err, #err}

typedef struct {
    esp_err_t code;
    const char *msg;
} esp_err_msg_t;

static const esp_err_msg_t esp_err_msg_table[] = {
    // components/esp_common/include/esp_err.h
#   ifdef      ESP_FAIL
    ERR_TBL_IT(ESP_FAIL),                                       /*    -1 Generic esp_err_t code indicating failure */
#   endif
#   ifdef      ESP_OK
    ERR_TBL_IT(ESP_OK),                                         /*     0 esp_err_t value indicating success (no error) */
#   endif
#   ifdef      ESP_ERR_NO_MEM
    ERR_TBL_IT(ESP_ERR_NO_MEM),                                 /*   257 0x101 Out of memory */
#   endif
#   ifdef      ESP_ERR_INVALID_ARG
    ERR_TBL_IT(ESP_ERR_INVALID_ARG),                            /*   258 0x102 Invalid argument */
#   endif
#   ifdef      ESP_ERR_INVALID_STATE
    ERR_TBL_IT(ESP_ERR_INVALID_STATE),                          /*   259 0x103 Invalid state */
#   endif
#   ifdef      ESP_ERR_INVALID_SIZE
    ERR_TBL_IT(ESP_ERR_INVALID_SIZE),                           /*   260 0x104 Invalid size */
#   endif
#   ifdef      ESP_ERR_NOT_FOUND
    ERR_TBL_IT(ESP_ERR_NOT_FOUND),                              /*   261 0x105 Requested resource not found */
#   endif
#   ifdef      ESP_ERR_NOT_SUPPORTED
    ERR_TBL_IT(ESP_ERR_NOT_SUPPORTED),                          /*   262 0x106 Operation or feature not supported */
#   endif
#   ifdef      ESP_ERR_TIMEOUT
    ERR_TBL_IT(ESP_ERR_TIMEOUT),                                /*   263 0x107 Operation timed out */
#   endif
#   ifdef      ESP_ERR_INVALID_RESPONSE
    ERR_TBL_IT(ESP_ERR_INVALID_RESPONSE),                       /*   264 0x108 Received response was invalid */
#   endif
#   ifdef      ESP_ERR_INVALID_CRC
    ERR_TBL_IT(ESP_ERR_INVALID_CRC),                            /*   265 0x109 CRC or checksum was invalid */
#   endif
#   ifdef      ESP_ERR_INVALID_VERSION
    ERR_TBL_IT(ESP_ERR_INVALID_VERSION),                        /*   266 0x10a Version was invalid */
#   endif
#   ifdef      ESP_ERR_INVALID_MAC
    ERR_TBL_IT(ESP_ERR_INVALID_MAC),                            /*   267 0x10b MAC address was invalid */
#   endif
#   ifdef      ESP_ERR_NOT_FINISHED
    ERR_TBL_IT(ESP_ERR_NOT_FINISHED),                           /*   268 0x10c Operation has not fully completed */
#   endif
#   ifdef      ESP_ERR_NOT_ALLOWED
    ERR_TBL_IT(ESP_ERR_NOT_ALLOWED),                            /*   269 0x10d Operation is not allowed */
#   endif
    // components/nvs_flash/include/nvs.h
#   ifdef      ESP_ERR_NVS_BASE
    ERR_TBL_IT(ESP_ERR_NVS_BASE),                               /*  4352 0x1100 Starting number of error codes */
#   endif
#   ifdef      ESP_ERR_NVS_NOT_INITIALIZED
    ERR_TBL_IT(ESP_ERR_NVS_NOT_INITIALIZED),                    /*  4353 0x1101 The storage driver is not initialized */
#   endif
#   ifdef      ESP_ERR_NVS_NOT_FOUND
    ERR_TBL_IT(ESP_ERR_NVS_NOT_FOUND),                          /*  4354 0x1102 A requested entry couldn't be found or
                                                                                namespace doesn’t exist yet and mode is
                                                                                NVS_READONLY */
#   endif
#   ifdef      ESP_ERR_NVS_TYPE_MISMATCH
    ERR_TBL_IT(ESP_ERR_NVS_TYPE_MISMATCH),                      /*  4355 0x1103 The type of set or get operation doesn't
                                                                                match the type of value stored in NVS */
#   endif
#   ifdef      ESP_ERR_NVS_READ_ONLY
    ERR_TBL_IT(ESP_ERR_NVS_READ_ONLY),                          /*  4356 0x1104 Storage handle was opened as read only */
#   endif
#   ifdef      ESP_ERR_NVS_NOT_ENOUGH_SPACE
    ERR_TBL_IT(ESP_ERR_NVS_NOT_ENOUGH_SPACE),                   /*  4357 0x1105 There is not enough space in the
                                                                                underlying storage to save the value */
#   endif
#   ifdef      ESP_ERR_NVS_INVALID_NAME
    ERR_TBL_IT(ESP_ERR_NVS_INVALID_NAME),                       /*  4358 0x1106 Namespace name doesn’t satisfy constraints */
#   endif
#   ifdef      ESP_ERR_NVS_INVALID_HANDLE
    ERR_TBL_IT(ESP_ERR_NVS_INVALID_HANDLE),                     /*  4359 0x1107 Handle has been closed or is NULL */
#   endif
#   ifdef      ESP_ERR_NVS_REMOVE_FAILED
    ERR_TBL_IT(ESP_ERR_NVS_REMOVE_FAILED),                      /*  4360 0x1108 The value wasn’t updated because flash
                                                                                write operation has failed. The value
                                                                                was written however, and update will be
                                                                                finished after re-initialization of nvs,
                                                                                provided that flash operation doesn’t
                                                                                fail again. */
#   endif
#   ifdef      ESP_ERR_NVS_KEY_TOO_LONG
    ERR_TBL_IT(ESP_ERR_NVS_KEY_TOO_LONG),                       /*  4361 0x1109 Key name is too long */
#   endif
#   ifdef      ESP_ERR_NVS_PAGE_FULL
    ERR_TBL_IT(ESP_ERR_NVS_PAGE_FULL),                          /*  4362 0x110a Internal error; never returned by nvs
                                                                                API functions */
#   endif
#   ifdef      ESP_ERR_NVS_INVALID_STATE
    ERR_TBL_IT(ESP_ERR_NVS_INVALID_STATE),                      /*  4363 0x110b NVS is in an inconsistent state due to a
                                                                                previous error. Call nvs_flash_init and
                                                                                nvs_open again, then retry. */
#   endif
#   ifdef      ESP_ERR_NVS_INVALID_LENGTH
    ERR_TBL_IT(ESP_ERR_NVS_INVALID_LENGTH),                     /*  4364 0x110c String or blob length is not sufficient
                                                                                to store data */
#   endif
#   ifdef      ESP_ERR_NVS_NO_FREE_PAGES
    ERR_TBL_IT(ESP_ERR_NVS_NO_FREE_PAGES),                      /*  4365 0x110d NVS partition doesn't contain any empty
                                                                                pages. This may happen if NVS partition
                                                                                was truncated. Erase the whole partition
                                                                                and call nvs_flash_init again. */
#   endif
#   ifdef      ESP_ERR_NVS_VALUE_TOO_LONG
    ERR_TBL_IT(ESP_ERR_NVS_VALUE_TOO_LONG),                     /*  4366 0x110e Value doesn't fit into the entry or
                                                                                string or blob length is longer than
                                                                                supported by the implementation */
#   endif
#   ifdef      ESP_ERR_NVS_PART_NOT_FOUND
    ERR_TBL_IT(ESP_ERR_NVS_PART_NOT_FOUND),                     /*  4367 0x110f Partition with specified name is not
                                                                                found in the partition table */
#   endif
#   ifdef      ESP_ERR_NVS_NEW_VERSION_FOUND
    ERR_TBL_IT(ESP_ERR_NVS_NEW_VERSION_FOUND),                  /*  4368 0x1110 NVS partition contains data in new
                                                                                format and cannot be recognized by this
                                                                                version of code */
#   endif
#   ifdef      ESP_ERR_NVS_XTS_ENCR_FAILED
    ERR_TBL_IT(ESP_ERR_NVS_XTS_ENCR_FAILED),                    /*  4369 0x1111 XTS encryption failed while writing NVS entry */
#   endif
#   ifdef      ESP_ERR_NVS_XTS_DECR_FAILED
    ERR_TBL_IT(ESP_ERR_NVS_XTS_DECR_FAILED),                    /*  4370 0x1112 XTS decryption failed while reading NVS entry */
#   endif
#   ifdef      ESP_ERR_NVS_XTS_CFG_FAILED
    ERR_TBL_IT(ESP_ERR_NVS_XTS_CFG_FAILED),                     /*  4371 0x1113 XTS configuration setting failed */
#   endif
#   ifdef      ESP_ERR_NVS_XTS_CFG_NOT_FOUND
    ERR_TBL_IT(ESP_ERR_NVS_XTS_CFG_NOT_FOUND),                  /*  4372 0x1114 XTS configuration not found */
#   endif
#   ifdef      ESP_ERR_NVS_ENCR_NOT_SUPPORTED
    ERR_TBL_IT(ESP_ERR_NVS_ENCR_NOT_SUPPORTED),                 /*  4373 0x1115 NVS encryption is not supported in this version */
#   endif
#   ifdef      ESP_ERR_NVS_KEYS_NOT_INITIALIZED
    ERR_TBL_IT(ESP_ERR_NVS_KEYS_NOT_INITIALIZED),               /*  4374 0x1116 NVS key partition is uninitialized */
#   endif
#   ifdef      ESP_ERR_NVS_CORRUPT_KEY_PART
    ERR_TBL_IT(ESP_ERR_NVS_CORRUPT_KEY_PART),                   /*  4375 0x1117 NVS key partition is corrupt */
#   endif
#   ifdef      ESP_ERR_NVS_CONTENT_DIFFERS
    ERR_TBL_IT(ESP_ERR_NVS_CONTENT_DIFFERS),                    /*  4376 0x1118 Internal error; never returned by nvs
                                                                                API functions.  NVS key is different in
                                                                                comparison */
#   endif
#   ifdef      ESP_ERR_NVS_WRONG_ENCRYPTION
    ERR_TBL_IT(ESP_ERR_NVS_WRONG_ENCRYPTION),                   /*  4377 0x1119 NVS partition is marked as encrypted
                                                                                with generic flash encryption. This is
                                                                                forbidden since the NVS encryption works
                                                                                differently. */
#   endif
    // components/ulp/ulp_fsm/include/ulp_fsm_common.h
#   ifdef      ESP_ERR_ULP_BASE
    ERR_TBL_IT(ESP_ERR_ULP_BASE),                               /*  4608 0x1200 Offset for ULP-related error codes */
#   endif
#   ifdef      ESP_ERR_ULP_SIZE_TOO_BIG
    ERR_TBL_IT(ESP_ERR_ULP_SIZE_TOO_BIG),                       /*  4609 0x1201 Program doesn't fit into RTC memory
                                                                                reserved for the ULP */
#   endif
#   ifdef      ESP_ERR_ULP_INVALID_LOAD_ADDR
    ERR_TBL_IT(ESP_ERR_ULP_INVALID_LOAD_ADDR),                  /*  4610 0x1202 Load address is outside of RTC memory
                                                                                reserved for the ULP */
#   endif
#   ifdef      ESP_ERR_ULP_DUPLICATE_LABEL
    ERR_TBL_IT(ESP_ERR_ULP_DUPLICATE_LABEL),                    /*  4611 0x1203 More than one label with the same number
                                                                                was defined */
#   endif
#   ifdef      ESP_ERR_ULP_UNDEFINED_LABEL
    ERR_TBL_IT(ESP_ERR_ULP_UNDEFINED_LABEL),                    /*  4612 0x1204 Branch instructions references an undefined label */
#   endif
#   ifdef      ESP_ERR_ULP_BRANCH_OUT_OF_RANGE
    ERR_TBL_IT(ESP_ERR_ULP_BRANCH_OUT_OF_RANGE),                /*  4613 0x1205 Branch target is out of range of B
                                                                                instruction (try replacing with BX) */
#   endif
    // components/app_update/include/esp_ota_ops.h
#   ifdef      ESP_ERR_OTA_BASE
    ERR_TBL_IT(ESP_ERR_OTA_BASE),                               /*  5376 0x1500 Base error code for ota_ops api */
#   endif
#   ifdef      ESP_ERR_OTA_PARTITION_CONFLICT
    ERR_TBL_IT(ESP_ERR_OTA_PARTITION_CONFLICT),                 /*  5377 0x1501 Error if request was to write or erase
                                                                                the current running partition */
#   endif
#   ifdef      ESP_ERR_OTA_SELECT_INFO_INVALID
    ERR_TBL_IT(ESP_ERR_OTA_SELECT_INFO_INVALID),                /*  5378 0x1502 Error if OTA data partition contains
                                                                                invalid content */
#   endif
#   ifdef      ESP_ERR_OTA_VALIDATE_FAILED
    ERR_TBL_IT(ESP_ERR_OTA_VALIDATE_FAILED),                    /*  5379 0x1503 Error if OTA app image is invalid */
#   endif
#   ifdef      ESP_ERR_OTA_SMALL_SEC_VER
    ERR_TBL_IT(ESP_ERR_OTA_SMALL_SEC_VER),                      /*  5380 0x1504 Error if the firmware has a secure
                                                                                version less than the running firmware. */
#   endif
#   ifdef      ESP_ERR_OTA_ROLLBACK_FAILED
    ERR_TBL_IT(ESP_ERR_OTA_ROLLBACK_FAILED),                    /*  5381 0x1505 Error if flash does not have valid
                                                                                firmware in passive partition and hence
                                                                                rollback is not possible */
#   endif
#   ifdef      ESP_ERR_OTA_ROLLBACK_INVALID_STATE
    ERR_TBL_IT(ESP_ERR_OTA_ROLLBACK_INVALID_STATE),             /*  5382 0x1506 Error if current active firmware is
                                                                                still marked in pending validation state
                                                                                (ESP_OTA_IMG_PENDING_VERIFY),
                                                                                essentially first boot of firmware image
                                                                                post upgrade and hence firmware upgrade
                                                                                is not possible */
#   endif
    // components/efuse/include/esp_efuse.h
#   ifdef      ESP_ERR_EFUSE
    ERR_TBL_IT(ESP_ERR_EFUSE),                                  /*  5632 0x1600 Base error code for efuse api. */
#   endif
#   ifdef      ESP_OK_EFUSE_CNT
    ERR_TBL_IT(ESP_OK_EFUSE_CNT),                               /*  5633 0x1601 OK the required number of bits is set. */
#   endif
#   ifdef      ESP_ERR_EFUSE_CNT_IS_FULL
    ERR_TBL_IT(ESP_ERR_EFUSE_CNT_IS_FULL),                      /*  5634 0x1602 Error field is full. */
#   endif
#   ifdef      ESP_ERR_EFUSE_REPEATED_PROG
    ERR_TBL_IT(ESP_ERR_EFUSE_REPEATED_PROG),                    /*  5635 0x1603 Error repeated programming of programmed
                                                                                bits is strictly forbidden. */
#   endif
#   ifdef      ESP_ERR_CODING
    ERR_TBL_IT(ESP_ERR_CODING),                                 /*  5636 0x1604 Error while a encoding operation. */
#   endif
#   ifdef      ESP_ERR_NOT_ENOUGH_UNUSED_KEY_BLOCKS
    ERR_TBL_IT(ESP_ERR_NOT_ENOUGH_UNUSED_KEY_BLOCKS),           /*  5637 0x1605 Error not enough unused key blocks available */
#   endif
#   ifdef      ESP_ERR_DAMAGED_READING
    ERR_TBL_IT(ESP_ERR_DAMAGED_READING),                        /*  5638 0x1606 Error. Burn or reset was done during a
                                                                                reading operation leads to damage read
                                                                                data. This error is internal to the
                                                                                efuse component and not returned by any
                                                                                public API. */
#   endif
    // components/bootloader_support/include/esp_image_format.h
#   ifdef      ESP_ERR_IMAGE_BASE
    ERR_TBL_IT(ESP_ERR_IMAGE_BASE),                             /*  8192 0x2000 */
#   endif
#   ifdef      ESP_ERR_IMAGE_FLASH_FAIL
    ERR_TBL_IT(ESP_ERR_IMAGE_FLASH_FAIL),                       /*  8193 0x2001 */
#   endif
#   ifdef      ESP_ERR_IMAGE_INVALID
    ERR_TBL_IT(ESP_ERR_IMAGE_INVALID),                          /*  8194 0x2002 */
#   endif
    // components/esp_common/include/esp_err.h
#   ifdef      ESP_ERR_WIFI_BASE
    ERR_TBL_IT(ESP_ERR_WIFI_BASE),                              /* 12288 0x3000 Starting number of WiFi error codes */
#   endif
    // components/esp_wifi/include/esp_wifi.h
#   ifdef      ESP_ERR_WIFI_NOT_INIT
    ERR_TBL_IT(ESP_ERR_WIFI_NOT_INIT),                          /* 12289 0x3001 WiFi driver was not installed by esp_wifi_init */
#   endif
#   ifdef      ESP_ERR_WIFI_NOT_STARTED
    ERR_TBL_IT(ESP_ERR_WIFI_NOT_STARTED),                       /* 12290 0x3002 WiFi driver was not started by esp_wifi_start */
#   endif
#   ifdef      ESP_ERR_WIFI_NOT_STOPPED
    ERR_TBL_IT(ESP_ERR_WIFI_NOT_STOPPED),                       /* 12291 0x3003 WiFi driver was not stopped by esp_wifi_stop */
#   endif
#   ifdef      ESP_ERR_WIFI_IF
    ERR_TBL_IT(ESP_ERR_WIFI_IF),                                /* 12292 0x3004 WiFi interface error */
#   endif
#   ifdef      ESP_ERR_WIFI_MODE
    ERR_TBL_IT(ESP_ERR_WIFI_MODE),                              /* 12293 0x3005 WiFi mode error */
#   endif
#   ifdef      ESP_ERR_WIFI_STATE
    ERR_TBL_IT(ESP_ERR_WIFI_STATE),                             /* 12294 0x3006 WiFi internal state error */
#   endif
#   ifdef      ESP_ERR_WIFI_CONN
    ERR_TBL_IT(ESP_ERR_WIFI_CONN),                              /* 12295 0x3007 WiFi internal control block of station
                                                                                or soft-AP error */
#   endif
#   ifdef      ESP_ERR_WIFI_NVS
    ERR_TBL_IT(ESP_ERR_WIFI_NVS),                               /* 12296 0x3008 WiFi internal NVS module error */
#   endif
#   ifdef      ESP_ERR_WIFI_MAC
    ERR_TBL_IT(ESP_ERR_WIFI_MAC),                               /* 12297 0x3009 MAC address is invalid */
#   endif
#   ifdef      ESP_ERR_WIFI_SSID
    ERR_TBL_IT(ESP_ERR_WIFI_SSID),                              /* 12298 0x300a SSID is invalid */
#   endif
#   ifdef      ESP_ERR_WIFI_PASSWORD
    ERR_TBL_IT(ESP_ERR_WIFI_PASSWORD),                          /* 12299 0x300b Password is invalid */
#   endif
#   ifdef      ESP_ERR_WIFI_TIMEOUT
    ERR_TBL_IT(ESP_ERR_WIFI_TIMEOUT),                           /* 12300 0x300c Timeout error */
#   endif
#   ifdef      ESP_ERR_WIFI_WAKE_FAIL
    ERR_TBL_IT(ESP_ERR_WIFI_WAKE_FAIL),                         /* 12301 0x300d WiFi is in sleep state(RF closed) and wakeup fail */
#   endif
#   ifdef      ESP_ERR_WIFI_WOULD_BLOCK
    ERR_TBL_IT(ESP_ERR_WIFI_WOULD_BLOCK),                       /* 12302 0x300e The caller would block */
#   endif
#   ifdef      ESP_ERR_WIFI_NOT_CONNECT
    ERR_TBL_IT(ESP_ERR_WIFI_NOT_CONNECT),                       /* 12303 0x300f Station still in disconnect status */
#   endif
#   ifdef      ESP_ERR_WIFI_POST
    ERR_TBL_IT(ESP_ERR_WIFI_POST),                              /* 12306 0x3012 Failed to post the event to WiFi task */
#   endif
#   ifdef      ESP_ERR_WIFI_INIT_STATE
    ERR_TBL_IT(ESP_ERR_WIFI_INIT_STATE),                        /* 12307 0x3013 Invalid WiFi state when init/deinit is called */
#   endif
#   ifdef      ESP_ERR_WIFI_STOP_STATE
    ERR_TBL_IT(ESP_ERR_WIFI_STOP_STATE),                        /* 12308 0x3014 Returned when WiFi is stopping */
#   endif
#   ifdef      ESP_ERR_WIFI_NOT_ASSOC
    ERR_TBL_IT(ESP_ERR_WIFI_NOT_ASSOC),                         /* 12309 0x3015 The WiFi connection is not associated */
#   endif
#   ifdef      ESP_ERR_WIFI_TX_DISALLOW
    ERR_TBL_IT(ESP_ERR_WIFI_TX_DISALLOW),                       /* 12310 0x3016 The WiFi TX is disallowed */
#   endif
#   ifdef      ESP_ERR_WIFI_TWT_FULL
    ERR_TBL_IT(ESP_ERR_WIFI_TWT_FULL),                          /* 12311 0x3017 no available flow id */
#   endif
#   ifdef      ESP_ERR_WIFI_TWT_SETUP_TIMEOUT
    ERR_TBL_IT(ESP_ERR_WIFI_TWT_SETUP_TIMEOUT),                 /* 12312 0x3018 Timeout of receiving twt setup response
                                                                                frame, timeout times can be set during
                                                                                twt setup */
#   endif
#   ifdef      ESP_ERR_WIFI_TWT_SETUP_TXFAIL
    ERR_TBL_IT(ESP_ERR_WIFI_TWT_SETUP_TXFAIL),                  /* 12313 0x3019 TWT setup frame tx failed */
#   endif
#   ifdef      ESP_ERR_WIFI_TWT_SETUP_REJECT
    ERR_TBL_IT(ESP_ERR_WIFI_TWT_SETUP_REJECT),                  /* 12314 0x301a The twt setup request was rejected by the AP */
#   endif
#   ifdef      ESP_ERR_WIFI_DISCARD
    ERR_TBL_IT(ESP_ERR_WIFI_DISCARD),                           /* 12315 0x301b Discard frame */
#   endif
#   ifdef      ESP_ERR_WIFI_ROC_IN_PROGRESS
    ERR_TBL_IT(ESP_ERR_WIFI_ROC_IN_PROGRESS),                   /* 12316 0x301c ROC op is in progress */
#   endif
    // components/wpa_supplicant/esp_supplicant/include/esp_wps.h
#   ifdef      ESP_ERR_WIFI_REGISTRAR
    ERR_TBL_IT(ESP_ERR_WIFI_REGISTRAR),                         /* 12339 0x3033 WPS registrar is not supported */
#   endif
#   ifdef      ESP_ERR_WIFI_WPS_TYPE
    ERR_TBL_IT(ESP_ERR_WIFI_WPS_TYPE),                          /* 12340 0x3034 WPS type error */
#   endif
#   ifdef      ESP_ERR_WIFI_WPS_SM
    ERR_TBL_IT(ESP_ERR_WIFI_WPS_SM),                            /* 12341 0x3035 WPS state machine is not initialized */
#   endif
    // components/esp_wifi/include/esp_now.h
#   ifdef      ESP_ERR_ESPNOW_BASE
    ERR_TBL_IT(ESP_ERR_ESPNOW_BASE),                            /* 12388 0x3064 ESPNOW error number base. */
#   endif
#   ifdef      ESP_ERR_ESPNOW_NOT_INIT
    ERR_TBL_IT(ESP_ERR_ESPNOW_NOT_INIT),                        /* 12389 0x3065 ESPNOW is not initialized. */
#   endif
#   ifdef      ESP_ERR_ESPNOW_ARG
    ERR_TBL_IT(ESP_ERR_ESPNOW_ARG),                             /* 12390 0x3066 Invalid argument */
#   endif
#   ifdef      ESP_ERR_ESPNOW_NO_MEM
    ERR_TBL_IT(ESP_ERR_ESPNOW_NO_MEM),                          /* 12391 0x3067 Out of memory */
#   endif
#   ifdef      ESP_ERR_ESPNOW_FULL
    ERR_TBL_IT(ESP_ERR_ESPNOW_FULL),                            /* 12392 0x3068 ESPNOW peer list is full */
#   endif
#   ifdef      ESP_ERR_ESPNOW_NOT_FOUND
    ERR_TBL_IT(ESP_ERR_ESPNOW_NOT_FOUND),                       /* 12393 0x3069 ESPNOW peer is not found */
#   endif
#   ifdef      ESP_ERR_ESPNOW_INTERNAL
    ERR_TBL_IT(ESP_ERR_ESPNOW_INTERNAL),                        /* 12394 0x306a Internal error */
#   endif
#   ifdef      ESP_ERR_ESPNOW_EXIST
    ERR_TBL_IT(ESP_ERR_ESPNOW_EXIST),                           /* 12395 0x306b ESPNOW peer has existed */
#   endif
#   ifdef      ESP_ERR_ESPNOW_IF
    ERR_TBL_IT(ESP_ERR_ESPNOW_IF),                              /* 12396 0x306c Interface error */
#   endif
#   ifdef      ESP_ERR_ESPNOW_CHAN
    ERR_TBL_IT(ESP_ERR_ESPNOW_CHAN),                            /* 12397 0x306d Channel error */
#   endif
    // components/wpa_supplicant/esp_supplicant/include/esp_dpp.h
#   ifdef      ESP_ERR_DPP_FAILURE
    ERR_TBL_IT(ESP_ERR_DPP_FAILURE),                            /* 12439 0x3097 Generic failure during DPP Operation */
#   endif
#   ifdef      ESP_ERR_DPP_TX_FAILURE
    ERR_TBL_IT(ESP_ERR_DPP_TX_FAILURE),                         /* 12440 0x3098 DPP Frame Tx failed OR not Acked */
#   endif
#   ifdef      ESP_ERR_DPP_INVALID_ATTR
    ERR_TBL_IT(ESP_ERR_DPP_INVALID_ATTR),                       /* 12441 0x3099 Encountered invalid DPP Attribute */
#   endif
#   ifdef      ESP_ERR_DPP_AUTH_TIMEOUT
    ERR_TBL_IT(ESP_ERR_DPP_AUTH_TIMEOUT),                       /* 12442 0x309a DPP Auth response was not received in time */
#   endif
#   ifdef      ESP_ERR_DPP_INVALID_LIST
    ERR_TBL_IT(ESP_ERR_DPP_INVALID_LIST),                       /* 12443 0x309b Channel list given in
                                                                                esp_supp_dpp_bootstrap_gen() is not
                                                                                valid or too big */
#   endif
#   ifdef      ESP_ERR_DPP_CONF_TIMEOUT
    ERR_TBL_IT(ESP_ERR_DPP_CONF_TIMEOUT),                       /* 12444 0x309c DPP Configuration was not received in time */
#   endif
    // components/esp_common/include/esp_err.h
#   ifdef      ESP_ERR_MESH_BASE
    ERR_TBL_IT(ESP_ERR_MESH_BASE),                              /* 16384 0x4000 Starting number of MESH error codes */
#   endif
    // components/esp_wifi/include/esp_mesh.h
#   ifdef      ESP_ERR_MESH_WIFI_NOT_START
    ERR_TBL_IT(ESP_ERR_MESH_WIFI_NOT_START),                    /* 16385 0x4001 */
#   endif
#   ifdef      ESP_ERR_MESH_NOT_INIT
    ERR_TBL_IT(ESP_ERR_MESH_NOT_INIT),                          /* 16386 0x4002 */
#   endif
#   ifdef      ESP_ERR_MESH_NOT_CONFIG
    ERR_TBL_IT(ESP_ERR_MESH_NOT_CONFIG),                        /* 16387 0x4003 */
#   endif
#   ifdef      ESP_ERR_MESH_NOT_START
    ERR_TBL_IT(ESP_ERR_MESH_NOT_START),                         /* 16388 0x4004 */
#   endif
#   ifdef      ESP_ERR_MESH_NOT_SUPPORT
    ERR_TBL_IT(ESP_ERR_MESH_NOT_SUPPORT),                       /* 16389 0x4005 */
#   endif
#   ifdef      ESP_ERR_MESH_NOT_ALLOWED
    ERR_TBL_IT(ESP_ERR_MESH_NOT_ALLOWED),                       /* 16390 0x4006 */
#   endif
#   ifdef      ESP_ERR_MESH_NO_MEMORY
    ERR_TBL_IT(ESP_ERR_MESH_NO_MEMORY),                         /* 16391 0x4007 */
#   endif
#   ifdef      ESP_ERR_MESH_ARGUMENT
    ERR_TBL_IT(ESP_ERR_MESH_ARGUMENT),                          /* 16392 0x4008 */
#   endif
#   ifdef      ESP_ERR_MESH_EXCEED_MTU
    ERR_TBL_IT(ESP_ERR_MESH_EXCEED_MTU),                        /* 16393 0x4009 */
#   endif
#   ifdef      ESP_ERR_MESH_TIMEOUT
    ERR_TBL_IT(ESP_ERR_MESH_TIMEOUT),                           /* 16394 0x400a */
#   endif
#   ifdef      ESP_ERR_MESH_DISCONNECTED
    ERR_TBL_IT(ESP_ERR_MESH_DISCONNECTED),                      /* 16395 0x400b */
#   endif
#   ifdef      ESP_ERR_MESH_QUEUE_FAIL
    ERR_TBL_IT(ESP_ERR_MESH_QUEUE_FAIL),                        /* 16396 0x400c */
#   endif
#   ifdef      ESP_ERR_MESH_QUEUE_FULL
    ERR_TBL_IT(ESP_ERR_MESH_QUEUE_FULL),                        /* 16397 0x400d */
#   endif
#   ifdef      ESP_ERR_MESH_NO_PARENT_FOUND
    ERR_TBL_IT(ESP_ERR_MESH_NO_PARENT_FOUND),                   /* 16398 0x400e */
#   endif
#   ifdef      ESP_ERR_MESH_NO_ROUTE_FOUND
    ERR_TBL_IT(ESP_ERR_MESH_NO_ROUTE_FOUND),                    /* 16399 0x400f */
#   endif
#   ifdef      ESP_ERR_MESH_OPTION_NULL
    ERR_TBL_IT(ESP_ERR_MESH_OPTION_NULL),                       /* 16400 0x4010 */
#   endif
#   ifdef      ESP_ERR_MESH_OPTION_UNKNOWN
    ERR_TBL_IT(ESP_ERR_MESH_OPTION_UNKNOWN),                    /* 16401 0x4011 */
#   endif
#   ifdef      ESP_ERR_MESH_XON_NO_WINDOW
    ERR_TBL_IT(ESP_ERR_MESH_XON_NO_WINDOW),                     /* 16402 0x4012 */
#   endif
#   ifdef      ESP_ERR_MESH_INTERFACE
    ERR_TBL_IT(ESP_ERR_MESH_INTERFACE),                         /* 16403 0x4013 */
#   endif
#   ifdef      ESP_ERR_MESH_DISCARD_DUPLICATE
    ERR_TBL_IT(ESP_ERR_MESH_DISCARD_DUPLICATE),                 /* 16404 0x4014 */
#   endif
#   ifdef      ESP_ERR_MESH_DISCARD
    ERR_TBL_IT(ESP_ERR_MESH_DISCARD),                           /* 16405 0x4015 */
#   endif
#   ifdef      ESP_ERR_MESH_VOTING
    ERR_TBL_IT(ESP_ERR_MESH_VOTING),                            /* 16406 0x4016 */
#   endif
#   ifdef      ESP_ERR_MESH_XMIT
    ERR_TBL_IT(ESP_ERR_MESH_XMIT),                              /* 16407 0x4017 */
#   endif
#   ifdef      ESP_ERR_MESH_QUEUE_READ
    ERR_TBL_IT(ESP_ERR_MESH_QUEUE_READ),                        /* 16408 0x4018 */
#   endif
#   ifdef      ESP_ERR_MESH_PS
    ERR_TBL_IT(ESP_ERR_MESH_PS),                                /* 16409 0x4019 */
#   endif
#   ifdef      ESP_ERR_MESH_RECV_RELEASE
    ERR_TBL_IT(ESP_ERR_MESH_RECV_RELEASE),                      /* 16410 0x401a */
#   endif
    // components/esp_netif/include/esp_netif_types.h
#   ifdef      ESP_ERR_ESP_NETIF_BASE
    ERR_TBL_IT(ESP_ERR_ESP_NETIF_BASE),                         /* 20480 0x5000 */
#   endif
#   ifdef      ESP_ERR_ESP_NETIF_INVALID_PARAMS
    ERR_TBL_IT(ESP_ERR_ESP_NETIF_INVALID_PARAMS),               /* 20481 0x5001 */
#   endif
#   ifdef      ESP_ERR_ESP_NETIF_IF_NOT_READY
    ERR_TBL_IT(ESP_ERR_ESP_NETIF_IF_NOT_READY),                 /* 20482 0x5002 */
#   endif
#   ifdef      ESP_ERR_ESP_NETIF_DHCPC_START_FAILED
    ERR_TBL_IT(ESP_ERR_ESP_NETIF_DHCPC_START_FAILED),           /* 20483 0x5003 */
#   endif
#   ifdef      ESP_ERR_ESP_NETIF_DHCP_ALREADY_STARTED
    ERR_TBL_IT(ESP_ERR_ESP_NETIF_DHCP_ALREADY_STARTED),         /* 20484 0x5004 */
#   endif
#   ifdef      ESP_ERR_ESP_NETIF_DHCP_ALREADY_STOPPED
    ERR_TBL_IT(ESP_ERR_ESP_NETIF_DHCP_ALREADY_STOPPED),         /* 20485 0x5005 */
#   endif
#   ifdef      ESP_ERR_ESP_NETIF_NO_MEM
    ERR_TBL_IT(ESP_ERR_ESP_NETIF_NO_MEM),                       /* 20486 0x5006 */
#   endif
#   ifdef      ESP_ERR_ESP_NETIF_DHCP_NOT_STOPPED
    ERR_TBL_IT(ESP_ERR_ESP_NETIF_DHCP_NOT_STOPPED),             /* 20487 0x5007 */
#   endif
#   ifdef      ESP_ERR_ESP_NETIF_DRIVER_ATTACH_FAILED
    ERR_TBL_IT(ESP_ERR_ESP_NETIF_DRIVER_ATTACH_FAILED),         /* 20488 0x5008 */
#   endif
#   ifdef      ESP_ERR_ESP_NETIF_INIT_FAILED
    ERR_TBL_IT(ESP_ERR_ESP_NETIF_INIT_FAILED),                  /* 20489 0x5009 */
#   endif
#   ifdef      ESP_ERR_ESP_NETIF_DNS_NOT_CONFIGURED
    ERR_TBL_IT(ESP_ERR_ESP_NETIF_DNS_NOT_CONFIGURED),           /* 20490 0x500a */
#   endif
#   ifdef      ESP_ERR_ESP_NETIF_MLD6_FAILED
    ERR_TBL_IT(ESP_ERR_ESP_NETIF_MLD6_FAILED),                  /* 20491 0x500b */
#   endif
#   ifdef      ESP_ERR_ESP_NETIF_IP6_ADDR_FAILED
    ERR_TBL_IT(ESP_ERR_ESP_NETIF_IP6_ADDR_FAILED),              /* 20492 0x500c */
#   endif
#   ifdef      ESP_ERR_ESP_NETIF_DHCPS_START_FAILED
    ERR_TBL_IT(ESP_ERR_ESP_NETIF_DHCPS_START_FAILED),           /* 20493 0x500d */
#   endif
#   ifdef      ESP_ERR_ESP_NETIF_TX_FAILED
    ERR_TBL_IT(ESP_ERR_ESP_NETIF_TX_FAILED),                    /* 20494 0x500e */
#   endif
    // components/esp_common/include/esp_err.h
#   ifdef      ESP_ERR_FLASH_BASE
    ERR_TBL_IT(ESP_ERR_FLASH_BASE),                             /* 24576 0x6000 Starting number of flash error codes */
#   endif
    // components/spi_flash/include/spi_flash_mmap.h
#   ifdef      ESP_ERR_FLASH_OP_FAIL
    ERR_TBL_IT(ESP_ERR_FLASH_OP_FAIL),                          /* 24577 0x6001 */
#   endif
#   ifdef      ESP_ERR_FLASH_OP_TIMEOUT
    ERR_TBL_IT(ESP_ERR_FLASH_OP_TIMEOUT),                       /* 24578 0x6002 */
#   endif
    // components/hal/include/hal/esp_flash_err.h
#   ifdef      ESP_ERR_FLASH_NOT_INITIALISED
    ERR_TBL_IT(ESP_ERR_FLASH_NOT_INITIALISED),                  /* 24579 0x6003 */
#   endif
#   ifdef      ESP_ERR_FLASH_UNSUPPORTED_HOST
    ERR_TBL_IT(ESP_ERR_FLASH_UNSUPPORTED_HOST),                 /* 24580 0x6004 */
#   endif
#   ifdef      ESP_ERR_FLASH_UNSUPPORTED_CHIP
    ERR_TBL_IT(ESP_ERR_FLASH_UNSUPPORTED_CHIP),                 /* 24581 0x6005 */
#   endif
#   ifdef      ESP_ERR_FLASH_PROTECTED
    ERR_TBL_IT(ESP_ERR_FLASH_PROTECTED),                        /* 24582 0x6006 */
#   endif
    // components/esp_http_client/include/esp_http_client.h
#   ifdef      ESP_ERR_HTTP_BASE
    ERR_TBL_IT(ESP_ERR_HTTP_BASE),                              /* 28672 0x7000 Starting number of HTTP error codes */
#   endif
#   ifdef      ESP_ERR_HTTP_MAX_REDIRECT
    ERR_TBL_IT(ESP_ERR_HTTP_MAX_REDIRECT),                      /* 28673 0x7001 The error exceeds the number of HTTP redirects */
#   endif
#   ifdef      ESP_ERR_HTTP_CONNECT
    ERR_TBL_IT(ESP_ERR_HTTP_CONNECT),                           /* 28674 0x7002 Error open the HTTP connection */
#   endif
#   ifdef      ESP_ERR_HTTP_WRITE_DATA
    ERR_TBL_IT(ESP_ERR_HTTP_WRITE_DATA),                        /* 28675 0x7003 Error write HTTP data */
#   endif
#   ifdef      ESP_ERR_HTTP_FETCH_HEADER
    ERR_TBL_IT(ESP_ERR_HTTP_FETCH_HEADER),                      /* 28676 0x7004 Error read HTTP header from server */
#   endif
#   ifdef      ESP_ERR_HTTP_INVALID_TRANSPORT
    ERR_TBL_IT(ESP_ERR_HTTP_INVALID_TRANSPORT),                 /* 28677 0x7005 There are no transport support for the
                                                                                input scheme */
#   endif
#   ifdef      ESP_ERR_HTTP_CONNECTING
    ERR_TBL_IT(ESP_ERR_HTTP_CONNECTING),                        /* 28678 0x7006 HTTP connection hasn't been established yet */
#   endif
#   ifdef      ESP_ERR_HTTP_EAGAIN
    ERR_TBL_IT(ESP_ERR_HTTP_EAGAIN),                            /* 28679 0x7007 Mapping of errno EAGAIN to esp_err_t */
#   endif
#   ifdef      ESP_ERR_HTTP_CONNECTION_CLOSED
    ERR_TBL_IT(ESP_ERR_HTTP_CONNECTION_CLOSED),                 /* 28680 0x7008 Read FIN from peer and the connection closed */
#   endif
#   ifdef      ESP_ERR_HTTP_NOT_MODIFIED
    ERR_TBL_IT(ESP_ERR_HTTP_NOT_MODIFIED),                      /* 28681 0x7009 HTTP 304 Not Modified, no update available */
#   endif
#   ifdef      ESP_ERR_HTTP_RANGE_NOT_SATISFIABLE
    ERR_TBL_IT(ESP_ERR_HTTP_RANGE_NOT_SATISFIABLE),             /* 28682 0x700a HTTP 416 Range Not Satisfiable,
                                                                                requested range in header is incorrect */
#   endif
#   ifdef      ESP_ERR_HTTP_READ_TIMEOUT
    ERR_TBL_IT(ESP_ERR_HTTP_READ_TIMEOUT),                      /* 28683 0x700b HTTP data read timeout */
#   endif
#   ifdef      ESP_ERR_HTTP_INCOMPLETE_DATA
    ERR_TBL_IT(ESP_ERR_HTTP_INCOMPLETE_DATA),                   /* 28684 0x700c Incomplete data received, less than
                                                                                Content-Length or last chunk */
#   endif
    // components/esp-tls/esp_tls_errors.h
#   ifdef      ESP_ERR_ESP_TLS_BASE
    ERR_TBL_IT(ESP_ERR_ESP_TLS_BASE),                           /* 32768 0x8000 Starting number of ESP-TLS error codes */
#   endif
#   ifdef      ESP_ERR_ESP_TLS_CANNOT_RESOLVE_HOSTNAME
    ERR_TBL_IT(ESP_ERR_ESP_TLS_CANNOT_RESOLVE_HOSTNAME),        /* 32769 0x8001 Error if hostname couldn't be resolved
                                                                                upon tls connection */
#   endif
#   ifdef      ESP_ERR_ESP_TLS_CANNOT_CREATE_SOCKET
    ERR_TBL_IT(ESP_ERR_ESP_TLS_CANNOT_CREATE_SOCKET),           /* 32770 0x8002 Failed to create socket */
#   endif
#   ifdef      ESP_ERR_ESP_TLS_UNSUPPORTED_PROTOCOL_FAMILY
    ERR_TBL_IT(ESP_ERR_ESP_TLS_UNSUPPORTED_PROTOCOL_FAMILY),    /* 32771 0x8003 Unsupported protocol family */
#   endif
#   ifdef      ESP_ERR_ESP_TLS_FAILED_CONNECT_TO_HOST
    ERR_TBL_IT(ESP_ERR_ESP_TLS_FAILED_CONNECT_TO_HOST),         /* 32772 0x8004 Failed to connect to host */
#   endif
#   ifdef      ESP_ERR_ESP_TLS_SOCKET_SETOPT_FAILED
    ERR_TBL_IT(ESP_ERR_ESP_TLS_SOCKET_SETOPT_FAILED),           /* 32773 0x8005 failed to set/get socket option */
#   endif
#   ifdef      ESP_ERR_ESP_TLS_CONNECTION_TIMEOUT
    ERR_TBL_IT(ESP_ERR_ESP_TLS_CONNECTION_TIMEOUT),             /* 32774 0x8006 new connection in esp_tls_low_level_conn
                                                                                connection timeouted */
#   endif
#   ifdef      ESP_ERR_ESP_TLS_SE_FAILED
    ERR_TBL_IT(ESP_ERR_ESP_TLS_SE_FAILED),                      /* 32775 0x8007 */
#   endif
#   ifdef      ESP_ERR_ESP_TLS_TCP_CLOSED_FIN
    ERR_TBL_IT(ESP_ERR_ESP_TLS_TCP_CLOSED_FIN),                 /* 32776 0x8008 */
#   endif
#   ifdef      ESP_ERR_ESP_TLS_SERVER_HANDSHAKE_TIMEOUT
    ERR_TBL_IT(ESP_ERR_ESP_TLS_SERVER_HANDSHAKE_TIMEOUT),       /* 32777 0x8009 TLS handshake timeout */
#   endif
#   ifdef      ESP_ERR_MBEDTLS_CERT_PARTLY_OK
    ERR_TBL_IT(ESP_ERR_MBEDTLS_CERT_PARTLY_OK),                 /* 32784 0x8010 mbedtls parse certificates was partly successful */
#   endif
#   ifdef      ESP_ERR_MBEDTLS_CTR_DRBG_SEED_FAILED
    ERR_TBL_IT(ESP_ERR_MBEDTLS_CTR_DRBG_SEED_FAILED),           /* 32785 0x8011 mbedtls api returned error */
#   endif
#   ifdef      ESP_ERR_MBEDTLS_SSL_SET_HOSTNAME_FAILED
    ERR_TBL_IT(ESP_ERR_MBEDTLS_SSL_SET_HOSTNAME_FAILED),        /* 32786 0x8012 mbedtls api returned error */
#   endif
#   ifdef      ESP_ERR_MBEDTLS_SSL_CONFIG_DEFAULTS_FAILED
    ERR_TBL_IT(ESP_ERR_MBEDTLS_SSL_CONFIG_DEFAULTS_FAILED),     /* 32787 0x8013 mbedtls api returned error */
#   endif
#   ifdef      ESP_ERR_MBEDTLS_SSL_CONF_ALPN_PROTOCOLS_FAILED
    ERR_TBL_IT(ESP_ERR_MBEDTLS_SSL_CONF_ALPN_PROTOCOLS_FAILED), /* 32788 0x8014 mbedtls api returned error */
#   endif
#   ifdef      ESP_ERR_MBEDTLS_X509_CRT_PARSE_FAILED
    ERR_TBL_IT(ESP_ERR_MBEDTLS_X509_CRT_PARSE_FAILED),          /* 32789 0x8015 mbedtls api returned error */
#   endif
#   ifdef      ESP_ERR_MBEDTLS_SSL_CONF_OWN_CERT_FAILED
    ERR_TBL_IT(ESP_ERR_MBEDTLS_SSL_CONF_OWN_CERT_FAILED),       /* 32790 0x8016 mbedtls api returned error */
#   endif
#   ifdef      ESP_ERR_MBEDTLS_SSL_SETUP_FAILED
    ERR_TBL_IT(ESP_ERR_MBEDTLS_SSL_SETUP_FAILED),               /* 32791 0x8017 mbedtls api returned error */
#   endif
#   ifdef      ESP_ERR_MBEDTLS_SSL_WRITE_FAILED
    ERR_TBL_IT(ESP_ERR_MBEDTLS_SSL_WRITE_FAILED),               /* 32792 0x8018 mbedtls api returned error */
#   endif
#   ifdef      ESP_ERR_MBEDTLS_PK_PARSE_KEY_FAILED
    ERR_TBL_IT(ESP_ERR_MBEDTLS_PK_PARSE_KEY_FAILED),            /* 32793 0x8019 mbedtls api returned failed */
#   endif
#   ifdef      ESP_ERR_MBEDTLS_SSL_HANDSHAKE_FAILED
    ERR_TBL_IT(ESP_ERR_MBEDTLS_SSL_HANDSHAKE_FAILED),           /* 32794 0x801a mbedtls api returned failed */
#   endif
#   ifdef      ESP_ERR_MBEDTLS_SSL_CONF_PSK_FAILED
    ERR_TBL_IT(ESP_ERR_MBEDTLS_SSL_CONF_PSK_FAILED),            /* 32795 0x801b mbedtls api returned failed */
#   endif
#   ifdef      ESP_ERR_MBEDTLS_SSL_TICKET_SETUP_FAILED
    ERR_TBL_IT(ESP_ERR_MBEDTLS_SSL_TICKET_SETUP_FAILED),        /* 32796 0x801c mbedtls api returned failed */
#   endif
#   ifdef      ESP_ERR_MBEDTLS_SSL_READ_FAILED
    ERR_TBL_IT(ESP_ERR_MBEDTLS_SSL_READ_FAILED),                /* 32797 0x801d mbedtls api returned failed */
#   endif
#   ifdef      ESP_ERR_WOLFSSL_SSL_SET_HOSTNAME_FAILED
    ERR_TBL_IT(ESP_ERR_WOLFSSL_SSL_SET_HOSTNAME_FAILED),        /* 32817 0x8031 wolfSSL api returned error */
#   endif
#   ifdef      ESP_ERR_WOLFSSL_SSL_CONF_ALPN_PROTOCOLS_FAILED
    ERR_TBL_IT(ESP_ERR_WOLFSSL_SSL_CONF_ALPN_PROTOCOLS_FAILED), /* 32818 0x8032 wolfSSL api returned error */
#   endif
#   ifdef      ESP_ERR_WOLFSSL_CERT_VERIFY_SETUP_FAILED
    ERR_TBL_IT(ESP_ERR_WOLFSSL_CERT_VERIFY_SETUP_FAILED),       /* 32819 0x8033 wolfSSL api returned error */
#   endif
#   ifdef      ESP_ERR_WOLFSSL_KEY_VERIFY_SETUP_FAILED
    ERR_TBL_IT(ESP_ERR_WOLFSSL_KEY_VERIFY_SETUP_FAILED),        /* 32820 0x8034 wolfSSL api returned error */
#   endif
#   ifdef      ESP_ERR_WOLFSSL_SSL_HANDSHAKE_FAILED
    ERR_TBL_IT(ESP_ERR_WOLFSSL_SSL_HANDSHAKE_FAILED),           /* 32821 0x8035 wolfSSL api returned failed */
#   endif
#   ifdef      ESP_ERR_WOLFSSL_CTX_SETUP_FAILED
    ERR_TBL_IT(ESP_ERR_WOLFSSL_CTX_SETUP_FAILED),               /* 32822 0x8036 wolfSSL api returned failed */
#   endif
#   ifdef      ESP_ERR_WOLFSSL_SSL_SETUP_FAILED
    ERR_TBL_IT(ESP_ERR_WOLFSSL_SSL_SETUP_FAILED),               /* 32823 0x8037 wolfSSL api returned failed */
#   endif
#   ifdef      ESP_ERR_WOLFSSL_SSL_WRITE_FAILED
    ERR_TBL_IT(ESP_ERR_WOLFSSL_SSL_WRITE_FAILED),               /* 32824 0x8038 wolfSSL api returned failed */
#   endif
    // components/esp_https_ota/include/esp_https_ota.h
#   ifdef      ESP_ERR_HTTPS_OTA_BASE
    ERR_TBL_IT(ESP_ERR_HTTPS_OTA_BASE),                         /* 36864 0x9000 */
#   endif
#   ifdef      ESP_ERR_HTTPS_OTA_IN_PROGRESS
    ERR_TBL_IT(ESP_ERR_HTTPS_OTA_IN_PROGRESS),                  /* 36865 0x9001 */
#   endif
    // components/lwip/include/apps/esp_ping.h
#   ifdef      ESP_ERR_PING_BASE
    ERR_TBL_IT(ESP_ERR_PING_BASE),                              /* 40960 0xa000 */
#   endif
#   ifdef      ESP_ERR_PING_INVALID_PARAMS
    ERR_TBL_IT(ESP_ERR_PING_INVALID_PARAMS),                    /* 40961 0xa001 */
#   endif
#   ifdef      ESP_ERR_PING_NO_MEM
    ERR_TBL_IT(ESP_ERR_PING_NO_MEM),                            /* 40962 0xa002 */
#   endif
    // components/esp_http_server/include/esp_http_server.h
#   ifdef      ESP_ERR_HTTPD_BASE
    ERR_TBL_IT(ESP_ERR_HTTPD_BASE),                             /* 45056 0xb000 Starting number of HTTPD error codes */
#   endif
#   ifdef      ESP_ERR_HTTPD_HANDLERS_FULL
    ERR_TBL_IT(ESP_ERR_HTTPD_HANDLERS_FULL),                    /* 45057 0xb001 All slots for registering URI handlers
                                                                                have been consumed */
#   endif
#   ifdef      ESP_ERR_HTTPD_HANDLER_EXISTS
    ERR_TBL_IT(ESP_ERR_HTTPD_HANDLER_EXISTS),                   /* 45058 0xb002 URI handler with same method and target
                                                                                URI already registered */
#   endif
#   ifdef      ESP_ERR_HTTPD_INVALID_REQ
    ERR_TBL_IT(ESP_ERR_HTTPD_INVALID_REQ),                      /* 45059 0xb003 Invalid request pointer */
#   endif
#   ifdef      ESP_ERR_HTTPD_RESULT_TRUNC
    ERR_TBL_IT(ESP_ERR_HTTPD_RESULT_TRUNC),                     /* 45060 0xb004 Result string truncated */
#   endif
#   ifdef      ESP_ERR_HTTPD_RESP_HDR
    ERR_TBL_IT(ESP_ERR_HTTPD_RESP_HDR),                         /* 45061 0xb005 Response header field larger than supported */
#   endif
#   ifdef      ESP_ERR_HTTPD_RESP_SEND
    ERR_TBL_IT(ESP_ERR_HTTPD_RESP_SEND),                        /* 45062 0xb006 Error occurred while sending response packet */
#   endif
#   ifdef      ESP_ERR_HTTPD_ALLOC_MEM
    ERR_TBL_IT(ESP_ERR_HTTPD_ALLOC_MEM),                        /* 45063 0xb007 Failed to dynamically allocate memory
                                                                                for resource */
#   endif
#   ifdef      ESP_ERR_HTTPD_TASK
    ERR_TBL_IT(ESP_ERR_HTTPD_TASK),                             /* 45064 0xb008 Failed to launch server task/thread */
#   endif
    // components/esp_common/include/esp_err.h
#   ifdef      ESP_ERR_HW_CRYPTO_BASE
    ERR_TBL_IT(ESP_ERR_HW_CRYPTO_BASE),                         /* 49152 0xc000 Starting number of HW cryptography
                                                                                module error codes */
#   endif
    // components/esp_hw_support/include/esp_ds_err.h
#   ifdef      ESP_ERR_HW_CRYPTO_DS_HMAC_FAIL
    ERR_TBL_IT(ESP_ERR_HW_CRYPTO_DS_HMAC_FAIL),                 /* 49153 0xc001 HMAC peripheral problem */
#   endif
#   ifdef      ESP_ERR_HW_CRYPTO_DS_INVALID_KEY
    ERR_TBL_IT(ESP_ERR_HW_CRYPTO_DS_INVALID_KEY),               /* 49154 0xc002 */
#   endif
#   ifdef      ESP_ERR_HW_CRYPTO_DS_INVALID_DIGEST
    ERR_TBL_IT(ESP_ERR_HW_CRYPTO_DS_INVALID_DIGEST),            /* 49156 0xc004 */
#   endif
#   ifdef      ESP_ERR_HW_CRYPTO_DS_INVALID_PADDING
    ERR_TBL_IT(ESP_ERR_HW_CRYPTO_DS_INVALID_PADDING),           /* 49157 0xc005 */
#   endif
    // components/esp_common/include/esp_err.h
#   ifdef      ESP_ERR_MEMPROT_BASE
    ERR_TBL_IT(ESP_ERR_MEMPROT_BASE),                           /* 53248 0xd000 Starting number of Memory Protection API
                                                                                error codes */
#   endif
    // components/esp_hw_support/include/esp_memprot_err.h
#   ifdef      ESP_ERR_MEMPROT_MEMORY_TYPE_INVALID
    ERR_TBL_IT(ESP_ERR_MEMPROT_MEMORY_TYPE_INVALID),            /* 53249 0xd001 */
#   endif
#   ifdef      ESP_ERR_MEMPROT_SPLIT_ADDR_INVALID
    ERR_TBL_IT(ESP_ERR_MEMPROT_SPLIT_ADDR_INVALID),             /* 53250 0xd002 */
#   endif
#   ifdef      ESP_ERR_MEMPROT_SPLIT_ADDR_OUT_OF_RANGE
    ERR_TBL_IT(ESP_ERR_MEMPROT_SPLIT_ADDR_OUT_OF_RANGE),        /* 53251 0xd003 */
#   endif
#   ifdef      ESP_ERR_MEMPROT_SPLIT_ADDR_UNALIGNED
    ERR_TBL_IT(ESP_ERR_MEMPROT_SPLIT_ADDR_UNALIGNED),           /* 53252 0xd004 */
#   endif
#   ifdef      ESP_ERR_MEMPROT_UNIMGMT_BLOCK_INVALID
    ERR_TBL_IT(ESP_ERR_MEMPROT_UNIMGMT_BLOCK_INVALID),          /* 53253 0xd005 */
#   endif
#   ifdef      ESP_ERR_MEMPROT_WORLD_INVALID
    ERR_TBL_IT(ESP_ERR_MEMPROT_WORLD_INVALID),                  /* 53254 0xd006 */
#   endif
#   ifdef      ESP_ERR_MEMPROT_AREA_INVALID
    ERR_TBL_IT(ESP_ERR_MEMPROT_AREA_INVALID),                   /* 53255 0xd007 */
#   endif
#   ifdef      ESP_ERR_MEMPROT_CPUID_INVALID
    ERR_TBL_IT(ESP_ERR_MEMPROT_CPUID_INVALID),                  /* 53256 0xd008 */
#   endif
    // components/tcp_transport/include/esp_transport.h
#   ifdef      ESP_ERR_TCP_TRANSPORT_BASE
    ERR_TBL_IT(ESP_ERR_TCP_TRANSPORT_BASE),                     /* 57344 0xe000 Starting number of TCP Transport error codes */
#   endif
#   ifdef      ESP_ERR_TCP_TRANSPORT_CONNECTION_TIMEOUT
    ERR_TBL_IT(ESP_ERR_TCP_TRANSPORT_CONNECTION_TIMEOUT),       /* 57345 0xe001 Connection has timed out */
#   endif
#   ifdef      ESP_ERR_TCP_TRANSPORT_CONNECTION_CLOSED_BY_FIN
    ERR_TBL_IT(ESP_ERR_TCP_TRANSPORT_CONNECTION_CLOSED_BY_FIN), /* 57346 0xe002 Read FIN from peer and the connection
                                                                                has closed (in a clean way) */
#   endif
#   ifdef      ESP_ERR_TCP_TRANSPORT_CONNECTION_FAILED
    ERR_TBL_IT(ESP_ERR_TCP_TRANSPORT_CONNECTION_FAILED),        /* 57347 0xe003 Failed to connect to the peer */
#   endif
#   ifdef      ESP_ERR_TCP_TRANSPORT_NO_MEM
    ERR_TBL_IT(ESP_ERR_TCP_TRANSPORT_NO_MEM),                   /* 57348 0xe004 Memory allocation failed */
#   endif
    // components/nvs_sec_provider/include/nvs_sec_provider.h
#   ifdef      ESP_ERR_NVS_SEC_BASE
    ERR_TBL_IT(ESP_ERR_NVS_SEC_BASE),                           /* 61440 0xf000 Starting number of error codes */
#   endif
#   ifdef      ESP_ERR_NVS_SEC_HMAC_KEY_NOT_FOUND
    ERR_TBL_IT(ESP_ERR_NVS_SEC_HMAC_KEY_NOT_FOUND),             /* 61441 0xf001 HMAC Key required to generate the NVS
                                                                                encryption keys not found */
#   endif
#   ifdef      ESP_ERR_NVS_SEC_HMAC_KEY_BLK_ALREADY_USED
    ERR_TBL_IT(ESP_ERR_NVS_SEC_HMAC_KEY_BLK_ALREADY_USED),      /* 61442 0xf002 Provided eFuse block for HMAC key
                                                                                generation is already in use */
#   endif
#   ifdef      ESP_ERR_NVS_SEC_HMAC_KEY_GENERATION_FAILED
    ERR_TBL_IT(ESP_ERR_NVS_SEC_HMAC_KEY_GENERATION_FAILED),     /* 61443 0xf003 Failed to generate/write the HMAC key to eFuse */
#   endif
#   ifdef      ESP_ERR_NVS_SEC_HMAC_XTS_KEYS_DERIV_FAILED
    ERR_TBL_IT(ESP_ERR_NVS_SEC_HMAC_XTS_KEYS_DERIV_FAILED),     /* 61444 0xf004 Failed to derive the NVS encryption keys
                                                                                based on the HMAC-based scheme */
#   endif
};
#endif //CONFIG_ESP_ERR_TO_NAME_LOOKUP

static const char esp_unknown_msg[] =
#ifdef CONFIG_ESP_ERR_TO_NAME_LOOKUP
    "ERROR";
#else
    "UNKNOWN ERROR";
#endif //CONFIG_ESP_ERR_TO_NAME_LOOKUP

const char *esp_err_to_name(esp_err_t code)
{
#ifdef CONFIG_ESP_ERR_TO_NAME_LOOKUP
    size_t i;

    for (i = 0; i < sizeof(esp_err_msg_table) / sizeof(esp_err_msg_table[0]); ++i) {
        if (esp_err_msg_table[i].code == code) {
            return esp_err_msg_table[i].msg;
        }
    }
#endif //CONFIG_ESP_ERR_TO_NAME_LOOKUP

    return esp_unknown_msg;
}

const char *esp_err_to_name_r(esp_err_t code, char *buf, size_t buflen)
{
#ifdef CONFIG_ESP_ERR_TO_NAME_LOOKUP
    size_t i;

    for (i = 0; i < sizeof(esp_err_msg_table) / sizeof(esp_err_msg_table[0]); ++i) {
        if (esp_err_msg_table[i].code == code) {
            strlcpy(buf, esp_err_msg_table[i].msg, buflen);
            return buf;
        }
    }
#endif //CONFIG_ESP_ERR_TO_NAME_LOOKUP

    if (strerror_r(code, buf, buflen) == 0) {
        return buf;
    }

    snprintf(buf, buflen, "%s 0x%x(%d)", esp_unknown_msg, code, code);

    return buf;
}
