fis-gtm/sr_unix/change_fhead_timer.c

48 lines
1.4 KiB
C

/****************************************************************
* *
* Copyright 2001 Sanchez Computer Associates, Inc. *
* *
* This source code contains the intellectual property *
* of its copyright holder(s), and is made available *
* under a license. If you do not know the terms of *
* the license, please stop and do not read further. *
* *
****************************************************************/
#include "mdef.h"
#include "cli.h"
#include "iosp.h"
#include "timers.h"
#define ONE_HOUR (10 * 100 * 60 * 60) /* (decisec / millisec) * (decisec / sec) * (sec /min) * (min / hour) */
void change_fhead_timer(char *timer_name, sm_int_ptr_t timer_address, int default_time, bool zero_is_ok)
/* default_time is in milliseconds */
{
uint4 status, value;
error_def(ERR_TIMRBADVAL);
default_time = default_time * TIMER_SCALE;
timer_address[1] = 0;
status = cli_present((char *)timer_name);
if (status == CLI_NEGATED)
timer_address[0] = zero_is_ok ? 0 : default_time;
else if (status == CLI_PRESENT)
{
status = cli_get_time((char *)timer_name, &value);
if (TRUE == status)
{
if ((ONE_HOUR < value) || ((0 == value) && (FALSE == zero_is_ok)))
rts_error(VARLSTCNT(1) ERR_TIMRBADVAL);
else /* the above error is of type GTM-I- */
timer_address[0] = value;
} else
rts_error(VARLSTCNT(1) ERR_TIMRBADVAL);
}
return;
}