The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/openzfs/module/zstd/lib/common/error_private.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*
    2  * Copyright (c) 2016-2020, 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 /* Note : this module is expected to remain private, do not expose it */
   12 
   13 #ifndef ERROR_H_MODULE
   14 #define ERROR_H_MODULE
   15 
   16 #if defined (__cplusplus)
   17 extern "C" {
   18 #endif
   19 
   20 
   21 /* ****************************************
   22 *  Dependencies
   23 ******************************************/
   24 #include <stddef.h>        /* size_t */
   25 #include "zstd_errors.h"  /* enum list */
   26 
   27 
   28 /* ****************************************
   29 *  Compiler-specific
   30 ******************************************/
   31 #if defined(__GNUC__)
   32 #  define ERR_STATIC static __attribute__((unused))
   33 #elif defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */)
   34 #  define ERR_STATIC static inline
   35 #elif defined(_MSC_VER)
   36 #  define ERR_STATIC static __inline
   37 #else
   38 #  define ERR_STATIC static  /* this version may generate warnings for unused static functions; disable the relevant warning */
   39 #endif
   40 
   41 
   42 /*-****************************************
   43 *  Customization (error_public.h)
   44 ******************************************/
   45 typedef ZSTD_ErrorCode ERR_enum;
   46 #define PREFIX(name) ZSTD_error_##name
   47 
   48 
   49 /*-****************************************
   50 *  Error codes handling
   51 ******************************************/
   52 #undef ERROR   /* already defined on Visual Studio */
   53 #define ERROR(name) ZSTD_ERROR(name)
   54 #define ZSTD_ERROR(name) ((size_t)-PREFIX(name))
   55 
   56 ERR_STATIC unsigned ERR_isError(size_t code) { return (code > ERROR(maxCode)); }
   57 
   58 ERR_STATIC ERR_enum ERR_getErrorCode(size_t code) { if (!ERR_isError(code)) return (ERR_enum)0; return (ERR_enum) (0-code); }
   59 
   60 /* check and forward error code */
   61 #define CHECK_V_F(e, f) size_t const e = f; if (ERR_isError(e)) return e
   62 #define CHECK_F(f)   { CHECK_V_F(_var_err__, f); }
   63 
   64 
   65 /*-****************************************
   66 *  Error Strings
   67 ******************************************/
   68 
   69 const char* ERR_getErrorString(ERR_enum code);   /* error_private.c */
   70 
   71 ERR_STATIC const char* ERR_getErrorName(size_t code)
   72 {
   73     return ERR_getErrorString(ERR_getErrorCode(code));
   74 }
   75 
   76 #if defined (__cplusplus)
   77 }
   78 #endif
   79 
   80 #endif /* ERROR_H_MODULE */

Cache object: 97d0e247fa28405af880fbf24c274577


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.