1 #ifndef JEMALLOC_INTERNAL_NSTIME_EXTERNS_H
2 #define JEMALLOC_INTERNAL_NSTIME_EXTERNS_H
3 
4 #pragma GCC visibility push(hidden)
5 
6 void	nstime_init(nstime_t *time, uint64_t ns);
7 void	nstime_init2(nstime_t *time, uint64_t sec, uint64_t nsec);
8 uint64_t	nstime_ns(const nstime_t *time);
9 uint64_t	nstime_sec(const nstime_t *time);
10 uint64_t	nstime_nsec(const nstime_t *time);
11 void	nstime_copy(nstime_t *time, const nstime_t *source);
12 int	nstime_compare(const nstime_t *a, const nstime_t *b);
13 void	nstime_add(nstime_t *time, const nstime_t *addend);
14 void	nstime_subtract(nstime_t *time, const nstime_t *subtrahend);
15 void	nstime_imultiply(nstime_t *time, uint64_t multiplier);
16 void	nstime_idivide(nstime_t *time, uint64_t divisor);
17 uint64_t	nstime_divide(const nstime_t *time, const nstime_t *divisor);
18 #ifdef JEMALLOC_JET
19 typedef bool (nstime_monotonic_t)(void);
20 extern nstime_monotonic_t *nstime_monotonic;
21 typedef bool (nstime_update_t)(nstime_t *);
22 extern nstime_update_t *nstime_update;
23 #else
24 bool	nstime_monotonic(void);
25 bool	nstime_update(nstime_t *time);
26 #endif
27 
28 #pragma GCC visibility pop
29 
30 #endif /* JEMALLOC_INTERNAL_NSTIME_EXTERNS_H */
31