Преглед изворни кода

add clock_cpu_settimeout function

zhkag пре 2 година
родитељ
комит
7c1d6ffd3c
2 измењених фајлова са 20 додато и 0 уклоњено
  1. 18 0
      components/drivers/cputime/cputime.c
  2. 2 0
      components/drivers/include/drivers/cputime.h

+ 18 - 0
components/drivers/cputime/cputime.c

@@ -43,6 +43,24 @@ uint64_t clock_cpu_gettime(void)
     return 0;
 }
 
+/**
+ * The clock_cpu_settimeout() fucntion set timeout time and timeout callback function
+ * The timeout callback function will be called when the timeout time is reached
+ *
+ * @param tick the Timeout tick
+ * @param timeout the Timeout function
+ * @param parameter the Parameters of timeout function
+ *
+ */
+void clock_cpu_settimeout(uint64_t tick, void (*timeout)(void *param), void *param)
+{
+    if (_cputime_ops)
+        return _cputime_ops->cputime_settimeout(tick, timeout, param);
+
+    rt_set_errno(ENOSYS);
+    return 0;
+}
+
 /**
  * The clock_cpu_microsecond() fucntion shall return the microsecond according to
  * cpu_tick parameter.

+ 2 - 0
components/drivers/include/drivers/cputime.h

@@ -17,10 +17,12 @@ struct rt_clock_cputime_ops
 {
     double (*cputime_getres)(void);
     uint64_t (*cputime_gettime)(void);
+    void (*cputime_settimeout)(uint64_t tick, void (*timeout)(void *param), void *param);
 };
 
 double clock_cpu_getres(void);
 uint64_t clock_cpu_gettime(void);
+void clock_cpu_settimeout(uint64_t tick, void (*timeout)(void *param), void *param);
 
 uint64_t clock_cpu_microsecond(uint64_t cpu_tick);
 uint64_t clock_cpu_millisecond(uint64_t cpu_tick);