Added (fake) readlink().

Compile fix for fslib (BITS_PER_BLOCK was renamed to FS_BITS_PER_BLOCK).

Added extra arg to various timer functions.
This commit is contained in:
Ben Gras 2005-06-17 13:47:29 +00:00
parent ed2a024d47
commit 39c90d6c90
5 changed files with 39 additions and 9 deletions

View file

@ -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);
}

View file

@ -2,8 +2,6 @@
readlink.c
*/
#define readlink _readlink
#include <unistd.h>
#include <errno.h>

View 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;
}

View 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;
}
}

View 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;
}