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:
		
							parent
							
								
									ed2a024d47
								
							
						
					
					
						commit
						39c90d6c90
					
				@ -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);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -2,8 +2,6 @@
 | 
			
		||||
readlink.c
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#define readlink _readlink
 | 
			
		||||
 | 
			
		||||
#include <unistd.h>
 | 
			
		||||
#include <errno.h>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -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;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -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;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -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;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user