X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvppinfra%2Ftime_range.c;h=4b5e13037633a320c8d0386b565327d07e65e739;hb=dfd426c2c83f69e95fe8dab5b4827825230f1d7c;hp=e502ca358dbd4e67f978a493d55e74bc06ebaacf;hpb=a98c40305deedc58860722fb9710075028c8b9f8;p=vpp.git diff --git a/src/vppinfra/time_range.c b/src/vppinfra/time_range.c index e502ca358db..4b5e1303763 100644 --- a/src/vppinfra/time_range.c +++ b/src/vppinfra/time_range.c @@ -15,14 +15,22 @@ #include -void +__clib_export void clib_timebase_init (clib_timebase_t * tb, i32 timezone_offset_in_hours, - clib_timebase_daylight_time_t daylight_type) + clib_timebase_daylight_time_t daylight_type, + clib_time_t * clib_time) { - memset (tb, 0, sizeof (*tb)); + clib_memset (tb, 0, sizeof (*tb)); - clib_time_init (&tb->clib_time); - tb->time_zero = unix_time_now (); + if (clib_time == 0) + { + tb->clib_time = clib_mem_alloc_aligned + (sizeof (*clib_time), CLIB_CACHE_LINE_BYTES); + memset (tb->clib_time, 0, sizeof (*clib_time)); + clib_time_init (tb->clib_time); + } + else + tb->clib_time = clib_time; tb->timezone_offset = ((f64) (timezone_offset_in_hours)) * 3600.0; tb->daylight_time_type = daylight_type; @@ -92,7 +100,7 @@ const static char *day_names_calendar_order[] = { }; -void +__clib_export void clib_timebase_time_to_components (f64 now, clib_timebase_component_t * cp) { u32 year, month, hours, minutes, seconds, nanoseconds; @@ -173,7 +181,7 @@ clib_timebase_time_to_components (f64 now, clib_timebase_component_t * cp) cp->fractional_seconds = now; } -f64 +__clib_export f64 clib_timebase_components_to_time (clib_timebase_component_t * cp) { f64 now = 0; @@ -209,7 +217,7 @@ clib_timebase_components_to_time (clib_timebase_component_t * cp) return (now); } -f64 +__clib_export f64 clib_timebase_find_sunday_midnight (f64 start_time) { clib_timebase_component_t _c, *cp = &_c; @@ -248,7 +256,7 @@ clib_timebase_offset_from_sunday (u8 * day) } -u8 * +__clib_export u8 * format_clib_timebase_time (u8 * s, va_list * args) { f64 now = va_arg (*args, f64); @@ -304,7 +312,7 @@ unformat_clib_timebase_range_hms (unformat_input_t * input, va_list * args) return 1; } -uword +__clib_export uword unformat_clib_timebase_range_vector (unformat_input_t * input, va_list * args) { clib_timebase_range_t **rpp = va_arg (*args, clib_timebase_range_t **); @@ -379,7 +387,7 @@ unformat_clib_timebase_range_vector (unformat_input_t * input, va_list * args) } } -f64 +__clib_export f64 clib_timebase_summer_offset (clib_timebase_t * tb, f64 now) { clib_timebase_component_t _c, *cp = &_c;