Scott Baker | 2d89798 | 2019-09-24 11:50:08 -0700 | [diff] [blame] | 1 | /* |
| 2 | * Copyright (c) 2016-present, Yann Collet, Facebook, Inc. |
| 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 | /* The purpose of this file is to have a single list of error strings embedded in binary */ |
| 12 | |
| 13 | #include "error_private.h" |
| 14 | |
| 15 | const char* ERR_getErrorString(ERR_enum code) |
| 16 | { |
Scott Baker | 8487c5d | 2019-10-18 12:49:46 -0700 | [diff] [blame] | 17 | #ifdef ZSTD_STRIP_ERROR_STRINGS |
| 18 | (void)code; |
| 19 | return "Error strings stripped"; |
| 20 | #else |
Scott Baker | 2d89798 | 2019-09-24 11:50:08 -0700 | [diff] [blame] | 21 | static const char* const notErrorCode = "Unspecified error code"; |
| 22 | switch( code ) |
| 23 | { |
| 24 | case PREFIX(no_error): return "No error detected"; |
| 25 | case PREFIX(GENERIC): return "Error (generic)"; |
| 26 | case PREFIX(prefix_unknown): return "Unknown frame descriptor"; |
| 27 | case PREFIX(version_unsupported): return "Version not supported"; |
| 28 | case PREFIX(frameParameter_unsupported): return "Unsupported frame parameter"; |
| 29 | case PREFIX(frameParameter_windowTooLarge): return "Frame requires too much memory for decoding"; |
| 30 | case PREFIX(corruption_detected): return "Corrupted block detected"; |
| 31 | case PREFIX(checksum_wrong): return "Restored data doesn't match checksum"; |
| 32 | case PREFIX(parameter_unsupported): return "Unsupported parameter"; |
| 33 | case PREFIX(parameter_outOfBound): return "Parameter is out of bound"; |
| 34 | case PREFIX(init_missing): return "Context should be init first"; |
| 35 | case PREFIX(memory_allocation): return "Allocation error : not enough memory"; |
| 36 | case PREFIX(workSpace_tooSmall): return "workSpace buffer is not large enough"; |
| 37 | case PREFIX(stage_wrong): return "Operation not authorized at current processing stage"; |
| 38 | case PREFIX(tableLog_tooLarge): return "tableLog requires too much memory : unsupported"; |
| 39 | case PREFIX(maxSymbolValue_tooLarge): return "Unsupported max Symbol Value : too large"; |
| 40 | case PREFIX(maxSymbolValue_tooSmall): return "Specified maxSymbolValue is too small"; |
| 41 | case PREFIX(dictionary_corrupted): return "Dictionary is corrupted"; |
| 42 | case PREFIX(dictionary_wrong): return "Dictionary mismatch"; |
| 43 | case PREFIX(dictionaryCreation_failed): return "Cannot create Dictionary from provided samples"; |
| 44 | case PREFIX(dstSize_tooSmall): return "Destination buffer is too small"; |
| 45 | case PREFIX(srcSize_wrong): return "Src size is incorrect"; |
Scott Baker | 8487c5d | 2019-10-18 12:49:46 -0700 | [diff] [blame] | 46 | case PREFIX(dstBuffer_null): return "Operation on NULL destination buffer"; |
Scott Baker | 2d89798 | 2019-09-24 11:50:08 -0700 | [diff] [blame] | 47 | /* following error codes are not stable and may be removed or changed in a future version */ |
| 48 | case PREFIX(frameIndex_tooLarge): return "Frame index is too large"; |
| 49 | case PREFIX(seekableIO): return "An I/O error occurred when reading/seeking"; |
| 50 | case PREFIX(maxCode): |
| 51 | default: return notErrorCode; |
| 52 | } |
Scott Baker | 8487c5d | 2019-10-18 12:49:46 -0700 | [diff] [blame] | 53 | #endif |
Scott Baker | 2d89798 | 2019-09-24 11:50:08 -0700 | [diff] [blame] | 54 | } |