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/programs/timefn.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) 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 #ifndef TIME_FN_H_MODULE_287987
   12 #define TIME_FN_H_MODULE_287987
   13 
   14 #if defined (__cplusplus)
   15 extern "C" {
   16 #endif
   17 
   18 
   19 /*-****************************************
   20 *  Dependencies
   21 ******************************************/
   22 #include <time.h>         /* clock_t, clock, CLOCKS_PER_SEC */
   23 
   24 
   25 
   26 /*-****************************************
   27 *  Local Types
   28 ******************************************/
   29 
   30 #if !defined (__VMS) && (defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) )
   31 # if defined(_AIX)
   32 #  include <inttypes.h>
   33 # else
   34 #  include <stdint.h> /* intptr_t */
   35 # endif
   36   typedef uint64_t           PTime;  /* Precise Time */
   37 #else
   38   typedef unsigned long long PTime;  /* does not support compilers without long long support */
   39 #endif
   40 
   41 
   42 
   43 /*-****************************************
   44 *  Time functions
   45 ******************************************/
   46 #if defined(_WIN32)   /* Windows */
   47 
   48     #include <windows.h>   /* LARGE_INTEGER */
   49     typedef LARGE_INTEGER UTIL_time_t;
   50     #define UTIL_TIME_INITIALIZER { { 0, 0 } }
   51 
   52 #elif defined(__APPLE__) && defined(__MACH__)
   53 
   54     #include <mach/mach_time.h>
   55     typedef PTime UTIL_time_t;
   56     #define UTIL_TIME_INITIALIZER 0
   57 
   58 /* C11 requires timespec_get, but FreeBSD 11 lacks it, while still claiming C11 compliance.
   59    Android also lacks it but does define TIME_UTC. */
   60 #elif (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) /* C11 */) \
   61     && defined(TIME_UTC) && !defined(__ANDROID__)
   62 
   63     typedef struct timespec UTIL_time_t;
   64     #define UTIL_TIME_INITIALIZER { 0, 0 }
   65 
   66 #else   /* relies on standard C90 (note : clock_t measurements can be wrong when using multi-threading) */
   67 
   68     typedef clock_t UTIL_time_t;
   69     #define UTIL_TIME_INITIALIZER 0
   70 
   71 #endif
   72 
   73 
   74 UTIL_time_t UTIL_getTime(void);
   75 PTime UTIL_getSpanTimeMicro(UTIL_time_t clockStart, UTIL_time_t clockEnd);
   76 PTime UTIL_getSpanTimeNano(UTIL_time_t clockStart, UTIL_time_t clockEnd);
   77 
   78 #define SEC_TO_MICRO ((PTime)1000000)
   79 PTime UTIL_clockSpanMicro(UTIL_time_t clockStart);
   80 PTime UTIL_clockSpanNano(UTIL_time_t clockStart);
   81 
   82 void UTIL_waitForNextTick(void);
   83 
   84 
   85 #if defined (__cplusplus)
   86 }
   87 #endif
   88 
   89 #endif /* TIME_FN_H_MODULE_287987 */

Cache object: 7fcd1f99b3f78895aecda32812598e84


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