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