]> Zhao Yanbai Git Server - minix.git/commitdiff
Replacing timer_t by netbsd's timer_t 91/991/2
authorLionel Sambuc <lionel@minix3.org>
Thu, 19 Sep 2013 08:57:10 +0000 (10:57 +0200)
committerLionel Sambuc <lionel@minix3.org>
Sat, 1 Mar 2014 08:04:54 +0000 (09:04 +0100)
 * Renamed struct timer to struct minix_timer
 * Renamed timer_t to minix_timer_t
 * Ensured all the code uses the minix_timer_t typedef
 * Removed ifdef around _BSD_TIMER_T
 * Removed include/timers.h and merged it into include/minix/timers.h
 * Resolved prototype conflict by renaming kernel's (re)set_timer
   to (re)set_kernel_timer.

Change-Id: I56f0f30dfed96e1a0575d92492294cf9a06468a5

67 files changed:
commands/service/parse.c
commands/service/print.c
commands/service/service.c
distrib/sets/lists/minix/mi
drivers/ahci/ahci.c
drivers/e1000/e1000.c
drivers/floppy/floppy.c
drivers/fxp/fxp.c
drivers/orinoco/orinoco.c
drivers/rtl8139/rtl8139.c
drivers/rtl8139/rtl8139.h
drivers/rtl8169/rtl8169.c
drivers/tty/arch/i386/console.c
drivers/tty/arch/i386/keyboard.c
drivers/tty/tty.c
drivers/tty/tty.h
include/Makefile
include/minix/timers.h
include/time.h
include/timers.h [deleted file]
kernel/arch/earm/pre_init.c
kernel/arch/i386/pre_init.c
kernel/clock.c
kernel/kernel.h
kernel/main.c
kernel/priv.h
kernel/proto.h
kernel/system/do_clear.c
kernel/system/do_privctl.c
kernel/system/do_setalarm.c
lib/libsys/sched_start.c
lib/libsys/tickdelay.c
lib/libsys/timers.c
lib/libtimers/timers.h
lib/libtimers/tmrs_clr.c
lib/libtimers/tmrs_exp.c
lib/libtimers/tmrs_set.c
servers/devman/buf.c
servers/devman/devman.h
servers/devman/main.c
servers/inet/clock.c
servers/inet/generic/arp.c
servers/inet/generic/clock.h
servers/inet/generic/tcp_int.h
servers/inet/generic/tcp_send.c
servers/is/dmp_kernel.c
servers/is/dmp_pm.c
servers/is/dmp_rs.c
servers/is/dmp_vm.c
servers/lwip/lwip.c
servers/pm/alarm.c
servers/pm/mproc.h
servers/pm/proto.h
servers/pm/schedule.c
servers/pm/utility.c
servers/procfs/inc.h
servers/rs/inc.h
servers/sched/proto.h
servers/sched/schedule.c
servers/vfs/proto.h
servers/vfs/select.c
servers/vm/proto.h
sys/arch/arm/include/ansi.h
sys/arch/i386/include/ansi.h
sys/sys/time.h
sys/sys/types.h
usr.bin/top/top.c

index 342080ba0ff3e8b07bf2ac125b5dd49e8a896a03..389f268df18780e420d39f67ee41d84f40d23100 100644 (file)
@@ -26,7 +26,7 @@
 #include <configfile.h>
 
 #include <machine/archtypes.h>
-#include <timers.h>
+#include <minix/timers.h>
 #include "kernel/proc.h"
 
 #include "config.h"
index 52ea796d5cdde8c47785657a410c7d96c504b493..7f42396ba743918247bf250910712816eb026ce7 100644 (file)
@@ -25,7 +25,7 @@
 #include <configfile.h>
 
 #include <machine/archtypes.h>
-#include <timers.h>
+#include <minix/timers.h>
 #include <err.h>
 
 #include "config.h"
index b20b65a148b0ef9949926f76ad5b527b4a2038e8..b1b05e5e79b68f16da4397302241bf9da88c4453 100644 (file)
@@ -32,7 +32,7 @@
 #include <configfile.h>
 
 #include <machine/archtypes.h>
-#include <timers.h>
+#include <minix/timers.h>
 #include <err.h>
 #include "kernel/proc.h"
 
index 5e45125017045e3a93bc0a214668583dfc854085..94db612f7922892384244b90e7e6ca69f99e0121 100644 (file)
 ./usr/include/term.h                   minix-sys
 ./usr/include/termios.h                        minix-sys
 ./usr/include/time.h                   minix-sys
-./usr/include/timers.h                 minix-sys
+./usr/include/timers.h                 minix-sys       obsolete
 ./usr/include/tools.h                  minix-sys       obsolete
 ./usr/include/ttyent.h                 minix-sys
 ./usr/include/tzfile.h                 minix-sys
