sched: Add some helper functions.
authorAndre Noll <maan@systemlinux.org>
Mon, 11 Jan 2010 00:03:11 +0000 (01:03 +0100)
committerAndre Noll <maan@systemlinux.org>
Mon, 11 Jan 2010 00:03:11 +0000 (01:03 +0100)
sched.c
sched.h

diff --git a/sched.c b/sched.c
index 328b89615330264ab118f1b800dda6e72c30d033..14346ec0e1c411ab08da2ddbdc85073d6945615b 100644 (file)
--- a/sched.c
+++ b/sched.c
@@ -250,3 +250,22 @@ int kill_task(char *id)
        }
        return -E_NO_SUCH_TASK;
 }
+
+void sched_min_delay(struct sched *s)
+{
+       s->timeout.tv_sec = 0;
+       s->timeout.tv_usec = 1;
+}
+
+void sched_request_timeout(struct timeval *timeout, struct sched *s)
+{
+       if (tv_diff(&s->timeout, timeout, NULL) > 0)
+               s->timeout = *timeout;
+}
+
+void sched_request_timeout_ms(long unsigned ms, struct sched *s)
+{
+       struct timeval tv;
+       ms2tv(ms, &tv);
+       sched_request_timeout(&tv, s);
+}
diff --git a/sched.h b/sched.h
index 35b5c636d3d6670810cb1c58f9d6a21408d054a8..f119025c4c73f2d6b811f8220e6cec4c2449cd0d 100644 (file)
--- a/sched.h
+++ b/sched.h
@@ -79,3 +79,6 @@ int schedule(struct sched *s);
 char *get_task_list(void);
 int kill_task(char *id);
 void sched_shutdown(void);
+void sched_min_delay(struct sched *s);
+void sched_request_timeout(struct timeval *timeout, struct sched *s);
+void sched_request_timeout_ms(long unsigned ms, struct sched *s);