diff options
author | Philipp Zabel <p.zabel@pengutronix.de> | 2018-02-01 11:46:13 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2018-02-05 08:29:52 +0100 |
commit | 1a39d4dcbffc137b9ba312ed32b7f71e7897b4c3 (patch) | |
tree | d589afe89c13945946278b7baa4ac53ae4051f2d /lib/zstd/error_private.h | |
parent | 5ca2233e3ab2e718cc7128f4a42fd80dd091502d (diff) | |
download | barebox-1a39d4dcbffc137b9ba312ed32b7f71e7897b4c3.tar.gz barebox-1a39d4dcbffc137b9ba312ed32b7f71e7897b4c3.tar.xz |
lib: Add zstd decompression module
Based on kernel commit 73f3d1b48f50 ("lib: Add zstd modules").
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'lib/zstd/error_private.h')
-rw-r--r-- | lib/zstd/error_private.h | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/lib/zstd/error_private.h b/lib/zstd/error_private.h new file mode 100644 index 0000000000..1a60b31f70 --- /dev/null +++ b/lib/zstd/error_private.h @@ -0,0 +1,53 @@ +/** + * Copyright (c) 2016-present, Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of https://github.com/facebook/zstd. + * An additional grant of patent rights can be found in the PATENTS file in the + * same directory. + * + * This program is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License version 2 as published by the + * Free Software Foundation. This program is dual-licensed; you may select + * either version 2 of the GNU General Public License ("GPL") or BSD license + * ("BSD"). + */ + +/* Note : this module is expected to remain private, do not expose it */ + +#ifndef ERROR_H_MODULE +#define ERROR_H_MODULE + +/* **************************************** +* Dependencies +******************************************/ +#include <linux/types.h> /* size_t */ +#include <linux/zstd.h> /* enum list */ + +/* **************************************** +* Compiler-specific +******************************************/ +#define ERR_STATIC static __attribute__((unused)) + +/*-**************************************** +* Customization (error_public.h) +******************************************/ +typedef ZSTD_ErrorCode ERR_enum; +#define PREFIX(name) ZSTD_error_##name + +/*-**************************************** +* Error codes handling +******************************************/ +#define ERROR(name) ((size_t)-PREFIX(name)) + +ERR_STATIC unsigned ERR_isError(size_t code) { return (code > ERROR(maxCode)); } + +ERR_STATIC ERR_enum ERR_getErrorCode(size_t code) +{ + if (!ERR_isError(code)) + return (ERR_enum)0; + return (ERR_enum)(0 - code); +} + +#endif /* ERROR_H_MODULE */ |