/*
* Need cast because of difference in sign
*/
-#define fr_unix_time_from_nsec(_x) (fr_unix_time_t)(_x)
-#define fr_unix_time_from_usec(_x) (fr_unix_time_t)fr_time_delta_from_usec((fr_time_delta_t)(_x))
-#define fr_unix_time_from_msec(_x) (fr_unix_time_t)fr_time_delta_from_msec((fr_time_delta_t)(_x))
-#define fr_unix_time_from_sec(_x) (fr_unix_time_t)fr_time_delta_from_sec((fr_time_delta_t)(_x))
+#define fr_unix_time_from_nsec(_x) ((_x) < 0 ? 0 : (fr_unix_time_t)(_x))
+#define fr_unix_time_from_usec(_x) ((_x) < 0 ? 0 : (fr_unix_time_t)fr_time_delta_from_usec((fr_time_delta_t)(_x)))
+#define fr_unix_time_from_msec(_x) ((_x) < 0 ? 0 : (fr_unix_time_t)fr_time_delta_from_msec((fr_time_delta_t)(_x)))
+#define fr_unix_time_from_sec(_x) ((_x) < 0 ? 0 : (fr_unix_time_t)fr_time_delta_from_sec((fr_time_delta_t)(_x)))
#define fr_unix_time_to_nsec(_x) (uint64_t)(_x)
#define fr_unix_time_to_usec(_x) (uint64_t)fr_time_delta_to_usec(_x)