Home | History | Annotate | Line # | Download | only in lib
      1      1.1  christos /*
      2      1.1  christos  * Copyright (c) Meta Platforms, Inc. and affiliates.
      3      1.1  christos  * All rights reserved.
      4      1.1  christos  *
      5      1.1  christos  * This source code is licensed under both the BSD-style license (found in the
      6      1.1  christos  * LICENSE file in the root directory of this source tree) and the GPLv2 (found
      7      1.1  christos  * in the COPYING file in the root directory of this source tree).
      8      1.1  christos  * You may select, at your option, one of the above-listed licenses.
      9      1.1  christos  */
     10      1.1  christos 
     11      1.1  christos #ifndef ZSTD_ERRORS_H_398273423
     12      1.1  christos #define ZSTD_ERRORS_H_398273423
     13      1.1  christos 
     14      1.1  christos #if defined (__cplusplus)
     15      1.1  christos extern "C" {
     16      1.1  christos #endif
     17      1.1  christos 
     18      1.1  christos /* =====   ZSTDERRORLIB_API : control library symbols visibility   ===== */
     19      1.1  christos #ifndef ZSTDERRORLIB_VISIBLE
     20      1.1  christos    /* Backwards compatibility with old macro name */
     21      1.1  christos #  ifdef ZSTDERRORLIB_VISIBILITY
     22      1.1  christos #    define ZSTDERRORLIB_VISIBLE ZSTDERRORLIB_VISIBILITY
     23      1.1  christos #  elif defined(__GNUC__) && (__GNUC__ >= 4) && !defined(__MINGW32__)
     24      1.1  christos #    define ZSTDERRORLIB_VISIBLE __attribute__ ((visibility ("default")))
     25      1.1  christos #  else
     26      1.1  christos #    define ZSTDERRORLIB_VISIBLE
     27      1.1  christos #  endif
     28      1.1  christos #endif
     29      1.1  christos 
     30      1.1  christos #ifndef ZSTDERRORLIB_HIDDEN
     31      1.1  christos #  if defined(__GNUC__) && (__GNUC__ >= 4) && !defined(__MINGW32__)
     32      1.1  christos #    define ZSTDERRORLIB_HIDDEN __attribute__ ((visibility ("hidden")))
     33      1.1  christos #  else
     34      1.1  christos #    define ZSTDERRORLIB_HIDDEN
     35      1.1  christos #  endif
     36      1.1  christos #endif
     37      1.1  christos 
     38      1.1  christos #if defined(ZSTD_DLL_EXPORT) && (ZSTD_DLL_EXPORT==1)
     39      1.1  christos #  define ZSTDERRORLIB_API __declspec(dllexport) ZSTDERRORLIB_VISIBLE
     40      1.1  christos #elif defined(ZSTD_DLL_IMPORT) && (ZSTD_DLL_IMPORT==1)
     41      1.1  christos #  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.*/
     42      1.1  christos #else
     43      1.1  christos #  define ZSTDERRORLIB_API ZSTDERRORLIB_VISIBLE
     44      1.1  christos #endif
     45      1.1  christos 
     46      1.1  christos /*-*********************************************
     47      1.1  christos  *  Error codes list
     48      1.1  christos  *-*********************************************
     49      1.1  christos  *  Error codes _values_ are pinned down since v1.3.1 only.
     50      1.1  christos  *  Therefore, don't rely on values if you may link to any version < v1.3.1.
     51      1.1  christos  *
     52      1.1  christos  *  Only values < 100 are considered stable.
     53      1.1  christos  *
     54      1.1  christos  *  note 1 : this API shall be used with static linking only.
     55      1.1  christos  *           dynamic linking is not yet officially supported.
     56      1.1  christos  *  note 2 : Prefer relying on the enum than on its value whenever possible
     57      1.1  christos  *           This is the only supported way to use the error list < v1.3.1
     58      1.1  christos  *  note 3 : ZSTD_isError() is always correct, whatever the library version.
     59      1.1  christos  **********************************************/
     60      1.1  christos typedef enum {
     61      1.1  christos   ZSTD_error_no_error = 0,
     62      1.1  christos   ZSTD_error_GENERIC  = 1,
     63      1.1  christos   ZSTD_error_prefix_unknown                = 10,
     64      1.1  christos   ZSTD_error_version_unsupported           = 12,
     65      1.1  christos   ZSTD_error_frameParameter_unsupported    = 14,
     66      1.1  christos   ZSTD_error_frameParameter_windowTooLarge = 16,
     67      1.1  christos   ZSTD_error_corruption_detected = 20,
     68      1.1  christos   ZSTD_error_checksum_wrong      = 22,
     69      1.1  christos   ZSTD_error_literals_headerWrong = 24,
     70      1.1  christos   ZSTD_error_dictionary_corrupted      = 30,
     71      1.1  christos   ZSTD_error_dictionary_wrong          = 32,
     72      1.1  christos   ZSTD_error_dictionaryCreation_failed = 34,
     73      1.1  christos   ZSTD_error_parameter_unsupported   = 40,
     74      1.1  christos   ZSTD_error_parameter_combination_unsupported = 41,
     75      1.1  christos   ZSTD_error_parameter_outOfBound    = 42,
     76      1.1  christos   ZSTD_error_tableLog_tooLarge       = 44,
     77      1.1  christos   ZSTD_error_maxSymbolValue_tooLarge = 46,
     78      1.1  christos   ZSTD_error_maxSymbolValue_tooSmall = 48,
     79  1.1.1.2  christos   ZSTD_error_cannotProduce_uncompressedBlock = 49,
     80      1.1  christos   ZSTD_error_stabilityCondition_notRespected = 50,
     81      1.1  christos   ZSTD_error_stage_wrong       = 60,
     82      1.1  christos   ZSTD_error_init_missing      = 62,
     83      1.1  christos   ZSTD_error_memory_allocation = 64,
     84      1.1  christos   ZSTD_error_workSpace_tooSmall= 66,
     85      1.1  christos   ZSTD_error_dstSize_tooSmall = 70,
     86      1.1  christos   ZSTD_error_srcSize_wrong    = 72,
     87      1.1  christos   ZSTD_error_dstBuffer_null   = 74,
     88      1.1  christos   ZSTD_error_noForwardProgress_destFull = 80,
     89      1.1  christos   ZSTD_error_noForwardProgress_inputEmpty = 82,
     90      1.1  christos   /* following error codes are __NOT STABLE__, they can be removed or changed in future versions */
     91      1.1  christos   ZSTD_error_frameIndex_tooLarge = 100,
     92      1.1  christos   ZSTD_error_seekableIO          = 102,
     93      1.1  christos   ZSTD_error_dstBuffer_wrong     = 104,
     94      1.1  christos   ZSTD_error_srcBuffer_wrong     = 105,
     95      1.1  christos   ZSTD_error_sequenceProducer_failed = 106,
     96      1.1  christos   ZSTD_error_externalSequences_invalid = 107,
     97      1.1  christos   ZSTD_error_maxCode = 120  /* never EVER use this value directly, it can change in future versions! Use ZSTD_isError() instead */
     98      1.1  christos } ZSTD_ErrorCode;
     99      1.1  christos 
    100      1.1  christos ZSTDERRORLIB_API const char* ZSTD_getErrorString(ZSTD_ErrorCode code);   /**< Same as ZSTD_getErrorName, but using a `ZSTD_ErrorCode` enum argument */
    101      1.1  christos 
    102      1.1  christos 
    103      1.1  christos #if defined (__cplusplus)
    104      1.1  christos }
    105      1.1  christos #endif
    106      1.1  christos 
    107      1.1  christos #endif /* ZSTD_ERRORS_H_398273423 */
    108