2017-08-27 12:05:17 +02:00
/*
2023-05-22 14:32:14 +02:00
* Copyright ( c ) Meta Platforms , Inc . and affiliates .
2017-06-09 03:43:56 +02:00
* All rights reserved .
*
2017-08-27 12:05:17 +02:00
* This source code is licensed under both the BSD - style license ( found in the
* LICENSE file in the root directory of this source tree ) and the GPLv2 ( found
* in the COPYING file in the root directory of this source tree ) .
2017-10-26 22:41:47 +02:00
* You may select , at your option , one of the above - listed licenses .
2017-06-09 03:43:56 +02:00
*/
# ifndef ZSTD_ERRORS_H_398273423
# define ZSTD_ERRORS_H_398273423
# if defined (__cplusplus)
extern " C " {
# endif
/*===== dependency =====*/
# include <stddef.h> /* size_t */
/* ===== ZSTDERRORLIB_API : control library symbols visibility ===== */
2023-05-22 14:32:14 +02:00
# ifndef ZSTDERRORLIB_VISIBLE
/* Backwards compatibility with old macro name */
# ifdef ZSTDERRORLIB_VISIBILITY
# define ZSTDERRORLIB_VISIBLE ZSTDERRORLIB_VISIBILITY
# elif defined(__GNUC__) && (__GNUC__ >= 4) && !defined(__MINGW32__)
# define ZSTDERRORLIB_VISIBLE __attribute__ ((visibility ("default")))
2017-07-22 23:46:05 +02:00
# else
2023-05-22 14:32:14 +02:00
# define ZSTDERRORLIB_VISIBLE
2017-07-22 23:46:05 +02:00
# endif
2017-06-09 03:43:56 +02:00
# endif
2023-05-22 14:32:14 +02:00
# ifndef ZSTDERRORLIB_HIDDEN
# if defined(__GNUC__) && (__GNUC__ >= 4) && !defined(__MINGW32__)
# define ZSTDERRORLIB_HIDDEN __attribute__ ((visibility ("hidden")))
# else
# define ZSTDERRORLIB_HIDDEN
# endif
# endif
2017-06-09 03:43:56 +02:00
# if defined(ZSTD_DLL_EXPORT) && (ZSTD_DLL_EXPORT==1)
2023-05-22 14:32:14 +02:00
# define ZSTDERRORLIB_API __declspec(dllexport) ZSTDERRORLIB_VISIBLE
2017-06-09 03:43:56 +02:00
# elif defined(ZSTD_DLL_IMPORT) && (ZSTD_DLL_IMPORT==1)
2023-05-22 14:32:14 +02:00
# define ZSTDERRORLIB_API __declspec(dllimport) ZSTDERRORLIB_VISIBLE /* It isn't required but allows to generate better code, saving a function pointer load from the IAT and an indirect jump.*/
2017-06-09 03:43:56 +02:00
# else
2023-05-22 14:32:14 +02:00
# define ZSTDERRORLIB_API ZSTDERRORLIB_VISIBLE
2017-06-09 03:43:56 +02:00
# endif
2018-05-15 19:45:22 +02:00
/*-*********************************************
* Error codes list
* - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Error codes _values_ are pinned down since v1 .3 .1 only .
* Therefore , don ' t rely on values if you may link to any version < v1 .3 .1 .
*
* Only values < 100 are considered stable .
*
* note 1 : this API shall be used with static linking only .
* dynamic linking is not yet officially supported .
* note 2 : Prefer relying on the enum than on its value whenever possible
* This is the only supported way to use the error list < v1 .3 .1
* note 3 : ZSTD_isError ( ) is always correct , whatever the library version .
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2017-06-09 03:43:56 +02:00
typedef enum {
2017-08-27 12:05:17 +02:00
ZSTD_error_no_error = 0 ,
ZSTD_error_GENERIC = 1 ,
ZSTD_error_prefix_unknown = 10 ,
ZSTD_error_version_unsupported = 12 ,
ZSTD_error_frameParameter_unsupported = 14 ,
ZSTD_error_frameParameter_windowTooLarge = 16 ,
ZSTD_error_corruption_detected = 20 ,
ZSTD_error_checksum_wrong = 22 ,
2023-05-22 14:32:14 +02:00
ZSTD_error_literals_headerWrong = 24 ,
2017-08-27 12:05:17 +02:00
ZSTD_error_dictionary_corrupted = 30 ,
ZSTD_error_dictionary_wrong = 32 ,
ZSTD_error_dictionaryCreation_failed = 34 ,
ZSTD_error_parameter_unsupported = 40 ,
2023-05-22 14:32:14 +02:00
ZSTD_error_parameter_combination_unsupported = 41 ,
2017-08-27 12:05:17 +02:00
ZSTD_error_parameter_outOfBound = 42 ,
ZSTD_error_tableLog_tooLarge = 44 ,
ZSTD_error_maxSymbolValue_tooLarge = 46 ,
ZSTD_error_maxSymbolValue_tooSmall = 48 ,
2023-05-22 14:32:14 +02:00
ZSTD_error_stabilityCondition_notRespected = 50 ,
2017-08-27 12:05:17 +02:00
ZSTD_error_stage_wrong = 60 ,
ZSTD_error_init_missing = 62 ,
ZSTD_error_memory_allocation = 64 ,
2018-05-15 19:45:22 +02:00
ZSTD_error_workSpace_tooSmall = 66 ,
2017-08-27 12:05:17 +02:00
ZSTD_error_dstSize_tooSmall = 70 ,
ZSTD_error_srcSize_wrong = 72 ,
2019-01-04 01:30:03 +01:00
ZSTD_error_dstBuffer_null = 74 ,
2023-05-22 14:32:14 +02:00
ZSTD_error_noForwardProgress_destFull = 80 ,
ZSTD_error_noForwardProgress_inputEmpty = 82 ,
2018-05-15 19:45:22 +02:00
/* following error codes are __NOT STABLE__, they can be removed or changed in future versions */
2017-08-27 12:05:17 +02:00
ZSTD_error_frameIndex_tooLarge = 100 ,
ZSTD_error_seekableIO = 102 ,
2020-09-18 21:38:36 +02:00
ZSTD_error_dstBuffer_wrong = 104 ,
2021-01-08 11:21:43 +01:00
ZSTD_error_srcBuffer_wrong = 105 ,
2023-05-22 14:32:14 +02:00
ZSTD_error_sequenceProducer_failed = 106 ,
ZSTD_error_externalSequences_invalid = 107 ,
2017-10-26 22:41:47 +02:00
ZSTD_error_maxCode = 120 /* never EVER use this value directly, it can change in future versions! Use ZSTD_isError() instead */
2017-06-09 03:43:56 +02:00
} ZSTD_ErrorCode ;
/*! ZSTD_getErrorCode() :
convert a ` size_t ` function result into a ` ZSTD_ErrorCode ` enum type ,
2017-07-22 23:46:05 +02:00
which can be used to compare with enum list published above */
2017-06-09 03:43:56 +02:00
ZSTDERRORLIB_API ZSTD_ErrorCode ZSTD_getErrorCode ( size_t functionResult ) ;
2017-08-27 12:05:17 +02:00
ZSTDERRORLIB_API const char * ZSTD_getErrorString ( ZSTD_ErrorCode code ) ; /**< Same as ZSTD_getErrorName, but using a `ZSTD_ErrorCode` enum argument */
2017-06-09 03:43:56 +02:00
# if defined (__cplusplus)
}
# endif
# endif /* ZSTD_ERRORS_H_398273423 */