index 17a35650275140013007ce7b7c48de5816ba8fe1..d3acb5aa6add93334b72058eea5199110f76e148 100644 (file)
@@ -170,7 +170,7 @@ static struct port_state {
        struct device part[DEV_PER_DRIVE];      /* partition bases and sizes */
        struct device subpart[SUB_PER_DRIVE];   /* same for subpartitions */
 
-       timer_t timer;          /* port-specific timeout timer */
+       minix_timer_t timer;            /* port-specific timeout timer */
        int left;               /* number of tries left before giving up */
                                /* (only used for signature probing) */
 
@@ -178,7 +178,7 @@ static struct port_state {
        u32_t pend_mask;        /* commands not yet complete */
        struct {
                thread_id_t tid;/* ID of the worker thread */
-               timer_t timer;  /* timer associated with each request */
+               minix_timer_t timer;    /* timer associated with each request */
                int result;     /* success/failure result of the commands */
        } cmd_info[NR_CMDS];
 } port_state[NR_PORTS];
@@ -232,7 +232,7 @@ static void port_set_cmd(struct port_state *ps, int cmd, cmd_fis_t *fis,
        u8_t packet[ATAPI_PACKET_SIZE], prd_t *prdt, int nr_prds, int write);
 static void port_issue(struct port_state *ps, int cmd, clock_t timeout);
 static int port_exec(struct port_state *ps, int cmd, clock_t timeout);
-static void port_timeout(struct timer *tp);
+static void port_timeout(minix_timer_t *tp);
 static void port_disconnect(struct port_state *ps);
 
 static char *ahci_portname(struct port_state *ps);
@@ -1712,7 +1712,7 @@ static void port_intr(struct port_state *ps)
 /*===========================================================================*
  *                             port_timeout                                 *
  *===========================================================================*/
-static void port_timeout(struct timer *tp)
+static void port_timeout(minix_timer_t *tp)
 {
        /* A timeout has occurred on this port. Figure out what the timeout is
         * for, and take appropriate action.
index 47f21f026c7b95160860f85d73a45435746fed6d..9d719a2e352052738f2e1ee7c1bc44aef5e90430 100644 (file)
@@ -13,7 +13,7 @@
 #include <machine/pci.h>
 #include <minix/ds.h>
 #include <minix/vm.h>
-#include <timers.h>
+#include <minix/timers.h>
 #include <sys/mman.h>
 #include "assert.h"
 #include "e1000.h"
index d36c52cc2972efc47fa4613d9a4f398f90018f49..1b95108dc3b8d68b68d3043db9879c8ed84391c1 100644 (file)
@@ -23,7 +23,7 @@
  */
 
 #include "floppy.h"
-#include <timers.h>
+#include <minix/timers.h>
 #include <machine/diskparm.h>
 #include <minix/sysutil.h>
 #include <minix/syslib.h>
@@ -212,7 +212,7 @@ static struct floppy {              /* main drive struct, one entry per drive */
   char fl_calibration;         /* CALIBRATED or UNCALIBRATED */
   u8_t fl_density;             /* NO_DENS = ?, 0 = 360K; 1 = 360K/1.2M; etc.*/
   u8_t fl_class;               /* bitmap for possible densities */
-  timer_t fl_tmr_stop;         /* timer to stop motor */
+  minix_timer_t fl_tmr_stop;           /* timer to stop motor */
   struct device fl_geom;       /* Geometry of the drive */
   struct device fl_part[NR_PARTITIONS];  /* partition's base & size */
 } floppy[NR_DRIVES];
@@ -236,11 +236,11 @@ static u8_t f_results[MAX_RESULTS];/* the controller can give lots of output */
  * Besides the 'f_tmr_timeout' timer below, the floppy structure for each
  * floppy disk drive contains a 'fl_tmr_stop' timer. 
  */
-static timer_t f_tmr_timeout;          /* timer for various timeouts */
+static minix_timer_t f_tmr_timeout;            /* timer for various timeouts */
 static u32_t system_hz;                /* system clock frequency */
 static void f_expire_tmrs(clock_t stamp);
-static void stop_motor(timer_t *tp);
-static void f_timeout(timer_t *tp);
+static void stop_motor(minix_timer_t *tp);
+static void f_timeout(minix_timer_t *tp);
 
 static struct device *f_prepare(devminor_t device);
 static struct device *f_part(devminor_t minor);
@@ -785,7 +785,7 @@ static void start_motor(void)
 /*===========================================================================*
  *                             stop_motor                                   *
  *===========================================================================*/
-static void stop_motor(timer_t *tp)
+static void stop_motor(minix_timer_t *tp)
 {
 /* This routine is called from an alarm timer after several seconds have
  * elapsed with no floppy disk activity.  It turns the drive motor off.
@@ -1199,7 +1199,7 @@ static int f_intr_wait(void)
 /*===========================================================================*
  *                             f_timeout                                    *
  *===========================================================================*/
-static void f_timeout(timer_t *UNUSED(tp))
+static void f_timeout(minix_timer_t *UNUSED(tp))
 {
 /* This routine is called when a timer expires.  Usually to tell that a
  * motor has spun up, but also to forge an interrupt when it takes too long
index 077c8b2eaba50a6aee02066ca94f66bddc4d4166..19f82be44c5372735c2d165c0afcb2dbbc2901b2 100644 (file)
@@ -18,7 +18,7 @@
 #include <minix/ds.h>
 #include <minix/endpoint.h>
 
-#include <timers.h>
+#include <minix/timers.h>
 
 #define debug                  0
 #define RAND_UPDATE            /**/
@@ -141,7 +141,7 @@ static int fxp_instance;
 
 static fxp_t *fxp_state;
 
-static timer_t fxp_watchdog;
+static minix_timer_t fxp_watchdog;
 
 static u32_t system_hz;
 
@@ -170,7 +170,7 @@ static void fxp_restart_ru(fxp_t *fp);
 static void fxp_getstat_s(message *mp);
 static void fxp_handler(fxp_t *fp);
 static void fxp_check_ints(fxp_t *fp);
-static void fxp_watchdog_f(timer_t *tp);
+static void fxp_watchdog_f(minix_timer_t *tp);
 static int fxp_link_changed(fxp_t *fp);
 static void fxp_report_link(fxp_t *fp);
 static void reply(fxp_t *fp);
@@ -1627,7 +1627,7 @@ static void fxp_check_ints(fxp_t *fp)
  *                             fxp_watchdog_f                               *
  *===========================================================================*/
 static void fxp_watchdog_f(tp)
-timer_t *tp;
+minix_timer_t *tp;
 {
        fxp_t *fp;
 
index 682da5f60fa9d737b8cf99d95a3ae26d4ec27869..87d960ce9300e75800affe8abb51397e4ee3408d 100644 (file)
@@ -15,7 +15,7 @@
 #include       <minix/syslib.h>
 #include       <minix/type.h>
 #include       <minix/sysutil.h>
-#include       <timers.h>
+#include       <minix/timers.h>
 #include       <machine/pci.h>
 #include       <minix/ds.h>
 #include       <minix/endpoint.h>
@@ -149,7 +149,7 @@ static void or_getstat_s(message * mp);
 static void print_linkstatus(t_or * orp, u16_t status);
 static int or_get_recvd_packet(t_or *orp, u16_t rxfid, u8_t *databuf);
 static void or_reset(void);
-static void or_watchdog_f(timer_t *tp);
+static void or_watchdog_f(minix_timer_t *tp);
 static void setup_wepkey(t_or *orp, char *wepkey0);
 static void do_hard_int(void);
 static void check_int_events(void);
@@ -1092,7 +1092,7 @@ next:
  * Will be called regularly to see whether the driver has crashed. If that   *
  * condition is detected, reset the driver and card                          *
  *****************************************************************************/
-static void or_watchdog_f(timer_t *tp)
+static void or_watchdog_f(minix_timer_t *tp)
 {
        t_or *orp;
        
index 68c71661d541283f909fbb1b850f410d3ecd7d9b..e04221165eb70a98a4ed8fd59a0fa43f8aefa2ed 100644 (file)
@@ -91,7 +91,7 @@ static void rtl8139_dump(message *m);
 static void dump_phy(re_t *rep);
 #endif
 static int rl_handler(re_t *rep);
-static void rl_watchdog_f(timer_t *tp);
+static void rl_watchdog_f(minix_timer_t *tp);
 static void tell_dev(vir_bytes start, size_t size, int pci_bus, int
        pci_dev, int pci_func);
 
@@ -1969,7 +1969,7 @@ static int rl_handler(re_t *rep)
  *                             rl_watchdog_f                                *
  *===========================================================================*/
 static void rl_watchdog_f(tp)
-timer_t *tp;
+minix_timer_t *tp;
 {
        re_t *rep;
        /* Use a synchronous alarm instead of a watchdog timer. */
index 9a4766a222f73ba8d78aff796e347287ed1dfb47..85d472ce2c8957665a0d7dc2ae7efe075215adef 100644 (file)
@@ -18,7 +18,7 @@ Created:      Aug 2003 by Philip Homburg <philip@cs.vu.nl>
 #include <minix/type.h>
 #include <minix/sysutil.h>
 #include <minix/endpoint.h>
-#include <timers.h>
+#include <minix/timers.h>
 #include <net/hton.h>
 #include <net/gen/ether.h>
 #include <net/gen/eth_io.h>
index 94f758034aa268467b169e5eebc140497b6ac8b0..ecbd76afa159413388fd4994da49fb3cc5ede2ce 100644 (file)
@@ -18,7 +18,7 @@
 #include <minix/type.h>
 #include <minix/sysutil.h>
 #include <minix/endpoint.h>
-#include <timers.h>
+#include <minix/timers.h>
 #include <net/hton.h>
 #include <net/gen/ether.h>
 #include <net/gen/eth_io.h>
@@ -223,7 +223,7 @@ static void check_int_events(void);
 static void do_hard_int(void);
 static void dump_phy(const re_t *rep);
 static void rl_handler(re_t *rep);
-static void rl_watchdog_f(timer_t *tp);
+static void rl_watchdog_f(minix_timer_t *tp);
 
 /*
  * The message used in the main loop is made global, so that rl_watchdog_f()
@@ -1888,7 +1888,7 @@ static void rl_handler(re_t *rep)
  *                             rl_watchdog_f                                *
  *===========================================================================*/
 static void rl_watchdog_f(tp)
-timer_t *tp;
+minix_timer_t *tp;
 {
        re_t *rep;
        /* Use a synchronous alarm instead of a watchdog timer. */
index d8034190c05f282a920bdd0de6be9a118d5f1b38..ab880b7fd3235d82f0be5e7f1a9e70f63d692162 100644 (file)
@@ -123,7 +123,7 @@ static void flush(console_t *cons);
 static void parse_escape(console_t *cons, int c);
 static void scroll_screen(console_t *cons, int dir);
 static void set_6845(int reg, unsigned val);
-static void stop_beep(timer_t *tmrp);
+static void stop_beep(minix_timer_t *tmrp);
 static void cons_org0(void);
 static void disable_console(void);
 static void reenable_console(void);
@@ -789,7 +789,7 @@ static void beep()
  * This routine works by turning on the bits 0 and 1 in port B of the 8255
  * chip that drive the speaker.
  */
-  static timer_t tmr_stop_beep;
+  static minix_timer_t tmr_stop_beep;
   pvb_pair_t char_out[3];
   u32_t port_b_val;
   
@@ -885,7 +885,7 @@ clock_t dur;
  * This routine works by turning on the bits 0 and 1 in port B of the 8255
  * chip that drive the speaker.
  */
-  static timer_t tmr_stop_beep;
+  static minix_timer_t tmr_stop_beep;
   pvb_pair_t char_out[3];
   u32_t port_b_val;
 
@@ -914,7 +914,7 @@ clock_t dur;
 /*===========================================================================*
  *                             stop_beep                                    *
  *===========================================================================*/
-static void stop_beep(timer_t *UNUSED(tmrp))
+static void stop_beep(minix_timer_t *UNUSED(tmrp))
 {
 /* Turn off the beeper by turning off bits 0 and 1 in PORT_B. */
   u32_t port_b_val;
index 60e98378da617fa2ff71debd02d2150574bdc18a..4dc8649f0261951bc0639870ab108072dce81620 100644 (file)
@@ -151,7 +151,7 @@ static int kbd_watchdog_set= 0;
 static int kbd_alive= 1;
 static long sticky_alt_mode = 0;
 static long debug_fkeys = 1;
-static timer_t tmr_kbd_wd;
+static minix_timer_t tmr_kbd_wd;
 
 static void kbc_cmd0(int cmd);
 static void kbc_cmd1(int cmd, int data);
@@ -166,7 +166,7 @@ static void set_leds(void);
 static void show_key_mappings(void);
 static int kb_read(struct tty *tp, int try);
 static unsigned map_key(int scode);
-static void kbd_watchdog(timer_t *tmrp);
+static void kbd_watchdog(minix_timer_t *tmrp);
 
 static int kbd_open(devminor_t minor, int access, endpoint_t user_endpt);
 static int kbd_close(devminor_t minor);
@@ -1323,7 +1323,7 @@ int *isauxp;
 /*===========================================================================*
  *                             kbd_watchdog                                 *
  *===========================================================================*/
-static void kbd_watchdog(timer_t *UNUSED(tmrp))
+static void kbd_watchdog(minix_timer_t *UNUSED(tmrp))
 {
 
        kbd_watchdog_set= 0;
index cd61f21e7d706169f3dd35f8d3db85ccd5db573d..b0c910a6fc2768985d4453aa677ac9bb3a263b16 100644 (file)
@@ -63,7 +63,7 @@ unsigned long rs_irq_set = 0;
 
 struct kmessages kmess;
 
-static void tty_timed_out(timer_t *tp);
+static void tty_timed_out(minix_timer_t *tp);
 static void settimer(tty_t *tty_ptr, int enable);
 static void in_transfer(tty_t *tp);
 static int tty_echo(tty_t *tp, int ch);
@@ -1608,7 +1608,7 @@ static void tty_init()
 /*===========================================================================*
  *                             tty_timed_out                                *
  *===========================================================================*/
-static void tty_timed_out(timer_t *tp)
+static void tty_timed_out(minix_timer_t *tp)
 {
 /* This timer has expired. Set the events flag, to force processing. */
   tty_t *tty_ptr;
index f83a980f765629f99b0e7ec43fd39e0db12e2813..bc68262955d06ea619086124c5314da319a5aaf8 100644 (file)
@@ -1,7 +1,7 @@
 /*     tty.h - Terminals       */
 
 #include <minix/chardriver.h>
-#include <timers.h>
+#include <minix/timers.h>
 
 #undef lock
 #undef unlock
@@ -42,7 +42,7 @@ typedef struct tty {
   devfun_t tty_devread;                /* routine to read from low level buffers */
   devfun_t tty_icancel;                /* cancel any device input */
   int tty_min;                 /* minimum requested #chars in input queue */
-  timer_t tty_tmr;             /* the timer for this tty */
+  minix_timer_t tty_tmr;               /* the timer for this tty */
 
   /* Output section. */
   devfun_t tty_devwrite;       /* routine to start actual device output */
index b9f00bbe55fb249c5313c64d17aa792ce2d75b9e..fa4125d714ef0c5353f627038492c510716afec3 100644 (file)
@@ -39,7 +39,7 @@ INCS+=        ieeefp.h
 
 .if defined(__MINIX)
 # MINIX Specific headers.
-INCS+=  env.h fetch.h lib.h libutil.h timers.h varargs.h 
+INCS+=  env.h fetch.h lib.h libutil.h varargs.h
 .endif
 
 
index e30701e24aae6a276709ad0c44324384aa1c0179..482975e29be86f4163ccf1aa69ee6a45d1f15c72 100644 (file)
+/* This library provides generic watchdog timer management functionality.
+ * The functions operate on a timer queue provided by the caller. Note that
+ * the timers must use absolute time to allow sorting. The library provides:
+ *
+ *    tmrs_settimer:     (re)set a new watchdog timer in the timers queue
+ *    tmrs_clrtimer:     remove a timer from both the timers queue
+ *    tmrs_exptimers:    check for expired timers and run watchdog functions
+ *
+ * Author:
+ *    Jorrit N. Herder <jnherder@cs.vu.nl>
+ *    Adapted from tmr_settimer and tmr_clrtimer in src/kernel/clock.c.
+ *    Last modified: September 30, 2004.
+ */
 #ifndef _MINIX_TIMERS_H
 #define _MINIX_TIMERS_H
 
+#include <limits.h>
+
+#include <sys/types.h>
+#include <minix/u64.h>
+#include <minix/minlib.h>
+#include <minix/endpoint.h>
+
+struct minix_timer;
+typedef void (*tmr_func_t)(struct minix_timer *tp);
+typedef union { int ta_int; long ta_long; void *ta_ptr; } tmr_arg_t;
+
+/* A minix_timer_t variable must be declare for each distinct timer to be used.
+ * The timers watchdog function and expiration time are automatically set
+ * by the library function tmrs_settimer, but its argument is not.
+ */
+typedef struct minix_timer
+{
+  struct minix_timer   *tmr_next;      /* next in a timer chain */
+  clock_t      tmr_exp_time;   /* expiration time */
+  tmr_func_t   tmr_func;       /* function to call when expired */
+  tmr_arg_t    tmr_arg;        /* random argument */
+} minix_timer_t;
+
+/* Used when the timer is not active. */
+#define TMR_NEVER    ((clock_t) -1 < 0) ? ((clock_t) LONG_MAX) : ((clock_t) -1)
+#undef TMR_NEVER
+#define TMR_NEVER      ((clock_t) LONG_MAX)
+
+/* These definitions can be used to set or get data from a timer variable. */
+#define tmr_arg(tp) (&(tp)->tmr_arg)
+#define tmr_exp_time(tp) (&(tp)->tmr_exp_time)
+
+/* Timers should be initialized once before they are being used. Be careful
+ * not to reinitialize a timer that is in a list of timers, or the chain
+ * will be broken.
+ */
+#define tmr_inittimer(tp) (void)((tp)->tmr_exp_time = TMR_NEVER, \
+       (tp)->tmr_next = NULL)
+
+/* The following generic timer management functions are available. They
+ * can be used to operate on the lists of timers. Adding a timer to a list
+ * automatically takes care of removing it.
+ */
+clock_t tmrs_clrtimer(minix_timer_t **tmrs, minix_timer_t *tp, clock_t *new_head);
+void tmrs_exptimers(minix_timer_t **tmrs, clock_t now, clock_t *new_head);
+clock_t tmrs_settimer(minix_timer_t **tmrs, minix_timer_t *tp, clock_t exp_time,
+       tmr_func_t watchdog, clock_t *new_head);
+
+#define PRINT_STATS(cum_spenttime, cum_instances) {            \
+               if(ex64hi(cum_spenttime)) { util_stacktrace(); printf(" ( ??? %lu %lu)\n",      \
+                       ex64hi(cum_spenttime), ex64lo(cum_spenttime)); } \
+               printf("%s:%d,%lu,%lu\n", \
+                       __FILE__, __LINE__, cum_instances,      \
+                        ex64lo(cum_spenttime)); \
+       }
+
+#define RESET_STATS(starttime, cum_instances, cum_spenttime, cum_starttime) { \
+               cum_instances = 0;                              \
+               cum_starttime = starttime;                      \
+               cum_spenttime = make64(0,0);                    \
+}
+
+#define TIME_BLOCK_VAR(timed_code_block, time_interval) do {   \
+       static u64_t _cum_spenttime, _cum_starttime;            \
+       static int _cum_instances;                              \
+       u64_t _next_cum_spent, _starttime, _endtime, _dt, _cum_dt;      \
+       u32_t _dt_micros;                                       \
+       read_tsc_64(&_starttime);                               \
+       do { timed_code_block } while(0);                       \
+       read_tsc_64(&_endtime);                                 \
+       _dt = sub64(_endtime, _starttime);                      \
+       if(_cum_instances == 0) {                               \
+               RESET_STATS(_starttime, _cum_instances, _cum_spenttime, _cum_starttime); \
+        }                                                      \
+       _next_cum_spent = add64(_cum_spenttime, _dt);           \
+       if(ex64hi(_next_cum_spent)) {                           \
+               PRINT_STATS(_cum_spenttime, _cum_instances);    \
+               RESET_STATS(_starttime, _cum_instances, _cum_spenttime, _cum_starttime); \
+       }                                                       \
+       _cum_spenttime = add64(_cum_spenttime, _dt);            \
+       _cum_instances++;                                       \
+       _cum_dt = sub64(_endtime, _cum_starttime);              \
+       if(cmp64(_cum_dt, make64(0, 120)) > 0) {                \
+               PRINT_STATS(_cum_spenttime, _cum_instances);    \
+               RESET_STATS(_starttime, _cum_instances, _cum_spenttime, _cum_starttime);        \
+       }                                                       \
+} while(0)
+
+#define TIME_BLOCK(timed_code_block) TIME_BLOCK_VAR(timed_code_block, 100)
+#define TIME_BLOCK_T(timed_code_block, t) TIME_BLOCK_VAR(timed_code_block, t)
+
 /* Timers abstraction for system processes. This would be in minix/sysutil.h
  * if it weren't for naming conflicts.
  */
 
-#include <timers.h>
-
-void init_timer(timer_t *tp);
-void set_timer(timer_t *tp, int ticks, tmr_func_t watchdog, int arg);
-void cancel_timer(timer_t *tp);
+void init_timer(minix_timer_t *tp);
+void set_timer(minix_timer_t *tp, int ticks, tmr_func_t watchdog, int arg);
+void cancel_timer(minix_timer_t *tp);
 void expire_timers(clock_t now);
 
 #endif /* _MINIX_TIMERS_H */
index 711297140caa25b547ac235520917d57986b7415..3a6a5a9a6d60d0e4a14147bab7884c5eb1d19c02 100644 (file)
@@ -65,12 +65,10 @@ typedef     _BSD_CLOCKID_T_ clockid_t;
 #undef _BSD_CLOCKID_T_
 #endif
 
-#ifndef __minix
 #ifdef _BSD_TIMER_T_
 typedef        _BSD_TIMER_T_   timer_t;
 #undef _BSD_TIMER_T_
 #endif
-#endif /* !__minix */
 
 #ifdef __minix
 #define CLOCKS_PER_SEC 60
diff --git a/include/timers.h b/include/timers.h
deleted file mode 100644 (file)
index 683dca9..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-/* This library provides generic watchdog timer management functionality.
- * The functions operate on a timer queue provided by the caller. Note that
- * the timers must use absolute time to allow sorting. The library provides:
- *
- *    tmrs_settimer:     (re)set a new watchdog timer in the timers queue 
- *    tmrs_clrtimer:     remove a timer from both the timers queue 
- *    tmrs_exptimers:    check for expired timers and run watchdog functions
- *
- * Author:
- *    Jorrit N. Herder <jnherder@cs.vu.nl>
- *    Adapted from tmr_settimer and tmr_clrtimer in src/kernel/clock.c. 
- *    Last modified: September 30, 2004.
- */
-
-#ifndef _TIMERS_H
-#define _TIMERS_H
-
-#include <limits.h>
-
-#include <sys/types.h>
-#include <minix/u64.h>
-#include <minix/minlib.h>
-#include <minix/endpoint.h>
-
-struct timer;
-typedef void (*tmr_func_t)(struct timer *tp);
-typedef union { int ta_int; long ta_long; void *ta_ptr; } tmr_arg_t;
-
-/* A timer_t variable must be declare for each distinct timer to be used.
- * The timers watchdog function and expiration time are automatically set
- * by the library function tmrs_settimer, but its argument is not.
- */
-typedef struct timer
-{
-  struct timer *tmr_next;      /* next in a timer chain */
-  clock_t      tmr_exp_time;   /* expiration time */
-  tmr_func_t   tmr_func;       /* function to call when expired */
-  tmr_arg_t    tmr_arg;        /* random argument */
-} timer_t;
-
-/* Used when the timer is not active. */
-#define TMR_NEVER    ((clock_t) -1 < 0) ? ((clock_t) LONG_MAX) : ((clock_t) -1)
-#undef TMR_NEVER
-#define TMR_NEVER      ((clock_t) LONG_MAX)
-
-/* These definitions can be used to set or get data from a timer variable. */ 
-#define tmr_arg(tp) (&(tp)->tmr_arg)
-#define tmr_exp_time(tp) (&(tp)->tmr_exp_time)
-
-/* Timers should be initialized once before they are being used. Be careful
- * not to reinitialize a timer that is in a list of timers, or the chain
- * will be broken.
- */
-#define tmr_inittimer(tp) (void)((tp)->tmr_exp_time = TMR_NEVER, \
-       (tp)->tmr_next = NULL)
-
-/* The following generic timer management functions are available. They
- * can be used to operate on the lists of timers. Adding a timer to a list 
- * automatically takes care of removing it.
- */
-clock_t tmrs_clrtimer(timer_t **tmrs, timer_t *tp, clock_t *new_head);
-void tmrs_exptimers(timer_t **tmrs, clock_t now, clock_t *new_head);
-clock_t tmrs_settimer(timer_t **tmrs, timer_t *tp, clock_t exp_time,
-       tmr_func_t watchdog, clock_t *new_head);
-
-#define PRINT_STATS(cum_spenttime, cum_instances) {            \
-               if(ex64hi(cum_spenttime)) { util_stacktrace(); printf(" ( ??? %lu %lu)\n",      \
-                       ex64hi(cum_spenttime), ex64lo(cum_spenttime)); } \
-               printf("%s:%d,%lu,%lu\n", \
-                       __FILE__, __LINE__, cum_instances,      \
-                        ex64lo(cum_spenttime)); \
-       }
-
-#define RESET_STATS(starttime, cum_instances, cum_spenttime, cum_starttime) { \
-               cum_instances = 0;                              \
-               cum_starttime = starttime;                      \
-               cum_spenttime = make64(0,0);                    \
-}
-
-#define TIME_BLOCK_VAR(timed_code_block, time_interval) do {   \
-       static u64_t _cum_spenttime, _cum_starttime;            \
-       static int _cum_instances;                              \
-       u64_t _next_cum_spent, _starttime, _endtime, _dt, _cum_dt;      \
-       u32_t _dt_micros;                                       \
-       read_tsc_64(&_starttime);                               \
-       do { timed_code_block } while(0);                       \
-       read_tsc_64(&_endtime);                                 \
-       _dt = sub64(_endtime, _starttime);                      \
-       if(_cum_instances == 0) {                               \
-               RESET_STATS(_starttime, _cum_instances, _cum_spenttime, _cum_starttime); \
-        }                                                      \
-       _next_cum_spent = _cum_spenttime + _dt;                 \
-       if(ex64hi(_next_cum_spent)) {                           \
-               PRINT_STATS(_cum_spenttime, _cum_instances);    \
-               RESET_STATS(_starttime, _cum_instances, _cum_spenttime, _cum_starttime); \
-       }                                                       \
-       _cum_spenttime += _dt;                                  \
-       _cum_instances++;                                       \
-       _cum_dt = sub64(_endtime, _cum_starttime);              \
-       if(cmp64(_cum_dt, make64(0, 120)) > 0) {                \
-               PRINT_STATS(_cum_spenttime, _cum_instances);    \
-               RESET_STATS(_starttime, _cum_instances, _cum_spenttime, _cum_starttime);        \
-       }                                                       \
-} while(0)
-
-#define TIME_BLOCK(timed_code_block) TIME_BLOCK_VAR(timed_code_block, 100)
-#define TIME_BLOCK_T(timed_code_block, t) TIME_BLOCK_VAR(timed_code_block, t)
-
-#endif /* _TIMERS_H */
-
index 153ec9b5e1e1c3b473c9f70f6264947a4feea021..4bb133c4d8d4ab7851ec95600195f169f7b435fd 100644 (file)
@@ -412,7 +412,7 @@ kinfo_t *pre_init(int argc, char **argv)
  * longer used and the "real" implementations are visible
  */
 int send_sig(endpoint_t proc_nr, int sig_nr) { return 0; }
-void minix_shutdown(timer_t *t) { arch_shutdown(RBT_PANIC); }
+void minix_shutdown(minix_timer_t *t) { arch_shutdown(RBT_PANIC); }
 void busy_delay_ms(int x) { }
 int raise(int n) { panic("raise(%d)\n", n); }
 int kern_phys_map_ptr( phys_bytes base_address, vir_bytes io_size, 
index 6a53ec9c8b0022f160a1218c252e397f66458302..2a9967ac8f6533f8f53e08761f1fa8d446599177 100644 (file)
@@ -246,6 +246,6 @@ kinfo_t *pre_init(u32_t magic, u32_t ebx)
 }
 
 int send_sig(endpoint_t proc_nr, int sig_nr) { return 0; }
-void minix_shutdown(timer_t *t) { arch_shutdown(RBT_PANIC); }
+void minix_shutdown(minix_timer_t *t) { arch_shutdown(RBT_PANIC); }
 void busy_delay_ms(int x) { }
 int raise(int sig) { panic("raise(%d)\n", sig); }
index 545198b6853f430b0e87fcd132a2abfa55d827b6..0c71d701cdae9163fcd83bd30aaddc3ed881525a 100644 (file)
  *
  * In addition to the main clock_task() entry point, which starts the main 
  * loop, there are several other minor entry points:
- *   clock_stop:       called just before MINIX shutdown
- *   get_realtime:     get wall time since boot in clock ticks
- *   set_realtime:     set wall time since boot in clock ticks
- *   set_adjtime_delta:        set the number of ticks to adjust realtime
- *   get_monotonic:    get monotonic time since boot in clock ticks
- *   set_timer:                set a watchdog timer (+)
- *   reset_timer:      reset a watchdog timer (+)
- *   read_clock:       read the counter of channel 0 of the 8253A timer
+ *   clock_stop:               called just before MINIX shutdown
+ *   get_realtime:             get wall time since boot in clock ticks
+ *   set_realtime:             set wall time since boot in clock ticks
+ *   set_adjtime_delta:                set the number of ticks to adjust realtime
+ *   get_monotonic:            get monotonic time since boot in clock ticks
+ *   set_kernel_timer:         set a watchdog timer (+)
+ *   reset_kernel_timer:       reset a watchdog timer (+)
+ *   read_clock:               read the counter of channel 0 of the 8253A timer
  *
  * (+) The CLOCK task keeps tracks of watchdog timers for the entire kernel.
  * It is crucial that watchdog functions not block, or the CLOCK task may
  */ 
 static void load_update(void);
 
-/* The CLOCK's timers queue. The functions in <timers.h> operate on this. 
+/* The CLOCK's timers queue. The functions in <minix/timers.h> operate on this.
  * Each system process possesses a single synchronous alarm timer. If other 
  * kernel parts want to use additional timers, they must declare their own 
  * persistent (static) timer structure, which can be passed to the clock
- * via (re)set_timer().
+ * via (re)set_kernel_timer().
  * When a timer expires its watchdog function is run by the CLOCK task. 
  */
-static timer_t *clock_timers;  /* queue of CLOCK timers */
+static minix_timer_t *clock_timers;    /* queue of CLOCK timers */
 static clock_t next_timeout;   /* monotonic time that next timer expires */
 
 /* The time is incremented by the interrupt handler on each clock tick.
@@ -211,10 +211,10 @@ clock_t get_monotonic(void)
 }
 
 /*===========================================================================*
- *                             set_timer                                    *
+ *                             set_kernel_timer                             *
  *===========================================================================*/
-void set_timer(tp, exp_time, watchdog)
-struct timer *tp;              /* pointer to timer structure */
+void set_kernel_timer(tp, exp_time, watchdog)
+minix_timer_t *tp;             /* pointer to timer structure */
 clock_t exp_time;              /* expiration monotonic time */
 tmr_func_t watchdog;           /* watchdog to be called */
 {
@@ -226,10 +226,10 @@ tmr_func_t watchdog;              /* watchdog to be called */
 }
 
 /*===========================================================================*
- *                             reset_timer                                  *
+ *                             reset_kernel_timer                           *
  *===========================================================================*/
-void reset_timer(tp)
-struct timer *tp;              /* pointer to timer structure */
+void reset_kernel_timer(tp)
+minix_timer_t *tp;             /* pointer to timer structure */
 {
 /* The timer pointed to by 'tp' is no longer needed. Remove it from both the
  * active and expired lists. Always update the next timeout time by setting
index f38c22737b0091673bd964a650325044851d6a17..f49043279d0a14f01dd6e0d79c879c2766679e8d 100644 (file)
@@ -29,7 +29,7 @@
 #include <minix/type.h>                /* MINIX specific types, e.g. message */
 #include <minix/ipc.h>         /* MINIX run-time system */
 #include <minix/sysutil.h>     /* MINIX utility library functions */
-#include <timers.h>            /* watchdog timer management */
+#include <minix/timers.h>              /* watchdog timer management */
 #include <errno.h>             /* return codes and error numbers */
 #include <sys/param.h>
 #include <minix/param.h>
index b1c8e2a9afd09a7afd7cc3720bdf9304e7f1af5d..dd0886ad687a19abcda788ef698a4af126b69b9d 100644 (file)
@@ -340,7 +340,7 @@ static void announce(void)
 void prepare_shutdown(const int how)
 {
 /* This function prepares to shutdown MINIX. */
-  static timer_t shutdown_timer;
+  static minix_timer_t shutdown_timer;
 
   /* Continue after 1 second, to give processes a chance to get scheduled to 
    * do shutdown work.  Set a watchog timer to call shutdown(). The timer 
@@ -348,13 +348,13 @@ void prepare_shutdown(const int how)
    */
   printf("MINIX will now be shut down ...\n");
   tmr_arg(&shutdown_timer)->ta_int = how;
-  set_timer(&shutdown_timer, get_monotonic() + system_hz, minix_shutdown);
+  set_kernel_timer(&shutdown_timer, get_monotonic() + system_hz, minix_shutdown);
 }
 
 /*===========================================================================*
  *                             shutdown                                     *
  *===========================================================================*/
-void minix_shutdown(timer_t *tp)
+void minix_shutdown(minix_timer_t *tp)
 {
 /* This function is called from prepare_shutdown or stop_sequence to bring 
  * down MINIX. How to shutdown is in the argument: RBT_HALT (return to the
index f053c3b5902db0bb622ad62861f3f2ecfeb60498..204dacd468c3c61ef3819b5470ff855b230ecba0 100644 (file)
@@ -42,7 +42,7 @@ struct priv {
   irq_id_t s_int_pending;      /* pending hardware interrupts */
   sigset_t s_sig_pending;      /* pending signals */
 
-  timer_t s_alarm_timer;       /* synchronous alarm timer */ 
+  minix_timer_t s_alarm_timer; /* synchronous alarm timer */
   reg_t *s_stack_guard;                /* stack guard word for kernel tasks */
 
   int s_nr_io_range;           /* allowed I/O ports */
index a26f9cb5648a3e1f95722852572ba18cb94a4145..6ebe443b456ed1be8fbdb72c7c0d8ef3575168d8 100644 (file)
 
 /* Struct declarations. */
 struct proc;
-struct timer;
 
 /* clock.c */
 clock_t get_realtime(void);
 void set_realtime(clock_t);
 void set_adjtime_delta(int32_t);
 clock_t get_monotonic(void);
-void set_timer(struct timer *tp, clock_t t, tmr_func_t f);
-void reset_timer(struct timer *tp);
+void set_kernel_timer(minix_timer_t *tp, clock_t t, tmr_func_t f);
+void reset_kernel_timer(minix_timer_t *tp);
 void ser_dump_proc(void);
 
 void cycles_accounting_init(void);
@@ -45,7 +44,7 @@ void fpu_sigcontext(struct proc *, struct sigframe *fr, struct
 #endif
 void kmain(kinfo_t *cbi);
 void prepare_shutdown(int how);
-__dead void minix_shutdown(struct timer *tp);
+__dead void minix_shutdown(minix_timer_t *tp);
 void bsp_finish_booting(void);
 
 /* proc.c */
index f2f8fd8c9acc9551d53b2632e4472fb993f95bff..5a9abf9a5108a4d21888aaf954bf683aa1d2e5c5 100644 (file)
@@ -48,7 +48,7 @@ int do_clear(struct proc * caller, message * m_ptr)
   clear_endpoint(rc);
 
   /* Turn off any alarm timers at the clock. */   
-  reset_timer(&priv(rc)->s_alarm_timer);
+  reset_kernel_timer(&priv(rc)->s_alarm_timer);
 
   /* Make sure that the exiting process is no longer scheduled,
    * and mark slot as FREE. Also mark saved fpu contents as not significant.
index 10cae1c4bc5f380842519ad755ea9d2e08684f97..2d3cb15b56427b8eb983469be205ece8e200f8ad 100644 (file)
@@ -113,7 +113,7 @@ int do_privctl(struct proc * caller, message * m_ptr)
              priv(rp)->s_notify_pending.chunk[i] = 0;  /* - notifications */
        priv(rp)->s_int_pending = 0;                    /* - interrupts */
        (void) sigemptyset(&priv(rp)->s_sig_pending);   /* - signals */
-       reset_timer(&priv(rp)->s_alarm_timer);          /* - alarm */
+       reset_kernel_timer(&priv(rp)->s_alarm_timer);   /* - alarm */
        priv(rp)->s_asyntab= -1;                        /* - asynsends */
        priv(rp)->s_asynsize= 0;
 
index bcfde2fdaa4f754aeb25b2fa1e6b47e64ca26334..fe065ccbc532cda82bfab408b757be7080c876b4 100644 (file)
@@ -14,7 +14,7 @@
 
 #if USE_SETALARM
 
-static void cause_alarm(timer_t *tp);
+static void cause_alarm(minix_timer_t *tp);
 
 /*===========================================================================*
  *                             do_setalarm                                  *
@@ -24,7 +24,7 @@ int do_setalarm(struct proc * caller, message * m_ptr)
 /* A process requests a synchronous alarm, or wants to cancel its alarm. */
   long exp_time;               /* expiration time for this alarm */
   int use_abs_time;            /* use absolute or relative time */
-  timer_t *tp;                 /* the process' timer structure */
+  minix_timer_t *tp;                   /* the process' timer structure */
   clock_t uptime;              /* placeholder for current uptime */
 
   /* Extract shared parameters from the request message. */
@@ -47,10 +47,10 @@ int do_setalarm(struct proc * caller, message * m_ptr)
 
   /* Finally, (re)set the timer depending on the expiration time. */
   if (exp_time == 0) {
-      reset_timer(tp);
+      reset_kernel_timer(tp);
   } else {
       tp->tmr_exp_time = (use_abs_time) ? exp_time : exp_time + get_monotonic();
-      set_timer(tp, tp->tmr_exp_time, tp->tmr_func);
+      set_kernel_timer(tp, tp->tmr_exp_time, tp->tmr_func);
   }
   return(OK);
 }
@@ -58,7 +58,7 @@ int do_setalarm(struct proc * caller, message * m_ptr)
 /*===========================================================================*
  *                             cause_alarm                                  *
  *===========================================================================*/
-static void cause_alarm(timer_t *tp)
+static void cause_alarm(minix_timer_t *tp)
 {
 /* Routine called if a timer goes off and the process requested a synchronous
  * alarm. The process number is stored in timer argument 'ta_int'. Notify that
index ce012267038664f9fe89aa7838a88a4cc99a682e..ee72d38c50cf4a145b30702f9033ebe029e9d712 100644 (file)
@@ -1,7 +1,7 @@
 #include "syslib.h"
 #include <assert.h>
 #include <machine/archtypes.h>
-#include <timers.h>
+#include <minix/timers.h>
 
 #include "kernel/config.h"
 #include "kernel/const.h"
index c47a2cf65eba1b692400183b4c2462f1639da187..1f5d50b93088d5a30074f75581d647cf981cce94 100644 (file)
@@ -1,5 +1,5 @@
 #include "sysutil.h"
-#include <timers.h>
+#include <minix/timers.h>
 
 /*===========================================================================*
  *                               tickdelay                                  *
index 7cf67b920d9b7bd116d986f0c9b0656986c1cdc7..178286fba81449dce54a852e8e9d2c0306da6954 100644 (file)
  */
 
 #include "syslib.h"
-#include <timers.h>
+#include <minix/timers.h>
 #include <minix/sysutil.h>
 
-static timer_t *timers = NULL;
+static minix_timer_t *timers = NULL;
 static int expiring = 0;
 
 /*===========================================================================*
  *                              init_timer                                   *
  *===========================================================================*/
-void init_timer(timer_t *tp)
+void init_timer(minix_timer_t *tp)
 {
         tmr_inittimer(tp);
 }
@@ -29,7 +29,7 @@ void init_timer(timer_t *tp)
 /*===========================================================================*
  *                              set_timer                                    *
  *===========================================================================*/
-void set_timer(timer_t *tp, int ticks, tmr_func_t watchdog, int arg)
+void set_timer(minix_timer_t *tp, int ticks, tmr_func_t watchdog, int arg)
 {
         int r;
         clock_t now, prev_time = 0, next_time;
@@ -51,7 +51,7 @@ void set_timer(timer_t *tp, int ticks, tmr_func_t watchdog, int arg)
 /*===========================================================================*
  *                              cancel_timer                                 *
  *===========================================================================*/
-void cancel_timer(timer_t *tp)
+void cancel_timer(minix_timer_t *tp)
 {
         clock_t next_time, prev_time;
         prev_time = tmrs_clrtimer(&timers, tp, &next_time);
index 78a8833a47705806c436993badabff75ae8ecbdf..794c0124d89e42ef31eb35080bb0791d5072d67c 100644 (file)
@@ -1,6 +1,6 @@
 /* This library provides generic watchdog timer management functionality.
- * See the comments in <timers.h> for details.
+ * See the comments in <minix/timers.h> for details.
  */
 
-#include <timers.h>            /* definitions and function prototypes */
+#include <minix/timers.h>              /* definitions and function prototypes */
 #include <sys/null.h>
index 5b97570b3f614156992fef23e5cd032cee5b290e..2d0b0f6a7a6f5854d811a2cf6888847dc40bb113 100644 (file)
@@ -4,13 +4,13 @@
  *                             tmrs_clrtimer                                *
  *===========================================================================*/
 clock_t tmrs_clrtimer(tmrs, tp, next_time)
-timer_t **tmrs;                                /* pointer to timers queue */
-timer_t *tp;                           /* timer to be removed */
+minix_timer_t **tmrs;                          /* pointer to timers queue */
+minix_timer_t *tp;                             /* timer to be removed */
 clock_t *next_time;
 {
 /* Deactivate a timer and remove it from the timers queue. 
  */
-  timer_t **atp;
+  minix_timer_t **atp;
   clock_t prev_time;
 
   if(*tmrs)
index 6ad353cc1f3e4d1feba0cb588df635f49f040f14..d54ca839f00549039f81606854fff44e032b99fd 100644 (file)
@@ -4,7 +4,7 @@
  *                             tmrs_exptimers                               *
  *===========================================================================*/
 void tmrs_exptimers(tmrs, now, new_head)
-timer_t **tmrs;                                /* pointer to timers queue */
+minix_timer_t **tmrs;                          /* pointer to timers queue */
 clock_t now;                           /* current time */
 clock_t *new_head;
 {
@@ -12,7 +12,7 @@ clock_t *new_head;
  * Run the watchdog functions for all expired timers and deactivate them.
  * The caller is responsible for scheduling a new alarm if needed.
  */
-  timer_t *tp;
+  minix_timer_t *tp;
 
   while ((tp = *tmrs) != NULL && tp->tmr_exp_time <= now) {
        *tmrs = tp->tmr_next;
index 71e56a9f59cc9c14d726789a766a593b19f68b62..6d1cf709c67c988ace2a3484e4bbbad213fdfa4a 100644 (file)
@@ -4,8 +4,8 @@
  *                             tmrs_settimer                                *
  *===========================================================================*/
 clock_t tmrs_settimer(tmrs, tp, exp_time, watchdog, new_head)
-timer_t **tmrs;                                /* pointer to timers queue */
-timer_t *tp;                           /* the timer to be added */
+minix_timer_t **tmrs;                          /* pointer to timers queue */
+minix_timer_t *tp;                             /* the timer to be added */
 clock_t exp_time;                      /* its expiration time */
 tmr_func_t watchdog;                   /* watchdog function to be run */
 clock_t *new_head;                     /* new earliest timer, if non NULL */
@@ -15,7 +15,7 @@ clock_t *new_head;                    /* new earliest timer, if non NULL */
  * in the list of active timers with the first to expire in front.
  * The caller responsible for scheduling a new alarm for the timer if needed. 
  */
-  timer_t **atp;
+  minix_timer_t **atp;
   clock_t old_head = 0;
 
   if(*tmrs)
index e7f0024e5b6b7a8af46057d769426de35b7b6f89..961e7f769b78abf1d9cefdd3c90a20c2714466d7 100755 (executable)
@@ -9,7 +9,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <lib.h>
-#include <timers.h>
+#include <minix/timers.h>
 
 #include <minix/callnr.h>
 #include <minix/type.h>
index df8cd6282cd0c562b675b962a005279f243b4fef..dff8d7c69392e72040d4e57b32e078bef1192f68 100644 (file)
@@ -10,7 +10,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <lib.h>
-#include <timers.h>
+#include <minix/timers.h>
 
 #include <minix/callnr.h>
 #include <minix/type.h>
index 78521cdc1c8e5f6912ce07b1700e34560eb8c570..91477ff9fd55eb21b7e1f11cca70ff950b8be36a 100644 (file)
@@ -7,7 +7,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <lib.h>
-#include <timers.h>
+#include <minix/timers.h>
 
 #include <minix/callnr.h>
 #include <minix/type.h>
index 7c1b37b45c828bfee9c03dbc1108e5bd3102e8e2..fa51929dbf3ebe3182779d8765fc62665bc4c12c 100644 (file)
@@ -16,10 +16,10 @@ int clck_call_expire;
 
 static clock_t curr_time;
 static clock_t prev_time;
-static timer_t *timer_chain;
+static minix_timer_t *timer_chain;
 static time_t next_timeout;
 
-static void clck_fast_release(timer_t *timer);
+static void clck_fast_release(minix_timer_t *timer);
 static void set_timer(void);
 
 void clck_init()
@@ -66,12 +66,12 @@ void reset_time()
 }
 
 void clck_timer(timer, timeout, func, fd)
-timer_t *timer;
+minix_timer_t *timer;
 time_t timeout;
 timer_func_t func;
 int fd;
 {
-       timer_t *timer_index;
+       minix_timer_t *timer_index;
 
        if (timer->tim_active)
                clck_fast_release(timer);
@@ -111,9 +111,9 @@ message *mess;
 }
 
 static void clck_fast_release (timer)
-timer_t *timer;
+minix_timer_t *timer;
 {
-       timer_t *timer_index;
+       minix_timer_t *timer_index;
 
        if (!timer->tim_active)
                return;
@@ -158,7 +158,7 @@ static void set_timer()
 }
 
 void clck_untimer (timer)
-timer_t *timer;
+minix_timer_t *timer;
 {
        clck_fast_release (timer);
        set_timer();
@@ -167,7 +167,7 @@ timer_t *timer;
 void clck_expire_timers()
 {
        time_t now;
-       timer_t *timer_index;
+       minix_timer_t *timer_index;
 
        clck_call_expire= 0;
 
index 2b68997ed70bd896c0387e26c9641b6a05c10ce3..6fe6ad4a832fe4a0cabe9b4a393859778bd478e4 100644 (file)
@@ -77,7 +77,7 @@ typedef struct arp_port
 
        struct arp_req
        {
-               timer_t ar_timer;
+               minix_timer_t ar_timer;
                int ar_entry;
                int ar_req_count;
        } ap_req[AP_REQ_NR];
@@ -139,7 +139,7 @@ static acc_t *arp_getdata ARGS(( int fd, size_t offset,
 static int arp_putdata ARGS(( int fd, size_t offset,
        acc_t *data, int for_ioctl ));
 static void arp_main ARGS(( arp_port_t *arp_port ));
-static void arp_timeout ARGS(( int ref, timer_t *timer ));
+static void arp_timeout ARGS(( int ref, minix_timer_t *timer ));
 static void setup_write ARGS(( arp_port_t *arp_port ));
 static void setup_read ARGS(( arp_port_t *arp_port ));
 static void do_reclist ARGS(( event_t *ev, ev_arg_t ev_arg ));
@@ -1193,7 +1193,7 @@ put_userdata_t put_userdata;
 
 static void arp_timeout (ref, timer)
 int ref;
-timer_t *timer;
+minix_timer_t *timer;
 {
        int i, port, reqind, acind;
        arp_port_t *arp_port;
index a0f69a0a5ad19d8f4611c597a8a0621442ae6003..61d4232edb7890c6bb88c9ee73dc29bdb6d02298 100644 (file)
@@ -7,18 +7,18 @@ Copyright 1995 Philip Homburg
 #ifndef CLOCK_H
 #define CLOCK_H
 
-struct timer;
+struct minix_timer;
 
-typedef void (*timer_func_t) ARGS(( int fd, struct timer *timer ));
+typedef void (*timer_func_t) ARGS(( int fd, struct minix_timer *timer ));
 
-typedef struct timer
+typedef struct minix_timer
 {
-       struct timer *tim_next;
+       struct minix_timer *tim_next;
        timer_func_t tim_func;
        int tim_ref;
        time_t tim_time;
        int tim_active;
-} timer_t;
+} minix_timer_t;
 
 extern int clck_call_expire;   /* Call clck_expire_timer from the mainloop */
 
@@ -27,9 +27,9 @@ void set_time ARGS(( clock_t time ));
 time_t get_time ARGS(( void ));
 void reset_time ARGS(( void ));
 /* set a timer to go off at the time specified by timeout */
-void clck_timer ARGS(( struct timer *timer, time_t timeout, timer_func_t func,
+void clck_timer ARGS(( minix_timer_t *timer, time_t timeout, timer_func_t func,
                                                                int fd ));
-void clck_untimer ARGS(( struct timer *timer ));
+void clck_untimer ARGS(( minix_timer_t *timer ));
 void clck_expire_timers ARGS(( void ));
 
 #endif /* CLOCK_H */
index 58cf174a2830560f15bf01d80661dc56634adf5d..b20e74f24030cfa292e8fdf2a8a4dc711228f54d 100644 (file)
@@ -160,7 +160,7 @@ typedef struct tcp_conn
        u16_t tc_mtu;           /* discovered PMTU */
        clock_t tc_mtutim;      /* Last time MTU/TCF_PMTU flag was changed */
 
-       struct timer tc_transmit_timer;
+       minix_timer_t tc_transmit_timer;
        u32_t tc_transmit_seq;
        clock_t tc_0wnd_to;
        clock_t tc_stt;         /* time of first send after last ack */
index d437d57a57b29cfa30a8b72e6a03ab26a185c08c..044641b4baba6fcd25181f0c4720731530e2ea8a 100644 (file)
@@ -20,7 +20,7 @@ Copyright 1995 Philip Homburg
 THIS_FILE
 
 static acc_t *make_pack ARGS(( tcp_conn_t *tcp_conn ));
-static void tcp_send_timeout ARGS(( int conn, struct timer *timer ));
+static void tcp_send_timeout ARGS(( int conn, minix_timer_t *timer ));
 static void do_snd_event ARGS(( event_t *ev, ev_arg_t arg ));
 
 void tcp_conn_write (tcp_conn, enq)
@@ -812,7 +812,7 @@ tcp_send_timeout
 
 static void tcp_send_timeout(conn, timer)
 int conn;
-struct timer *timer;
+minix_timer_t *timer;
 {
        tcp_conn_t *tcp_conn;
        u16_t mss, mss2;
index e8ed5b6f12e086127437be3eb8053ee1927ca4de..6c6a318b226896f59f4be663ab28e80c5d77a285 100644 (file)
@@ -1,7 +1,7 @@
 /* Debugging dump procedures for the kernel. */
 
 #include "inc.h"
-#include <timers.h>
+#include <minix/timers.h>
 #include <assert.h>
 #include <machine/interrupt.h>
 #include <minix/endpoint.h>
index 7dfe1d3d35d88fa1ff84cfcf6954cd976a89901e..c1d724d2399547bf9bb7a89c78808a731558de62 100644 (file)
@@ -9,7 +9,7 @@
 
 #include "inc.h"
 #include "../pm/mproc.h"
-#include <timers.h> 
+#include <minix/timers.h>
 #include <minix/config.h> 
 #include <minix/type.h> 
 
index be6652834da55a22360db10cd5ba61af286980fa..f71145d712ce144f80f5f784dddba711647a4946 100644 (file)
@@ -8,7 +8,7 @@
  */
 
 #include "inc.h"
-#include <timers.h>
+#include <minix/timers.h>
 #include <minix/rs.h>
 #include "kernel/priv.h"
 #include "../rs/const.h"
index 70c14c1b17e0465e9b4ee6ba190db2d4f22afcc7..c944599357160bf2a5fb417a0a40c4a97f916cb8 100644 (file)
@@ -3,7 +3,7 @@
 #include "inc.h"
 #include <sys/mman.h>
 #include <minix/vm.h>
-#include <timers.h>
+#include <minix/timers.h>
 #include "kernel/proc.h"
 
 #define LINES 24
index c7f75a85d7501d88e8a7f45b6a3a121d7eaffa8c..00bee12aeecef109d670029dbc0c3cce599f77e0 100644 (file)
@@ -1,5 +1,5 @@
 #include <unistd.h>
-#include <timers.h>
+#include <minix/timers.h>
 #include <sys/svrctl.h>
 #include <minix/ds.h>
 #include <minix/endpoint.h>
@@ -25,7 +25,7 @@
 
 endpoint_t lwip_ep;
 
-static timer_t tcp_ftmr, tcp_stmr, arp_tmr;
+static minix_timer_t tcp_ftmr, tcp_stmr, arp_tmr;
 static int arp_ticks, tcp_fticks, tcp_sticks;
 
 static struct netif * netif_lo;
@@ -38,19 +38,19 @@ static void sys_init(void)
 {
 }
 
-static void arp_watchdog(__unused timer_t *tp)
+static void arp_watchdog(__unused minix_timer_t *tp)
 {
        etharp_tmr();
        set_timer(&arp_tmr, arp_ticks, arp_watchdog, 0);
 }
 
-static void tcp_fwatchdog(__unused timer_t *tp)
+static void tcp_fwatchdog(__unused minix_timer_t *tp)
 {
        tcp_fasttmr();
        set_timer(&tcp_ftmr, tcp_fticks, tcp_fwatchdog, 0);
 }
 
-static void tcp_swatchdog(__unused timer_t *tp)
+static void tcp_swatchdog(__unused minix_timer_t *tp)
 {
        tcp_slowtmr();
        set_timer(&tcp_ftmr, tcp_sticks, tcp_swatchdog, 0);
index 177304401708e52a71f2baa2e5ef7ea5d079025e..b7fb28935b6a743abf312f904b831226ea81f652 100644 (file)
@@ -26,7 +26,7 @@ static void getset_vtimer(struct mproc *mp, int nwhich, struct
        itimerval *value, struct itimerval *ovalue);
 static void get_realtimer(struct mproc *mp, struct itimerval *value);
 static void set_realtimer(struct mproc *mp, struct itimerval *value);
-static void cause_sigalrm(struct timer *tp);
+static void cause_sigalrm(minix_timer_t *tp);
 
 /*===========================================================================*
  *                             ticks_from_timeval                           * 
@@ -345,7 +345,7 @@ clock_t ticks;                      /* how many ticks delay before the signal */
  *                             cause_sigalrm                                * 
  *===========================================================================*/
 static void cause_sigalrm(tp)
-struct timer *tp;
+minix_timer_t *tp;
 {
   int proc_nr_n;
   register struct mproc *rmp;
index 80afb4eba537215becf74039c9d69367422e5c48..62a7c66b2a8418908d6f75cc667a17242c9d9fb8 100644 (file)
@@ -5,7 +5,7 @@
  * of corresponding slots referring to the same process in all three.
  */
 #include <limits.h>
-#include <timers.h>
+#include <minix/timers.h>
 #include <signal.h>
 
 #include <sys/cdefs.h>
@@ -50,7 +50,7 @@ EXTERN struct mproc {
   char mp_padding[60];         /* align structure with new libc */
 #endif
   vir_bytes mp_sigreturn;      /* address of C library __sigreturn function */
-  struct timer mp_timer;       /* watchdog timer for alarm(2), setitimer(2) */
+  minix_timer_t mp_timer;      /* watchdog timer for alarm(2), setitimer(2) */
   clock_t mp_interval[NR_ITIMERS];     /* setitimer(2) repetition intervals */
 
   unsigned mp_flags;           /* flag bits */
index 6ee81edf6fde7f403c47e1b8298bce097d518aed..9789a9cd675d5cdfb75b01d8630bef032c721fe1 100644 (file)
@@ -5,7 +5,7 @@ struct stat;
 struct mem_map;
 struct memory;
 
-#include <timers.h>
+#include <minix/timers.h>
 
 /* alarm.c */
 int do_alarm(void);
index a35c89fb1ee7c528ee1284856655fa398dc6c4b7..976d6ab887339c9401407f2b4ce66ccfb35df1bd 100644 (file)
@@ -11,7 +11,7 @@
 #include "mproc.h"
 
 #include <machine/archtypes.h>
-#include <timers.h>
+#include <minix/timers.h>
 #include "kernel/proc.h"
 
 /*===========================================================================*
index 0ebe296e19b588f81d8fe12afea60121f5c1f677..b41da95260d0bc680f12bbfeda06bd2ebac859eb 100644 (file)
@@ -22,7 +22,7 @@
 #include "param.h"
 
 #include <minix/config.h>
-#include <timers.h>
+#include <minix/timers.h>
 #include <string.h>
 #include <machine/archtypes.h>
 #include "kernel/const.h"
index 342694a605e31221a7c8a4552aaf8406e1214437..da784d16f75d6660dae817121108220a2b4edd6c 100644 (file)
@@ -14,7 +14,7 @@
 #include <assert.h>
 #include <fcntl.h>
 #include <lib.h>
-#include <timers.h>
+#include <minix/timers.h>
 #include <dirent.h>
 
 #include <minix/callnr.h>
index ecc518df4d3a536bd75929c19fadbf21cc719686..676b2aa8002a0bc96a293052aaca167e1c0467c5 100644 (file)
@@ -38,7 +38,7 @@
 #include <minix/priv.h>
 
 #include <machine/archtypes.h>
-#include <timers.h>                            /* For priv.h */
+#include <minix/timers.h>                              /* For priv.h */
 #include "kernel/priv.h"
 #include "kernel/ipc.h"
 
index 0e128733104b660c55e6b19bff612cc0d6dacb14..a4262e2474feaf39b2cbb7aa16cc223fa241f9c0 100644 (file)
@@ -1,7 +1,7 @@
 /* Function prototypes. */
 
 struct schedproc;
-#include <timers.h>
+#include <minix/timers.h>
 
 /* main.c */
 int main(void);
index 65fd5523cd0d1426d6ef2fc915facf756d77dc7b..1a01436a376b4b6f69211cce6396bec552b24c9c 100644 (file)
 #include <machine/archtypes.h>
 #include "kernel/proc.h" /* for queue constants */
 
-static timer_t sched_timer;
+static minix_timer_t sched_timer;
 static unsigned balance_timeout;
 
 #define BALANCE_TIMEOUT        5 /* how often to balance queues in seconds */
 
 static int schedule_process(struct schedproc * rmp, unsigned flags);
-static void balance_queues(struct timer *tp);
+static void balance_queues(minix_timer_t *tp);
 
 #define SCHEDULE_CHANGE_PRIO   0x1
 #define SCHEDULE_CHANGE_QUANTUM        0x2
@@ -348,7 +348,7 @@ void init_scheduling(void)
  * quantum. This function will find all proccesses that have been bumped down,
  * and pulls them back up. This default policy will soon be changed.
  */
-static void balance_queues(struct timer *tp)
+static void balance_queues(minix_timer_t *tp)
 {
        struct schedproc *rmp;
        int proc_nr;
index 8da3eef1ebc1e1dfc9eeee7ca2881527a94f8e38..0197dc22e61edac9ca2e2ad0b39132fe264ad997 100644 (file)
@@ -3,11 +3,12 @@
 
 /* Function prototypes. */
 
-#include "timers.h"
+#include <minix/rs.h>
+#include <minix/timers.h>
+
 #include "request.h"
-#include "tll.h"
 #include "threads.h"
-#include <minix/rs.h>
+#include "tll.h"
 
 /* Structs used in prototypes must be declared as such first. */
 struct filp;
@@ -357,7 +358,7 @@ void select_callback(struct filp *, int ops);
 void select_forget(void);
 void select_reply1(endpoint_t driver_e, int minor, int status);
 void select_reply2(endpoint_t driver_e, int minor, int status);
-void select_timeout_check(timer_t *);
+void select_timeout_check(minix_timer_t *);
 void select_unsuspend_by_endpt(endpoint_t proc);
 
 /* worker.c */
index e831afc28f7a698af555694f1e8f8b5a659f0b04..975166b379114251a817472639e5be1c629dab45 100644 (file)
@@ -45,7 +45,7 @@ static struct selectentry {
   char block;
   char starting;
   clock_t expiry;
-  timer_t timer;       /* if expiry > 0 */
+  minix_timer_t timer; /* if expiry > 0 */
 } selecttab[MAXSELECTS];
 
 static int copy_fdsets(struct selectentry *se, int nfds, int direction);
@@ -704,7 +704,7 @@ void select_forget(void)
 /*===========================================================================*
  *                             select_timeout_check                         *
  *===========================================================================*/
-void select_timeout_check(timer_t *timer)
+void select_timeout_check(minix_timer_t *timer)
 {
 /* An alarm has gone off for one of the select queries. This function MUST NOT
  * block its calling thread.
index 995a99e6d5560122a19e249a9030b70b642b603f..869bfc8a9fd532516017805445c75ea16ccbee58 100644 (file)
@@ -10,7 +10,7 @@ struct phys_region;
 #include <minix/endpoint.h>
 #include <minix/safecopies.h>
 #include <minix/vm.h>
-#include <timers.h>
+#include <minix/timers.h>
 #include <stdio.h>
 
 #include "pt.h"
index d76b6a0499d2798487caffb0f69879bdbaf28a97..13ca1bac40a8f846aa555f1f7aa44246bffbc74b 100644 (file)
 #define        _BSD_SSIZE_T_           int             /* byte count or error */
 #define        _BSD_TIME_T_            int             /* time() */
 #define        _BSD_CLOCKID_T_         int             /* clockid_t */
-#if !defined(__minix)
-/* Conflict with minix timer_t struct. */
 #define        _BSD_TIMER_T_           int             /* timer_t */
-#endif /* !defined(__minix) */
 #define        _BSD_SUSECONDS_T_       int             /* suseconds_t */
 #define        _BSD_USECONDS_T_        unsigned int    /* useconds_t */
 #define        _BSD_WCHAR_T_           int             /* wchar_t */
index 4f5e2ecc815ccf0dc8c740727124b8d75abeb282..a7fe07d427ed41ffd62a8994046d3d67134afdb2 100644 (file)
@@ -31,7 +31,6 @@
  *     @(#)ansi.h      8.2 (Berkeley) 1/4/94
  */
 
-/* These types are Minix specific. */
 
 #ifndef        _I386_ANSI_H_
 #define        _I386_ANSI_H_
 #define        _BSD_SSIZE_T_           int             /* byte count or error */
 #define        _BSD_TIME_T_            int             /* time() */
 #define        _BSD_CLOCKID_T_         int             /* clockid_t */
-#if !defined(__minix)
-/* Conflict with minix timer_t struct. */
 #define        _BSD_TIMER_T_           int             /* timer_t */
-#endif /* !defined(__minix) */
 #define        _BSD_SUSECONDS_T_       int             /* suseconds_t */
 #define        _BSD_USECONDS_T_        unsigned int    /* useconds_t */
 #define        _BSD_WCHAR_T_           int             /* wchar_t */
index bfb2a89bcd31d1e1008fcd414521f942fb95f962..ff688bc07e8e57ddd9c2f12c2ca8f7a566a11e58 100644 (file)
@@ -281,10 +281,8 @@ int        getitimer(int, struct itimerval *) __RENAME(__getitimer50);
 int    gettimeofday(struct timeval * __restrict, void *__restrict);
 int    setitimer(int, const struct itimerval * __restrict,
            struct itimerval * __restrict) __RENAME(__setitimer50);
-#endif /* _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE || _NETBSD_SOURCE */
-#if defined(_XOPEN_SOURCE) || defined(_NETBSD_SOURCE)
 int    utimes(const char *, const struct timeval [2]) __RENAME(__utimes50);
-#endif /* _XOPEN_SOURCE || _NETBSD_SOURCE */
+#endif /* _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE || _NETBSD_SOURCE */
 
 #if defined(_NETBSD_SOURCE) || defined(HAVE_NBTOOL_CONFIG_H)
 int    adjtime(const struct timeval *, struct timeval *) __RENAME(__adjtime50);
index a62c541d00f084b50ab809c785e3b4884bf98211..4b0abc350f3e72c9ab27cdd3445e1e970476eb8d 100644 (file)
@@ -324,13 +324,10 @@ typedef   _BSD_CLOCKID_T_         clockid_t;
 #undef _BSD_CLOCKID_T_
 #endif
 
-#ifndef __minix
-/* LSC: timer_t is defined as a struct on minix. */
 #ifdef _BSD_TIMER_T_
 typedef        _BSD_TIMER_T_           timer_t;
 #undef _BSD_TIMER_T_
 #endif
-#endif
 
 #ifdef _BSD_SUSECONDS_T_
 typedef        _BSD_SUSECONDS_T_       suseconds_t;
index b82c691579c7b3c0a7a967a114ebd7fb4a285b05..a6e5654e532906b3cce0a7026beac6d9f8e19ab1 100644 (file)
@@ -6,7 +6,7 @@
 #include <unistd.h>
 #include <pwd.h>
 #include <curses.h>
-#include <timers.h>
+#include <minix/timers.h>
 #include <stdlib.h>
 #include <limits.h>
 #include <termcap.h>