chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
remove duplicated includes
[elogind.git]
/
src
/
shared
/
time-util.h
diff --git
a/src/shared/time-util.h
b/src/shared/time-util.h
index 34ba6c11be3d284eda7576ad35dcb49f7de6207a..fca8a4db9b85324c1d9329daef58f0b15d12b9a0 100644
(file)
--- a/
src/shared/time-util.h
+++ b/
src/shared/time-util.h
@@
-37,32
+37,37
@@
typedef struct dual_timestamp {
usec_t monotonic;
} dual_timestamp;
usec_t monotonic;
} dual_timestamp;
-#define MSEC_PER_SEC ((usec_t) 1000ULL)
+#define USEC_INFINITY ((usec_t) -1)
+#define NSEC_INFINITY ((nsec_t) -1)
+
+#define MSEC_PER_SEC 1000ULL
#define USEC_PER_SEC ((usec_t) 1000000ULL)
#define USEC_PER_MSEC ((usec_t) 1000ULL)
#define USEC_PER_SEC ((usec_t) 1000000ULL)
#define USEC_PER_MSEC ((usec_t) 1000ULL)
-#define NSEC_PER_SEC ((
u
sec_t) 1000000000ULL)
-#define NSEC_PER_MSEC ((
u
sec_t) 1000000ULL)
-#define NSEC_PER_USEC ((
u
sec_t) 1000ULL)
+#define NSEC_PER_SEC ((
n
sec_t) 1000000000ULL)
+#define NSEC_PER_MSEC ((
n
sec_t) 1000000ULL)
+#define NSEC_PER_USEC ((
n
sec_t) 1000ULL)
#define USEC_PER_MINUTE ((usec_t) (60ULL*USEC_PER_SEC))
#define USEC_PER_MINUTE ((usec_t) (60ULL*USEC_PER_SEC))
-#define NSEC_PER_MINUTE ((
u
sec_t) (60ULL*NSEC_PER_SEC))
+#define NSEC_PER_MINUTE ((
n
sec_t) (60ULL*NSEC_PER_SEC))
#define USEC_PER_HOUR ((usec_t) (60ULL*USEC_PER_MINUTE))
#define USEC_PER_HOUR ((usec_t) (60ULL*USEC_PER_MINUTE))
-#define NSEC_PER_HOUR ((
u
sec_t) (60ULL*NSEC_PER_MINUTE))
+#define NSEC_PER_HOUR ((
n
sec_t) (60ULL*NSEC_PER_MINUTE))
#define USEC_PER_DAY ((usec_t) (24ULL*USEC_PER_HOUR))
#define USEC_PER_DAY ((usec_t) (24ULL*USEC_PER_HOUR))
-#define NSEC_PER_DAY ((
u
sec_t) (24ULL*NSEC_PER_HOUR))
+#define NSEC_PER_DAY ((
n
sec_t) (24ULL*NSEC_PER_HOUR))
#define USEC_PER_WEEK ((usec_t) (7ULL*USEC_PER_DAY))
#define USEC_PER_WEEK ((usec_t) (7ULL*USEC_PER_DAY))
-#define NSEC_PER_WEEK ((
u
sec_t) (7ULL*NSEC_PER_DAY))
+#define NSEC_PER_WEEK ((
n
sec_t) (7ULL*NSEC_PER_DAY))
#define USEC_PER_MONTH ((usec_t) (2629800ULL*USEC_PER_SEC))
#define USEC_PER_MONTH ((usec_t) (2629800ULL*USEC_PER_SEC))
-#define NSEC_PER_MONTH ((
u
sec_t) (2629800ULL*NSEC_PER_SEC))
+#define NSEC_PER_MONTH ((
n
sec_t) (2629800ULL*NSEC_PER_SEC))
#define USEC_PER_YEAR ((usec_t) (31557600ULL*USEC_PER_SEC))
#define USEC_PER_YEAR ((usec_t) (31557600ULL*USEC_PER_SEC))
-#define NSEC_PER_YEAR ((
u
sec_t) (31557600ULL*NSEC_PER_SEC))
+#define NSEC_PER_YEAR ((
n
sec_t) (31557600ULL*NSEC_PER_SEC))
#define FORMAT_TIMESTAMP_MAX ((4*4+1)+11+9+4+1) /* weekdays can be unicode */
#define FORMAT_TIMESTAMP_WIDTH 28 /* when outputting, assume this width */
#define FORMAT_TIMESTAMP_RELATIVE_MAX 256
#define FORMAT_TIMESPAN_MAX 64
#define FORMAT_TIMESTAMP_MAX ((4*4+1)+11+9+4+1) /* weekdays can be unicode */
#define FORMAT_TIMESTAMP_WIDTH 28 /* when outputting, assume this width */
#define FORMAT_TIMESTAMP_RELATIVE_MAX 256
#define FORMAT_TIMESPAN_MAX 64
-#define DUAL_TIMESTAMP_NULL ((struct dual_timestamp) { 0, 0 })
+#define TIME_T_MAX (time_t)((1UL << ((sizeof(time_t) << 3) - 1)) - 1)
+
+#define DUAL_TIMESTAMP_NULL ((struct dual_timestamp) { 0ULL, 0ULL })
usec_t now(clockid_t clock);
usec_t now(clockid_t clock);
@@
-71,8
+76,8
@@
dual_timestamp* dual_timestamp_from_realtime(dual_timestamp *ts, usec_t u);
dual_timestamp* dual_timestamp_from_monotonic(dual_timestamp *ts, usec_t u);
static inline bool dual_timestamp_is_set(dual_timestamp *ts) {
dual_timestamp* dual_timestamp_from_monotonic(dual_timestamp *ts, usec_t u);
static inline bool dual_timestamp_is_set(dual_timestamp *ts) {
- return ((ts->realtime > 0 && ts->realtime !=
(usec_t) -1
) ||
- (ts->monotonic > 0 && ts->monotonic !=
(usec_t) -1
));
+ return ((ts->realtime > 0 && ts->realtime !=
USEC_INFINITY
) ||
+ (ts->monotonic > 0 && ts->monotonic !=
USEC_INFINITY
));
}
usec_t timespec_load(const struct timespec *ts) _pure_;
}
usec_t timespec_load(const struct timespec *ts) _pure_;
@@
-82,7
+87,9
@@
usec_t timeval_load(const struct timeval *tv) _pure_;
struct timeval *timeval_store(struct timeval *tv, usec_t u);
char *format_timestamp(char *buf, size_t l, usec_t t);
struct timeval *timeval_store(struct timeval *tv, usec_t u);
char *format_timestamp(char *buf, size_t l, usec_t t);
+char *format_timestamp_utc(char *buf, size_t l, usec_t t);
char *format_timestamp_us(char *buf, size_t l, usec_t t);
char *format_timestamp_us(char *buf, size_t l, usec_t t);
+char *format_timestamp_us_utc(char *buf, size_t l, usec_t t);
char *format_timestamp_relative(char *buf, size_t l, usec_t t);
char *format_timespan(char *buf, size_t l, usec_t t, usec_t accuracy);
char *format_timestamp_relative(char *buf, size_t l, usec_t t);
char *format_timespan(char *buf, size_t l, usec_t t, usec_t accuracy);
@@
-95,3
+102,10
@@
int parse_sec(const char *t, usec_t *usec);
int parse_nsec(const char *t, nsec_t *nsec);
bool ntp_synced(void);
int parse_nsec(const char *t, nsec_t *nsec);
bool ntp_synced(void);
+
+int get_timezones(char ***l);
+bool timezone_is_valid(const char *name);
+
+clockid_t clock_boottime_or_monotonic(void);
+
+#define xstrftime(buf, fmt, tm) assert_se(strftime(buf, ELEMENTSOF(buf), fmt, tm) > 0)