File tree Expand file tree Collapse file tree 3 files changed +46
-0
lines changed
Expand file tree Collapse file tree 3 files changed +46
-0
lines changed Original file line number Diff line number Diff line change @@ -1450,6 +1450,33 @@ typedef struct rt_channel *rt_channel_t;
14501450/**@}*/
14511451#endif /* RT_USING_DEVICE */
14521452
1453+ /* BITOPS */
1454+
1455+ #if defined (ARCH_CPU_64BIT )
1456+ #define BITS_PER_LONG 64
1457+ #else
1458+ #define BITS_PER_LONG 32
1459+ #endif
1460+ #define BITS_PER_LONG_LONG 64
1461+
1462+ #define DIV_ROUND_UP (n ,d ) (((n) + (d) - 1) / (d))
1463+
1464+ #define BIT (nr ) (1UL << (nr))
1465+ #define BIT_ULL (nr ) (1ULL << (nr))
1466+ #define BIT_MASK (nr ) (1UL << ((nr) % BITS_PER_LONG))
1467+ #define BIT_WORD (nr ) ((nr) / BITS_PER_LONG)
1468+ #define BIT_ULL_MASK (nr ) (1ULL << ((nr) % BITS_PER_LONG_LONG))
1469+ #define BIT_ULL_WORD (nr ) ((nr) / BITS_PER_LONG_LONG)
1470+ #define BITS_PER_BYTE 8
1471+ #define BITS_TO_LONGS (nr ) DIV_ROUND_UP(nr, BITS_PER_BYTE * sizeof(long))
1472+
1473+ #define GENMASK (h , l ) \
1474+ (((~0UL) << (l)) & (~0UL >> (BITS_PER_LONG - 1 - (h))))
1475+
1476+ #define GENMASK_ULL (h , l ) \
1477+ (((~0ULL) << (l)) & (~0ULL >> (BITS_PER_LONG_LONG - 1 - (h))))
1478+
1479+
14531480#ifdef __cplusplus
14541481}
14551482#endif
Original file line number Diff line number Diff line change @@ -98,6 +98,7 @@ void rt_object_put_sethook(void (*hook)(struct rt_object *object));
9898 * clock & timer interface
9999 */
100100rt_tick_t rt_tick_get (void );
101+ rt_tick_t rt_delta_tick_get (rt_tick_t last_time );
101102void rt_tick_set (rt_tick_t tick );
102103void rt_tick_increase (void );
103104void rt_tick_increase_tick (rt_tick_t tick );
Original file line number Diff line number Diff line change @@ -73,6 +73,24 @@ rt_tick_t rt_tick_get(void)
7373}
7474RTM_EXPORT (rt_tick_get );
7575
76+ /**
77+ * @brief This function will return delta tick from last_time.
78+ *
79+ * @param last_time to consider
80+ *
81+ * @return Return delta tick.
82+ */
83+ rt_tick_t rt_delta_tick_get (rt_tick_t last_time )
84+ {
85+ rt_tick_t tnow = rt_tick_get ();
86+ if (tnow >= last_time ) {
87+ return (tnow - last_time );
88+ } else {
89+ return (UINT32_MAX - last_time + tnow + 1 );
90+ }
91+ }
92+ RTM_EXPORT (rt_delta_tick_get );
93+
7694/**
7795 * @brief This function will set current tick.
7896 *
You can’t perform that action at this time.
0 commit comments