Home | History | Annotate | Line # | Download | only in internal
nstime.h revision 1.1
      1  1.1  christos #ifndef JEMALLOC_INTERNAL_NSTIME_H
      2  1.1  christos #define JEMALLOC_INTERNAL_NSTIME_H
      3  1.1  christos 
      4  1.1  christos /* Maximum supported number of seconds (~584 years). */
      5  1.1  christos #define NSTIME_SEC_MAX KQU(18446744072)
      6  1.1  christos #define NSTIME_INITIALIZER { .ns = 0, }
      7  1.1  christos 
      8  1.1  christos typedef struct {
      9  1.1  christos 	uint64_t ns;
     10  1.1  christos } nstime_t;
     11  1.1  christos 
     12  1.1  christos void nstime_init(nstime_t *time, uint64_t ns);
     13  1.1  christos void nstime_init2(nstime_t *time, uint64_t sec, uint64_t nsec);
     14  1.1  christos uint64_t nstime_ns(const nstime_t *time);
     15  1.1  christos uint64_t nstime_sec(const nstime_t *time);
     16  1.1  christos uint64_t nstime_msec(const nstime_t *time);
     17  1.1  christos uint64_t nstime_nsec(const nstime_t *time);
     18  1.1  christos void nstime_copy(nstime_t *time, const nstime_t *source);
     19  1.1  christos int nstime_compare(const nstime_t *a, const nstime_t *b);
     20  1.1  christos void nstime_add(nstime_t *time, const nstime_t *addend);
     21  1.1  christos void nstime_iadd(nstime_t *time, uint64_t addend);
     22  1.1  christos void nstime_subtract(nstime_t *time, const nstime_t *subtrahend);
     23  1.1  christos void nstime_isubtract(nstime_t *time, uint64_t subtrahend);
     24  1.1  christos void nstime_imultiply(nstime_t *time, uint64_t multiplier);
     25  1.1  christos void nstime_idivide(nstime_t *time, uint64_t divisor);
     26  1.1  christos uint64_t nstime_divide(const nstime_t *time, const nstime_t *divisor);
     27  1.1  christos 
     28  1.1  christos typedef bool (nstime_monotonic_t)(void);
     29  1.1  christos extern nstime_monotonic_t *JET_MUTABLE nstime_monotonic;
     30  1.1  christos 
     31  1.1  christos typedef bool (nstime_update_t)(nstime_t *);
     32  1.1  christos extern nstime_update_t *JET_MUTABLE nstime_update;
     33  1.1  christos 
     34  1.1  christos #endif /* JEMALLOC_INTERNAL_NSTIME_H */
     35