]> Zhao Yanbai Git Server - minix.git/commitdiff
Added (fake) readlink().
authorBen Gras <ben@minix3.org>
Fri, 17 Jun 2005 13:47:29 +0000 (13:47 +0000)
committerBen Gras <ben@minix3.org>
Fri, 17 Jun 2005 13:47:29 +0000 (13:47 +0000)
Compile fix for fslib (BITS_PER_BLOCK was renamed to FS_BITS_PER_BLOCK).

Added extra arg to various timer functions.

lib/other/fslib.c
lib/posix/readlink.c
lib/timers/tmrs_clr.c
lib/timers/tmrs_exp.c
lib/timers/tmrs_set.c

index a3572c0643d5681677fbf9feed8b0dc5340fc359..2b11a55b01f910dbf6c0eec84ce93ba446ca6c9c 100755 (executable)
@@ -37,8 +37,8 @@ int block_size;
 {
   int nr_blocks;
 
-  nr_blocks = (int) (nr_bits / BITS_PER_BLOCK(block_size));
-  if (((bit_t) nr_blocks * BITS_PER_BLOCK(block_size)) < nr_bits) ++nr_blocks;
+  nr_blocks = (int) (nr_bits / FS_BITS_PER_BLOCK(block_size));
+  if (((bit_t) nr_blocks * FS_BITS_PER_BLOCK(block_size)) < nr_bits) ++nr_blocks;
   return(nr_blocks);
 }
 
index 819c7eee163a6f5ba3f44a3f54939bff12d7fd6c..be8350d0c41406f236e1ddc5967a58ea2d39fde5 100644 (file)
@@ -2,8 +2,6 @@
 readlink.c
 */
 
-#define readlink _readlink
-
 #include <unistd.h>
 #include <errno.h>
 
index 0a4ff29efe33291e4add64b0101deb55e7c8deda..2113c846cf0900447fe7ca4918968bf14af6700d 100644 (file)
@@ -3,22 +3,38 @@
 /*===========================================================================*
  *                             tmrs_clrtimer                                *
  *===========================================================================*/
-void tmrs_clrtimer(tmrs, tp)
+clock_t tmrs_clrtimer(tmrs, tp, new_head)
 timer_t **tmrs;                                /* pointer to timers queue */
 timer_t *tp;                           /* timer to be removed */
+clock_t *new_head;
 {
 /* Deactivate a timer and remove it from the timers queue. 
  */
   timer_t **atp;
   struct proc *p;
+  clock_t old_head = 0;
+
+  if(*tmrs)
+       old_head = (*tmrs)->tmr_exp_time;
+  else
+       old_head = 0;
 
   tp->tmr_exp_time = TMR_NEVER;
 
   for (atp = tmrs; *atp != NULL; atp = &(*atp)->tmr_next) {
        if (*atp == tp) {
                *atp = tp->tmr_next;
-               return;
+               break;
        }
   }
+
+  if(new_head) {
+       if(*tmrs)
+               *new_head = (*tmrs)->tmr_exp_time;
+       else    
+               *new_head = 0;
+  }
+
+  return old_head;
 }
 
index d265bf8bdf4d7326d10f0939235c989a2ba7a408..6ad353cc1f3e4d1feba0cb588df635f49f040f14 100644 (file)
@@ -3,9 +3,10 @@
 /*===========================================================================*
  *                             tmrs_exptimers                               *
  *===========================================================================*/
-void tmrs_exptimers(tmrs, now)
+void tmrs_exptimers(tmrs, now, new_head)
 timer_t **tmrs;                                /* pointer to timers queue */
 clock_t now;                           /* current time */
+clock_t *new_head;
 {
 /* Use the current time to check the timers queue list for expired timers. 
  * Run the watchdog functions for all expired timers and deactivate them.
@@ -18,6 +19,13 @@ clock_t now;                         /* current time */
        tp->tmr_exp_time = TMR_NEVER;
        (*tp->tmr_func)(tp);
   }
+
+  if(new_head) {
+       if(*tmrs)
+               *new_head = (*tmrs)->tmr_exp_time;
+       else
+               *new_head = 0;
+  }
 }
 
 
index 3c3d1309e39bc52095b7377e66e8e78aa37c2c5a..79785b0bebc5ef00d56184325c8855fb39dc091f 100644 (file)
@@ -3,11 +3,12 @@
 /*===========================================================================*
  *                             tmrs_settimer                                *
  *===========================================================================*/
-void tmrs_settimer(tmrs, tp, exp_time, watchdog)
+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 */
 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 */
 {
 /* Activate a timer to run function 'fp' at time 'exp_time'. If the timer is
  * already in use it is first removed from the timers queue. Then, it is put
@@ -15,10 +16,14 @@ tmr_func_t watchdog;                        /* watchdog function to be run */
  * The caller responsible for scheduling a new alarm for the timer if needed. 
  */
   timer_t **atp;
+  clock_t old_head = 0;
+
+  if(*tmrs)
+       old_head = (*tmrs)->tmr_exp_time;
 
   /* Possibly remove an old timer. Then set the timer's variables. */
   if (tp->tmr_exp_time != TMR_NEVER)
-       (void) tmrs_clrtimer(tmrs,tp);
+       (void) tmrs_clrtimer(tmrs, tp, NULL);
   tp->tmr_exp_time = exp_time;
   tp->tmr_func = watchdog;
 
@@ -28,5 +33,8 @@ tmr_func_t watchdog;                  /* watchdog function to be run */
   }
   tp->tmr_next = *atp;
   *atp = tp;
+  if(new_head)
+       (*new_head) = (*tmrs)->tmr_exp_time;
+  return old_head;
 }