| .. | .. |
|---|
| 3 | 3 | #define _TIME_UTILS_H_ |
|---|
| 4 | 4 | |
|---|
| 5 | 5 | #include <stddef.h> |
|---|
| 6 | +#include <time.h> |
|---|
| 6 | 7 | #include <linux/types.h> |
|---|
| 7 | 8 | |
|---|
| 8 | 9 | struct perf_time_interval { |
|---|
| .. | .. |
|---|
| 23 | 24 | bool perf_time__ranges_skip_sample(struct perf_time_interval *ptime_buf, |
|---|
| 24 | 25 | int num, u64 timestamp); |
|---|
| 25 | 26 | |
|---|
| 27 | +struct perf_session; |
|---|
| 28 | + |
|---|
| 29 | +int perf_time__parse_for_ranges_reltime(const char *str, struct perf_session *session, |
|---|
| 30 | + struct perf_time_interval **ranges, |
|---|
| 31 | + int *range_size, int *range_num, |
|---|
| 32 | + bool reltime); |
|---|
| 33 | + |
|---|
| 34 | +int perf_time__parse_for_ranges(const char *str, struct perf_session *session, |
|---|
| 35 | + struct perf_time_interval **ranges, |
|---|
| 36 | + int *range_size, int *range_num); |
|---|
| 37 | + |
|---|
| 26 | 38 | int timestamp__scnprintf_usec(u64 timestamp, char *buf, size_t sz); |
|---|
| 39 | +int timestamp__scnprintf_nsec(u64 timestamp, char *buf, size_t sz); |
|---|
| 27 | 40 | |
|---|
| 28 | 41 | int fetch_current_timestamp(char *buf, size_t sz); |
|---|
| 29 | 42 | |
|---|
| 43 | +static inline unsigned long long rdclock(void) |
|---|
| 44 | +{ |
|---|
| 45 | + struct timespec ts; |
|---|
| 46 | + |
|---|
| 47 | + clock_gettime(CLOCK_MONOTONIC, &ts); |
|---|
| 48 | + return ts.tv_sec * 1000000000ULL + ts.tv_nsec; |
|---|
| 49 | +} |
|---|
| 50 | + |
|---|
| 30 | 51 | #endif |
|---|