summaryrefslogtreecommitdiff
path: root/console-client/timer.h
diff options
context:
space:
mode:
authorMarcus Brinkmann <marcus@gnu.org>2002-09-17 12:26:10 +0000
committerMarcus Brinkmann <marcus@gnu.org>2002-09-17 12:26:10 +0000
commit09e69605b16070de8ce317d86ad736d665a58906 (patch)
tree7c0dc29f4fc660a44d2f7d6ec9d099cc4f8301a6 /console-client/timer.h
parentdbe4c7712b652b7ad3126e94c47b00fa2bbb0a05 (diff)
2002-09-17 Marcus Brinkmann <marcus@gnu.org>
* Makefile (prog-subdirs): Add console-client. sutils/ 2002-09-17 Marcus Brinkmann <marcus@gnu.org> * MAKEDEV.sh (mkdev: vcs): New console device. (mkdev: tty[0-9a-f]|tty[0-9][0-9a-f]): Replaced with new rules for tty[1-9][0-9]. utils/ 2002-09-17 Marcus Brinkmann <marcus@gnu.org> * console-ncurses.c: File removed (the ncursesw console client is now a driver in the console-client). * Makefile: Revert 2002-08-22 change: Do not include`../config.make'. (targets) [LIBNCURSES]: Removed. (SRCS) [LIBNCURSES]: Likewise. (HURDLIBS) [LIBNCURSES]: Likewise. (console-ncurses): Target removed. (console-ncurses-CPPFLAGS): Removed. (console-ncurses-LDLIBS): Likewise. console-client/ 2002-09-17 Marcus Brinkmann <marcus@gnu.org> * Makefile, bdf.c, bdf.h, bell.h, console.c, display.h, driver.c, driver.h, generic-speaker.c, input.h, pc-kbd.c, timer.c, timer.h, unicode.h, vga.c, vga-dynacolor.c, vga-dynacolor.h, vga-dynafont.c, vga-dynafont.h, vga-hw.h, vga-support.c, vga-support.h: New file.
Diffstat (limited to 'console-client/timer.h')
-rw-r--r--console-client/timer.h72
1 files changed, 72 insertions, 0 deletions
diff --git a/console-client/timer.h b/console-client/timer.h
new file mode 100644
index 00000000..4204192e
--- /dev/null
+++ b/console-client/timer.h
@@ -0,0 +1,72 @@
+/* timer.h - Interface to a timer module for Mach.
+ Copyright (C) 1995,96,2000,02 Free Software Foundation, Inc.
+ Written by Michael I. Bushnell, p/BSG and Marcus Brinkmann.
+
+ This file is part of the GNU Hurd.
+
+ The GNU Hurd is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2, or (at
+ your option) any later version.
+
+ The GNU Hurd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. */
+
+#ifndef _TIMER_H_
+#define _TIMER_H_
+
+#include <errno.h>
+#include <maptime.h>
+
+
+/* Initialize the timer component. Must be called once at startup. */
+error_t timer_init (void);
+
+/* The data structure of a timer. A user can set the values EXPIRES,
+ DATA and FUNCTION, and should leave the other fields alone. */
+struct timer_list
+{
+ struct timer_list *next, **prev; /* things like to test "T->prev != NULL" */
+ long long expires;
+
+ /* The function to be called when the timer expires. If the
+ function returns a non-zero value, the timer is put back on the
+ list. */
+ int (*fnc) (void *);
+ void *fnc_data;
+};
+
+/* Initialize the timer TIMER. */
+void timer_clear (struct timer_list *timer);
+
+/* Add the timer TIMER to the list. */
+void timer_add (struct timer_list *timer);
+
+/* Remove the timer TIMER from the list. */
+int timer_remove (struct timer_list *timer);
+
+/* Change the expiration time of the timer TIMER to EXPIRES. */
+void timer_change (struct timer_list *timer, long long expires);
+
+extern inline long long
+fetch_jiffies ()
+{
+ extern volatile struct mapped_time_value *timer_mapped_time;
+ extern long long timer_root_jiffies;
+ struct timeval tv;
+ long long j;
+
+ maptime_read (timer_mapped_time, &tv);
+
+#define HZ 100
+ j = (long long) tv.tv_sec * HZ + ((long long) tv.tv_usec * HZ) / 1000000;
+ return j - timer_root_jiffies;
+}
+
+#endif /* _TIMER_H_ */