@@ -28,7 +28,7 @@ static_assert(sizeof(efidurus_t) == 8);
28
28
/* *
29
29
* 64 bit time in microseconds (1/1_000_000 of a second), since boot
30
30
*/
31
- using efitimeus_t = std::chrono::time_point<std::chrono::system_clock , efidurus_t >;
31
+ using efitimeus_t = std::chrono::time_point<std::chrono::steady_clock , efidurus_t >;
32
32
static_assert (sizeof (efitimeus_t ) == 8 );
33
33
34
34
// time in seconds
@@ -59,19 +59,24 @@ efitick_t getTimeNowNt();
59
59
#define US_PER_SECOND_F 1000000.0
60
60
#define US_PER_SECOND_LL 1000000LL
61
61
62
- template <typename arithmetic_type> constexpr efitimeus_t USOF (const arithmetic_type& us) {
63
- static_assert (std::is_arithmetic_v<arithmetic_type>);
64
- return efitimeus_t (efidurus_t (static_cast <efitimeus_t ::rep>(us)));
62
+ template <typename T> concept numeric = std::integral<T> || std::floating_point<T>;
63
+
64
+ constexpr numeric auto MS2US (numeric auto ms_time) {
65
+ return ms_time * 1000 ;
65
66
}
66
67
67
- constexpr float MS2US ( const float & timems ) {
68
- return timems * 1000 ;
68
+ constexpr numeric auto US2MS (numeric auto timeus ) {
69
+ return timeus / 1000 ;
69
70
}
70
71
71
72
constexpr efitimeus_t ::rep US2MS (const efitimeus_t & timeus) {
72
- return timeus.time_since_epoch ().count () / 1000 ;
73
+ return timeus.time_since_epoch ().count () / 1000 ;
73
74
}
74
75
75
- constexpr float US2MS (const float & timeus) {
76
- return timeus / 1000 ;
76
+ constexpr efitimeus_t USOF (std::integral auto us) {
77
+ return efitimeus_t (efidurus_t (us));
78
+ }
79
+
80
+ constexpr efitimeus_t ::rep COUNTOF (const efitimeus_t & us) {
81
+ return us.time_since_epoch ().count ();
77
82
}
0 commit comments