Lines Matching defs:duration
1 /* $NetBSD: duration.c,v 1.4 2025/01/26 16:25:45 christos Exp $ */
35 #include <isccfg/duration.h>
43 isccfg_duration_t *duration) {
61 /* Clear out duration. */
63 duration->parts[i] = 0;
65 duration->iso8601 = false;
66 duration->unlimited = false;
68 /* Every duration starts with 'P' */
89 duration->parts[0] = (uint32_t)lli;
110 duration->parts[1] = (uint32_t)lli;
126 duration->parts[3] = (uint32_t)lli;
148 duration->parts[4] = (uint32_t)lli;
169 duration->parts[5] = (uint32_t)lli;
185 duration->parts[6] = (uint32_t)lli;
190 /* Or is the duration configured in weeks? */
205 duration->parts[2] = (uint32_t)lli;
215 duration->iso8601 = true;
220 isccfg_parse_duration(isc_textregion_t *source, isccfg_duration_t *duration) {
223 REQUIRE(duration != NULL);
225 duration->unlimited = false;
226 result = isccfg_duration_fromtext(source, duration);
236 duration->iso8601 = false;
237 duration->parts[6] = ttl;
245 isccfg_duration_toseconds(const isccfg_duration_t *duration) {
248 REQUIRE(duration != NULL);
250 seconds += (uint64_t)duration->parts[6]; /* Seconds */
251 seconds += (uint64_t)duration->parts[5] * 60; /* Minutes */
252 seconds += (uint64_t)duration->parts[4] * 3600; /* Hours */
253 seconds += (uint64_t)duration->parts[3] * 86400; /* Days */
254 seconds += (uint64_t)duration->parts[2] * 86400 * 7; /* Weeks */
259 seconds += (uint64_t)duration->parts[1] * 86400 * 31; /* Months */
260 seconds += (uint64_t)duration->parts[0] * 86400 * 365; /* Years */