1*3117ece4Schristos /* 2*3117ece4Schristos * Copyright (c) Meta Platforms, Inc. and affiliates. 3*3117ece4Schristos * All rights reserved. 4*3117ece4Schristos * 5*3117ece4Schristos * This source code is licensed under both the BSD-style license (found in the 6*3117ece4Schristos * LICENSE file in the root directory of this source tree) and the GPLv2 (found 7*3117ece4Schristos * in the COPYING file in the root directory of this source tree). 8*3117ece4Schristos * You may select, at your option, one of the above-listed licenses. 9*3117ece4Schristos */ 10*3117ece4Schristos 11*3117ece4Schristos /* The purpose of this file is to have a single list of error strings embedded in binary */ 12*3117ece4Schristos 13*3117ece4Schristos #include "error_private.h" 14*3117ece4Schristos 15*3117ece4Schristos const char* ERR_getErrorString(ERR_enum code) 16*3117ece4Schristos { 17*3117ece4Schristos #ifdef ZSTD_STRIP_ERROR_STRINGS 18*3117ece4Schristos (void)code; 19*3117ece4Schristos return "Error strings stripped"; 20*3117ece4Schristos #else 21*3117ece4Schristos static const char* const notErrorCode = "Unspecified error code"; 22*3117ece4Schristos switch( code ) 23*3117ece4Schristos { 24*3117ece4Schristos case PREFIX(no_error): return "No error detected"; 25*3117ece4Schristos case PREFIX(GENERIC): return "Error (generic)"; 26*3117ece4Schristos case PREFIX(prefix_unknown): return "Unknown frame descriptor"; 27*3117ece4Schristos case PREFIX(version_unsupported): return "Version not supported"; 28*3117ece4Schristos case PREFIX(frameParameter_unsupported): return "Unsupported frame parameter"; 29*3117ece4Schristos case PREFIX(frameParameter_windowTooLarge): return "Frame requires too much memory for decoding"; 30*3117ece4Schristos case PREFIX(corruption_detected): return "Data corruption detected"; 31*3117ece4Schristos case PREFIX(checksum_wrong): return "Restored data doesn't match checksum"; 32*3117ece4Schristos case PREFIX(literals_headerWrong): return "Header of Literals' block doesn't respect format specification"; 33*3117ece4Schristos case PREFIX(parameter_unsupported): return "Unsupported parameter"; 34*3117ece4Schristos case PREFIX(parameter_combination_unsupported): return "Unsupported combination of parameters"; 35*3117ece4Schristos case PREFIX(parameter_outOfBound): return "Parameter is out of bound"; 36*3117ece4Schristos case PREFIX(init_missing): return "Context should be init first"; 37*3117ece4Schristos case PREFIX(memory_allocation): return "Allocation error : not enough memory"; 38*3117ece4Schristos case PREFIX(workSpace_tooSmall): return "workSpace buffer is not large enough"; 39*3117ece4Schristos case PREFIX(stage_wrong): return "Operation not authorized at current processing stage"; 40*3117ece4Schristos case PREFIX(tableLog_tooLarge): return "tableLog requires too much memory : unsupported"; 41*3117ece4Schristos case PREFIX(maxSymbolValue_tooLarge): return "Unsupported max Symbol Value : too large"; 42*3117ece4Schristos case PREFIX(maxSymbolValue_tooSmall): return "Specified maxSymbolValue is too small"; 43*3117ece4Schristos case PREFIX(stabilityCondition_notRespected): return "pledged buffer stability condition is not respected"; 44*3117ece4Schristos case PREFIX(dictionary_corrupted): return "Dictionary is corrupted"; 45*3117ece4Schristos case PREFIX(dictionary_wrong): return "Dictionary mismatch"; 46*3117ece4Schristos case PREFIX(dictionaryCreation_failed): return "Cannot create Dictionary from provided samples"; 47*3117ece4Schristos case PREFIX(dstSize_tooSmall): return "Destination buffer is too small"; 48*3117ece4Schristos case PREFIX(srcSize_wrong): return "Src size is incorrect"; 49*3117ece4Schristos case PREFIX(dstBuffer_null): return "Operation on NULL destination buffer"; 50*3117ece4Schristos case PREFIX(noForwardProgress_destFull): return "Operation made no progress over multiple calls, due to output buffer being full"; 51*3117ece4Schristos case PREFIX(noForwardProgress_inputEmpty): return "Operation made no progress over multiple calls, due to input being empty"; 52*3117ece4Schristos /* following error codes are not stable and may be removed or changed in a future version */ 53*3117ece4Schristos case PREFIX(frameIndex_tooLarge): return "Frame index is too large"; 54*3117ece4Schristos case PREFIX(seekableIO): return "An I/O error occurred when reading/seeking"; 55*3117ece4Schristos case PREFIX(dstBuffer_wrong): return "Destination buffer is wrong"; 56*3117ece4Schristos case PREFIX(srcBuffer_wrong): return "Source buffer is wrong"; 57*3117ece4Schristos case PREFIX(sequenceProducer_failed): return "Block-level external sequence producer returned an error code"; 58*3117ece4Schristos case PREFIX(externalSequences_invalid): return "External sequences are not valid"; 59*3117ece4Schristos case PREFIX(maxCode): 60*3117ece4Schristos default: return notErrorCode; 61*3117ece4Schristos } 62*3117ece4Schristos #endif 63*3117ece4Schristos } 64