Choco OS  V.0.16.9.0
Join to the chocolate world
oc_ktime.h
Go to the documentation of this file.
1 
28 #ifndef INC_KERNEL_OC_KTIME_H_
29 #define INC_KERNEL_OC_KTIME_H_
30 
31 #include <oc_time.h>
32 #include <oc_errors.h>
33 
39 #define _________________________________________TYPES_SECTION______________________________________________________________________________
40 
43 #undef _________________________________________TYPES_SECTION______________________________________________________________________________
44 
51 #define _________________________________________FUNCTIONS_SECTION__________________________________________________________________________
52 
55 extern oC_ErrorCode_t oC_KTime_TurnOn ( void );
56 extern oC_ErrorCode_t oC_KTime_TurnOff ( void );
57 extern oC_Timestamp_t oC_KTime_GetTimestamp ( void );
58 extern uint64_t oC_KTime_GetCurrentTick ( void );
59 extern oC_Time_t oC_KTime_TickToTime ( uint64_t Ticks );
60 
61 #undef _________________________________________FUNCTIONS_SECTION__________________________________________________________________________
62 
69 #define _________________________________________STATIC_INLINE_SECTION______________________________________________________________________
70 
71 static inline oC_Time_t oC_KTime_CalculateTimeout( oC_Timestamp_t EndTimestamp )
72 {
73  oC_Timestamp_t timestamp = oC_KTime_GetTimestamp();
74  return (EndTimestamp > timestamp) ? EndTimestamp - timestamp : 0;
75 }
76 
77 static inline oC_Time_t oC_KTime_CalculateTimeoutWithLimit( oC_Timestamp_t EndTimestamp , oC_Time_t Limit )
78 {
79  oC_Time_t timeout = oC_KTime_CalculateTimeout(EndTimestamp);
80 
81  return timeout > Limit ? Limit : timeout;
82 }
83 
84 #undef _________________________________________STATIC_INLINE_SECTION______________________________________________________________________
85 
86 
87 #endif /* INC_KERNEL_OC_KTIME_H_ */
The library with time definitions.