/* * Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ #ifndef KVS_ERRORS_H #define KVS_ERRORS_H typedef enum KvsModule { KVS_MODULE_COMMON = 0, KVS_MODULE_RESTFUL = 1, KVS_MODULE_PUTMEDIA = 2, KVS_MODULE_MBEDTLS = 3, KVS_MODULE_CALLBACK = 4, } KvsModule_t; #define KVS_ERROR_COMMON_BASE (KVS_MODULE_COMMON<<16) #define KVS_ERROR_RESTFUL_BASE (KVS_MODULE_RESTFUL<<16) #define KVS_ERROR_PUTMEDIA_BASE (KVS_MODULE_PUTMEDIA<<16) #define KVS_ERROR_MBEDTLS_BASE (KVS_MODULE_MBEDTLS<<16) #define KVS_ERROR_CALLBACK_BASE (KVS_MODULE_CALLBACK<<16) #define KVS_GENERATE_COMMON_ERROR(xErrorCode) (-(KVS_ERROR_COMMON_BASE | (xErrorCode))) #define KVS_GENERATE_RESTFUL_ERROR(xErrorCode) (-(KVS_ERROR_RESTFUL_BASE | (xErrorCode))) #define KVS_GENERATE_PUTMEDIA_ERROR(xErrorCode) (-(KVS_ERROR_PUTMEDIA_BASE | (xErrorCode))) #define KVS_GENERATE_MBEDTLS_ERROR(xErrorCode) (-(KVS_ERROR_MBEDTLS_BASE | -(xErrorCode))) #define KVS_GENERATE_CALLBACK_ERROR(xErrorCode) (-(KVS_ERROR_CALLBACK_BASE | -(xErrorCode))) #define KVS_GET_ERROR_MODULE_TYPE(xErrorCode) ((KvsModule_t)((-(xErrorCode))>>16)) #define KVS_GET_ERROR_MODULE_CODE(xErrorCode) ((KVS_GET_ERROR_MODULE_TYPE(xErrorCode)==KVS_MODULE_MBEDTLS || KVS_GET_ERROR_MODULE_TYPE(xErrorCode)==KVS_MODULE_CALLBACK) ? (-(-(xErrorCode) & 0xFFFF)) : (-(xErrorCode) & 0xFFFF)) /* Generic errors */ #define KVS_ERROR_GENERIC (-(KVS_ERROR_COMMON_BASE + 0x0001)) #define KVS_ERROR_INVALID_ARGUMENT (-(KVS_ERROR_COMMON_BASE + 0x0002)) #define KVS_ERROR_OUT_OF_MEMORY (-(KVS_ERROR_COMMON_BASE + 0x0003)) #define KVS_ERROR_LOCK_ERROR (-(KVS_ERROR_COMMON_BASE + 0x0004)) #define KVS_ERROR_C_UTIL_STRING_ERROR (-(KVS_ERROR_COMMON_BASE + 0x0005)) #define KVS_ERROR_C_UTIL_UNABLE_TO_CREATE_BUFFER (-(KVS_ERROR_COMMON_BASE + 0x0006)) #define KVS_ERROR_C_UTIL_UNABLE_TO_ENLARGE_BUFFER (-(KVS_ERROR_COMMON_BASE + 0x0007)) #define KVS_ERROR_TLSF_FAILED_TO_CREATE_POOL (-(KVS_ERROR_COMMON_BASE + 0x0008)) /* Transport layer errors */ #define KVS_ERROR_NETIO_SEND_MORE_THAN_REMAINING_DATA (-(KVS_ERROR_COMMON_BASE + 0x0041)) #define KVS_ERROR_NETIO_RECV_MORE_THAN_AVAILABLE_SPACE (-(KVS_ERROR_COMMON_BASE + 0x0042)) #define KVS_ERROR_NETIO_UNABLE_TO_SET_SEND_TIMEOUT (-(KVS_ERROR_COMMON_BASE + 0x0043)) #define KVS_ERROR_UNKNOWN_MBEDTLS_MESSAGE_DIGEST (-(KVS_ERROR_COMMON_BASE + 0x0044)) #define KVS_ERROR_INVALID_MBEDTLS_MESSAGE_DIGEST_SIZE (-(KVS_ERROR_COMMON_BASE + 0x0045)) /* RESTful and HTTP errors */ #define KVS_ERROR_UNABLE_TO_GET_HTTP_HEADER_COUNT (-(KVS_ERROR_COMMON_BASE + 0x0101)) #define KVS_ERROR_UNABLE_TO_GET_HTTP_HEADER (-(KVS_ERROR_COMMON_BASE + 0x0102)) #define KVS_ERROR_RECV_ZERO_SIZED_HTTP_DATA (-(KVS_ERROR_COMMON_BASE + 0x0103)) #define KVS_ERROR_HTTP_PARSE_EXECUTE_FAIL (-(KVS_ERROR_COMMON_BASE + 0x0104)) #define KVS_ERROR_HTTP_100_CONTINUE_EXPECT_MORE (-(KVS_ERROR_COMMON_BASE + 0x0105)) #define KVS_ERROR_UNABLE_TO_ALLOCATE_HTTP_BODY (-(KVS_ERROR_COMMON_BASE + 0x0106)) #define KVS_ERROR_UNABLE_TO_GENERATE_HTTP_HEADER (-(KVS_ERROR_COMMON_BASE + 0x0107)) #define KVS_ERROR_FAIL_TO_PARSE_JSON_OF_IOT_CREDENTIAL (-(KVS_ERROR_COMMON_BASE + 0x0108)) #define KVS_ERROR_FAIL_TO_GENERATE_HTTP_HEADERS (-(KVS_ERROR_COMMON_BASE + 0x0109)) #define KVS_ERROR_FAIL_TO_CREATE_NETIO_HANDLE (-(KVS_ERROR_COMMON_BASE + 0x010A)) #define KVS_ERROR_FAIL_TO_CREATE_SIGV4_HANDLE (-(KVS_ERROR_COMMON_BASE + 0x010B)) #define KVS_ERROR_FAIL_TO_ADD_CANONICAL_HEADER (-(KVS_ERROR_COMMON_BASE + 0x010C)) #define KVS_ERROR_FAIL_TO_ADD_CANONICAL_BODY (-(KVS_ERROR_COMMON_BASE + 0x010D)) #define KVS_ERROR_FAIL_TO_PARSE_DATA_ENDPOINT (-(KVS_ERROR_COMMON_BASE + 0x010E)) #define KVS_ERROR_FAIL_TO_PARSE_FRAGMENT_ACK_LENGTH (-(KVS_ERROR_COMMON_BASE + 0x010F)) #define KVS_ERROR_FAIL_TO_PARSE_FRAGMENT_ACK_MSG (-(KVS_ERROR_COMMON_BASE + 0x0110)) #define KVS_ERROR_UNKNOWN_FRAGMENT_ACK_TYPE (-(KVS_ERROR_COMMON_BASE + 0x0111)) #define KVS_ERROR_PAST_OLD_TIME (-(KVS_ERROR_COMMON_BASE + 0x0112)) #define KVS_ERROR_FAIL_TO_SIGN_HTTP_REQ (-(KVS_ERROR_COMMON_BASE + 0x0113)) #define KVS_ERROR_FAIL_TO_CREATE_PUT_MEDIA_HANDLE (-(KVS_ERROR_COMMON_BASE + 0x0114)) #define KVS_ERROR_NO_PUTMEDIA_FRAGMENT_ACK_AVAILABLE (-(KVS_ERROR_COMMON_BASE + 0x0115)) #define KVS_ERROR_NO_AWS_ACCESS_KEY_OR_SECRET_KEY (-(KVS_ERROR_COMMON_BASE + 0x0116)) /* MKV errors */ #define KVS_ERROR_MKV_UNKNOWN_CLUSTER_TYPE (-(KVS_ERROR_COMMON_BASE + 0x0201)) #define KVS_ERROR_AVCC_NALU_IS_BROKEN (-(KVS_ERROR_COMMON_BASE + 0x0202)) #define KVS_ERROR_NALU_TYPE_NOT_FOUND (-(KVS_ERROR_COMMON_BASE + 0x0203)) #define KVS_ERROR_INVALID_NALU_FORMAT (-(KVS_ERROR_COMMON_BASE + 0x0204)) #define KVS_ERROR_MISSING_NALU (-(KVS_ERROR_COMMON_BASE + 0x0205)) #define KVS_ERROR_EXCEED_MAX_NALU_COUNT_LIMIT (-(KVS_ERROR_COMMON_BASE + 0x0206)) #define KVS_ERROR_NO_ENOUGH_SPACE_FOR_NALU_CONVERSION (-(KVS_ERROR_COMMON_BASE + 0x0207)) #define KVS_ERROR_MKV_INVALID_AUDIO_FREQUENCY (-(KVS_ERROR_COMMON_BASE + 0x0208)) /* Streaming errors */ #define KVS_ERROR_STREAM_MKV_IS_NOT_INITIALIZED (-(KVS_ERROR_COMMON_BASE + 0x0301)) #define KVS_ERROR_INVALID_CLUSTER_HDR_LEN (-(KVS_ERROR_COMMON_BASE + 0x0302)) #define KVS_ERROR_STREAM_NO_AVAILABLE_DATA_FRAME (-(KVS_ERROR_COMMON_BASE + 0x0303)) #define KVS_ERROR_FAIL_TO_CREATE_STREAM_HANDLE (-(KVS_ERROR_COMMON_BASE + 0x0304)) #define KVS_ERROR_INVALID_STREAM_POLICY (-(KVS_ERROR_COMMON_BASE + 0x0305)) #define KVS_ERROR_ADD_FRAME_WHOSE_TIMESTAMP_GOES_BACK (-(KVS_ERROR_COMMON_BASE + 0x0306)) #define KVS_ERROR_STREAM_NOT_READY (-(KVS_ERROR_COMMON_BASE + 0x0307)) #define KVS_ERROR_FAIL_TO_ADD_DATA_FRAME_TO_STREAM (-(KVS_ERROR_COMMON_BASE + 0x0308)) /* KVS application errors */ #define KVS_ERROR_KVSAPP_UNKNOWN_DO_WORK_TYPE (-(KVS_ERROR_COMMON_BASE + 0x0341)) #define KVS_ERRNO_NONE 0 #define KVS_ERRNO_FAIL KVS_ERROR_GENERIC #endif /* KVS_ERRORS_H */