1*c03c5b1cSMartin Matuska /* 2*c03c5b1cSMartin Matuska * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc. 3*c03c5b1cSMartin Matuska * All rights reserved. 4*c03c5b1cSMartin Matuska * 5*c03c5b1cSMartin Matuska * This source code is licensed under both the BSD-style license (found in the 6*c03c5b1cSMartin Matuska * LICENSE file in the root directory of this source tree) and the GPLv2 (found 7*c03c5b1cSMartin Matuska * in the COPYING file in the root directory of this source tree). 8*c03c5b1cSMartin Matuska * You may select, at your option, one of the above-listed licenses. 9*c03c5b1cSMartin Matuska */ 10*c03c5b1cSMartin Matuska 11*c03c5b1cSMartin Matuska /* The purpose of this file is to have a single list of error strings embedded in binary */ 12*c03c5b1cSMartin Matuska 13*c03c5b1cSMartin Matuska #include "error_private.h" 14*c03c5b1cSMartin Matuska ERR_getErrorString(ERR_enum code)15*c03c5b1cSMartin Matuskaconst char* ERR_getErrorString(ERR_enum code) 16*c03c5b1cSMartin Matuska { 17*c03c5b1cSMartin Matuska #ifdef ZSTD_STRIP_ERROR_STRINGS 18*c03c5b1cSMartin Matuska (void)code; 19*c03c5b1cSMartin Matuska return "Error strings stripped"; 20*c03c5b1cSMartin Matuska #else 21*c03c5b1cSMartin Matuska static const char* const notErrorCode = "Unspecified error code"; 22*c03c5b1cSMartin Matuska switch( code ) 23*c03c5b1cSMartin Matuska { 24*c03c5b1cSMartin Matuska case PREFIX(no_error): return "No error detected"; 25*c03c5b1cSMartin Matuska case PREFIX(GENERIC): return "Error (generic)"; 26*c03c5b1cSMartin Matuska case PREFIX(prefix_unknown): return "Unknown frame descriptor"; 27*c03c5b1cSMartin Matuska case PREFIX(version_unsupported): return "Version not supported"; 28*c03c5b1cSMartin Matuska case PREFIX(frameParameter_unsupported): return "Unsupported frame parameter"; 29*c03c5b1cSMartin Matuska case PREFIX(frameParameter_windowTooLarge): return "Frame requires too much memory for decoding"; 30*c03c5b1cSMartin Matuska case PREFIX(corruption_detected): return "Corrupted block detected"; 31*c03c5b1cSMartin Matuska case PREFIX(checksum_wrong): return "Restored data doesn't match checksum"; 32*c03c5b1cSMartin Matuska case PREFIX(parameter_unsupported): return "Unsupported parameter"; 33*c03c5b1cSMartin Matuska case PREFIX(parameter_outOfBound): return "Parameter is out of bound"; 34*c03c5b1cSMartin Matuska case PREFIX(init_missing): return "Context should be init first"; 35*c03c5b1cSMartin Matuska case PREFIX(memory_allocation): return "Allocation error : not enough memory"; 36*c03c5b1cSMartin Matuska case PREFIX(workSpace_tooSmall): return "workSpace buffer is not large enough"; 37*c03c5b1cSMartin Matuska case PREFIX(stage_wrong): return "Operation not authorized at current processing stage"; 38*c03c5b1cSMartin Matuska case PREFIX(tableLog_tooLarge): return "tableLog requires too much memory : unsupported"; 39*c03c5b1cSMartin Matuska case PREFIX(maxSymbolValue_tooLarge): return "Unsupported max Symbol Value : too large"; 40*c03c5b1cSMartin Matuska case PREFIX(maxSymbolValue_tooSmall): return "Specified maxSymbolValue is too small"; 41*c03c5b1cSMartin Matuska case PREFIX(dictionary_corrupted): return "Dictionary is corrupted"; 42*c03c5b1cSMartin Matuska case PREFIX(dictionary_wrong): return "Dictionary mismatch"; 43*c03c5b1cSMartin Matuska case PREFIX(dictionaryCreation_failed): return "Cannot create Dictionary from provided samples"; 44*c03c5b1cSMartin Matuska case PREFIX(dstSize_tooSmall): return "Destination buffer is too small"; 45*c03c5b1cSMartin Matuska case PREFIX(srcSize_wrong): return "Src size is incorrect"; 46*c03c5b1cSMartin Matuska case PREFIX(dstBuffer_null): return "Operation on NULL destination buffer"; 47*c03c5b1cSMartin Matuska /* following error codes are not stable and may be removed or changed in a future version */ 48*c03c5b1cSMartin Matuska case PREFIX(frameIndex_tooLarge): return "Frame index is too large"; 49*c03c5b1cSMartin Matuska case PREFIX(seekableIO): return "An I/O error occurred when reading/seeking"; 50*c03c5b1cSMartin Matuska case PREFIX(dstBuffer_wrong): return "Destination buffer is wrong"; 51*c03c5b1cSMartin Matuska case PREFIX(maxCode): 52*c03c5b1cSMartin Matuska default: return notErrorCode; 53*c03c5b1cSMartin Matuska } 54*c03c5b1cSMartin Matuska #endif 55*c03c5b1cSMartin Matuska } 56