@@ -25,9 +25,9 @@ static rt_list_t _timer_list = RT_LIST_OBJECT_INIT(_timer_list);
25
25
static rt_ktime_hrtimer_t _nowtimer = RT_NULL ;
26
26
static RT_DEFINE_SPINLOCK (_spinlock );
27
27
28
- rt_weak unsigned long rt_ktime_hrtimer_getres (void )
28
+ rt_weak rt_uint64_t rt_ktime_hrtimer_getres (void )
29
29
{
30
- return ((1000UL * 1000 * 1000 ) * RT_KTIME_RESMUL ) / RT_TICK_PER_SECOND ;
30
+ return ((1000ULL * 1000 * 1000 ) * RT_KTIME_RESMUL ) / RT_TICK_PER_SECOND ;
31
31
}
32
32
33
33
rt_weak unsigned long rt_ktime_hrtimer_getfrq (void )
@@ -181,11 +181,11 @@ void rt_ktime_hrtimer_init(rt_ktime_hrtimer_t timer,
181
181
timer -> parent .flag = flag ;
182
182
183
183
/* set deactivated */
184
- timer -> parent .flag &= ~RT_TIMER_FLAG_ACTIVATED ;
185
- timer -> timeout_func = timeout ;
186
- timer -> parameter = parameter ;
187
- timer -> timeout_cnt = cnt + rt_ktime_cputimer_getcnt ();
188
- timer -> init_cnt = cnt ;
184
+ timer -> parent .flag &= ~RT_TIMER_FLAG_ACTIVATED ;
185
+ timer -> timeout_func = timeout ;
186
+ timer -> parameter = parameter ;
187
+ timer -> timeout_cnt = cnt + rt_ktime_cputimer_getcnt ();
188
+ timer -> init_cnt = cnt ;
189
189
190
190
rt_list_init (& (timer -> row ));
191
191
rt_completion_init (& timer -> completion );
@@ -203,7 +203,7 @@ rt_err_t rt_ktime_hrtimer_start(rt_ktime_hrtimer_t timer)
203
203
rt_list_remove (& timer -> row ); /* remove timer from list */
204
204
/* change status of timer */
205
205
timer -> parent .flag &= ~RT_TIMER_FLAG_ACTIVATED ;
206
- timer_list = & _timer_list ;
206
+ timer_list = & _timer_list ;
207
207
for (; timer_list != _timer_list .prev ; timer_list = timer_list -> next )
208
208
{
209
209
rt_ktime_hrtimer_t t ;
@@ -259,58 +259,58 @@ rt_err_t rt_ktime_hrtimer_control(rt_ktime_hrtimer_t timer, int cmd, void *arg)
259
259
level = rt_spin_lock_irqsave (& _spinlock );
260
260
switch (cmd )
261
261
{
262
- case RT_TIMER_CTRL_GET_TIME :
263
- * (unsigned long * )arg = timer -> init_cnt ;
264
- break ;
265
-
266
- case RT_TIMER_CTRL_SET_TIME :
267
- RT_ASSERT ((* (unsigned long * )arg ) < (_HRTIMER_MAX_CNT / 2 ));
268
- timer -> init_cnt = * (unsigned long * )arg ;
269
- timer -> timeout_cnt = * (unsigned long * )arg + rt_ktime_cputimer_getcnt ();
270
- break ;
271
-
272
- case RT_TIMER_CTRL_SET_ONESHOT :
273
- timer -> parent .flag &= ~RT_TIMER_FLAG_PERIODIC ;
274
- break ;
275
-
276
- case RT_TIMER_CTRL_SET_PERIODIC :
277
- timer -> parent .flag |= RT_TIMER_FLAG_PERIODIC ;
278
- break ;
279
-
280
- case RT_TIMER_CTRL_GET_STATE :
281
- if (timer -> parent .flag & RT_TIMER_FLAG_ACTIVATED )
282
- {
283
- /*timer is start and run*/
284
- * (rt_uint32_t * )arg = RT_TIMER_FLAG_ACTIVATED ;
285
- }
286
- else
287
- {
288
- /*timer is stop*/
289
- * (rt_uint32_t * )arg = RT_TIMER_FLAG_DEACTIVATED ;
290
- }
291
- break ;
262
+ case RT_TIMER_CTRL_GET_TIME :
263
+ * (unsigned long * )arg = timer -> init_cnt ;
264
+ break ;
265
+
266
+ case RT_TIMER_CTRL_SET_TIME :
267
+ RT_ASSERT ((* (unsigned long * )arg ) < (_HRTIMER_MAX_CNT / 2 ));
268
+ timer -> init_cnt = * (unsigned long * )arg ;
269
+ timer -> timeout_cnt = * (unsigned long * )arg + rt_ktime_cputimer_getcnt ();
270
+ break ;
271
+
272
+ case RT_TIMER_CTRL_SET_ONESHOT :
273
+ timer -> parent .flag &= ~RT_TIMER_FLAG_PERIODIC ;
274
+ break ;
275
+
276
+ case RT_TIMER_CTRL_SET_PERIODIC :
277
+ timer -> parent .flag |= RT_TIMER_FLAG_PERIODIC ;
278
+ break ;
279
+
280
+ case RT_TIMER_CTRL_GET_STATE :
281
+ if (timer -> parent .flag & RT_TIMER_FLAG_ACTIVATED )
282
+ {
283
+ /*timer is start and run*/
284
+ * (rt_uint32_t * )arg = RT_TIMER_FLAG_ACTIVATED ;
285
+ }
286
+ else
287
+ {
288
+ /*timer is stop*/
289
+ * (rt_uint32_t * )arg = RT_TIMER_FLAG_DEACTIVATED ;
290
+ }
291
+ break ;
292
292
293
- case RT_TIMER_CTRL_GET_REMAIN_TIME :
294
- * (unsigned long * )arg = timer -> timeout_cnt ;
295
- break ;
296
- case RT_TIMER_CTRL_GET_FUNC :
297
- arg = (void * )timer -> timeout_func ;
298
- break ;
293
+ case RT_TIMER_CTRL_GET_REMAIN_TIME :
294
+ * (unsigned long * )arg = timer -> timeout_cnt ;
295
+ break ;
296
+ case RT_TIMER_CTRL_GET_FUNC :
297
+ arg = (void * )timer -> timeout_func ;
298
+ break ;
299
299
300
- case RT_TIMER_CTRL_SET_FUNC :
301
- timer -> timeout_func = (void (* )(void * ))arg ;
302
- break ;
300
+ case RT_TIMER_CTRL_SET_FUNC :
301
+ timer -> timeout_func = (void (* )(void * ))arg ;
302
+ break ;
303
303
304
- case RT_TIMER_CTRL_GET_PARM :
305
- * (void * * )arg = timer -> parameter ;
306
- break ;
304
+ case RT_TIMER_CTRL_GET_PARM :
305
+ * (void * * )arg = timer -> parameter ;
306
+ break ;
307
307
308
- case RT_TIMER_CTRL_SET_PARM :
309
- timer -> parameter = arg ;
310
- break ;
308
+ case RT_TIMER_CTRL_SET_PARM :
309
+ timer -> parameter = arg ;
310
+ break ;
311
311
312
- default :
313
- break ;
312
+ default :
313
+ break ;
314
314
}
315
315
rt_spin_unlock_irqrestore (& _spinlock , level );
316
316
@@ -366,8 +366,8 @@ rt_err_t rt_ktime_hrtimer_sleep(struct rt_ktime_hrtimer *timer, unsigned long cn
366
366
if (cnt == 0 )
367
367
return - RT_EINVAL ;
368
368
369
- timer -> timeout_cnt = cnt + rt_ktime_cputimer_getcnt ();
370
- timer -> init_cnt = cnt ;
369
+ timer -> timeout_cnt = cnt + rt_ktime_cputimer_getcnt ();
370
+ timer -> init_cnt = cnt ;
371
371
372
372
rt_ktime_hrtimer_start (timer ); /* reset the timeout of thread timer and start it */
373
373
err = rt_completion_wait_flags (& (timer -> completion ), RT_WAITING_FOREVER ,
@@ -379,7 +379,7 @@ rt_err_t rt_ktime_hrtimer_sleep(struct rt_ktime_hrtimer *timer, unsigned long cn
379
379
380
380
rt_err_t rt_ktime_hrtimer_ndelay (struct rt_ktime_hrtimer * timer , unsigned long ns )
381
381
{
382
- unsigned long res = rt_ktime_cputimer_getres ();
382
+ rt_uint64_t res = rt_ktime_cputimer_getres ();
383
383
return rt_ktime_hrtimer_sleep (timer , (ns * RT_KTIME_RESMUL ) / res );
384
384
}
385
385
0 commit comments