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/zstd/lib/common/zstd_deps.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) 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 /* This file provides common libc dependencies that zstd requires.
   12  * The purpose is to allow replacing this file with a custom implementation
   13  * to compile zstd without libc support.
   14  */
   15 
   16 /* Need:
   17  * NULL
   18  * INT_MAX
   19  * UINT_MAX
   20  * ZSTD_memcpy()
   21  * ZSTD_memset()
   22  * ZSTD_memmove()
   23  */
   24 #ifndef ZSTD_DEPS_COMMON
   25 #define ZSTD_DEPS_COMMON
   26 
   27 #include <limits.h>
   28 #include <stddef.h>
   29 #include <string.h>
   30 
   31 #if defined(__GNUC__) && __GNUC__ >= 4
   32 # define ZSTD_memcpy(d,s,l) __builtin_memcpy((d),(s),(l))
   33 # define ZSTD_memmove(d,s,l) __builtin_memmove((d),(s),(l))
   34 # define ZSTD_memset(p,v,l) __builtin_memset((p),(v),(l))
   35 #else
   36 # define ZSTD_memcpy(d,s,l) memcpy((d),(s),(l))
   37 # define ZSTD_memmove(d,s,l) memmove((d),(s),(l))
   38 # define ZSTD_memset(p,v,l) memset((p),(v),(l))
   39 #endif
   40 
   41 #endif /* ZSTD_DEPS_COMMON */
   42 
   43 /* Need:
   44  * ZSTD_malloc()
   45  * ZSTD_free()
   46  * ZSTD_calloc()
   47  */
   48 #ifdef ZSTD_DEPS_NEED_MALLOC
   49 #ifndef ZSTD_DEPS_MALLOC
   50 #define ZSTD_DEPS_MALLOC
   51 
   52 #include <stdlib.h>
   53 
   54 #define ZSTD_malloc(s) malloc(s)
   55 #define ZSTD_calloc(n,s) calloc((n), (s))
   56 #define ZSTD_free(p) free((p))
   57 
   58 #endif /* ZSTD_DEPS_MALLOC */
   59 #endif /* ZSTD_DEPS_NEED_MALLOC */
   60 
   61 /*
   62  * Provides 64-bit math support.
   63  * Need:
   64  * U64 ZSTD_div64(U64 dividend, U32 divisor)
   65  */
   66 #ifdef ZSTD_DEPS_NEED_MATH64
   67 #ifndef ZSTD_DEPS_MATH64
   68 #define ZSTD_DEPS_MATH64
   69 
   70 #define ZSTD_div64(dividend, divisor) ((dividend) / (divisor))
   71 
   72 #endif /* ZSTD_DEPS_MATH64 */
   73 #endif /* ZSTD_DEPS_NEED_MATH64 */
   74 
   75 /* Need:
   76  * assert()
   77  */
   78 #ifdef ZSTD_DEPS_NEED_ASSERT
   79 #ifndef ZSTD_DEPS_ASSERT
   80 #define ZSTD_DEPS_ASSERT
   81 
   82 #include <assert.h>
   83 
   84 #endif /* ZSTD_DEPS_ASSERT */
   85 #endif /* ZSTD_DEPS_NEED_ASSERT */
   86 
   87 /* Need:
   88  * ZSTD_DEBUG_PRINT()
   89  */
   90 #ifdef ZSTD_DEPS_NEED_IO
   91 #ifndef ZSTD_DEPS_IO
   92 #define ZSTD_DEPS_IO
   93 
   94 #include <stdio.h>
   95 #define ZSTD_DEBUG_PRINT(...) fprintf(stderr, __VA_ARGS__)
   96 
   97 #endif /* ZSTD_DEPS_IO */
   98 #endif /* ZSTD_DEPS_NEED_IO */
   99 
  100 /* Only requested when <stdint.h> is known to be present.
  101  * Need:
  102  * intptr_t
  103  */
  104 #ifdef ZSTD_DEPS_NEED_STDINT
  105 #ifndef ZSTD_DEPS_STDINT
  106 #define ZSTD_DEPS_STDINT
  107 
  108 #include <stdint.h>
  109 
  110 #endif /* ZSTD_DEPS_STDINT */
  111 #endif /* ZSTD_DEPS_NEED_STDINT */

Cache object: e884091e799b53033f7927991861f3e7


[ 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.