/*
** Copyright (C) 2000 by Kevin L. Mitchell <klmitch@mit.edu>
**
** This program 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 of the License, or
** (at your option) any later version.
**
** This program 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-1307  USA
**
** @(#)$Id: timer_set_call.c,v 1.1 2000/12/10 05:17:15 klmitch Exp $
*/
#include "timer.h"
#include "timer_int.h"
#include "rcstag.h"

RCSTAG("@(#)$Id: timer_set_call.c,v 1.1 2000/12/10 05:17:15 klmitch Exp $");

_s_ul
_timer_set_call(timer *atimer, timer_val *time)
{
  _s_ul retval;
  timer_val t_time;


  if (!time) { /* get the time if necessary */
    if ((retval = timer_time(&t_time)))
      return retval;

    time = &t_time; /* use the time we just got */
  }

  /* set the next call time */
  atimer->t_call.t_sec = atimer->t_time.t_sec + time->t_sec;
  atimer->t_call.t_nsec = atimer->t_time.t_nsec + time->t_nsec;

  return 0;
}
