101 lines
3.5 KiB
C
101 lines
3.5 KiB
C
|
|
/************************************************************************/
|
|||
|
|
/* SISCO SOFTWARE MODULE HEADER *****************************************/
|
|||
|
|
/************************************************************************/
|
|||
|
|
/* (c) Copyright Systems Integration Specialists Company, Inc., */
|
|||
|
|
/* 1996-2003 All Rights Reserved */
|
|||
|
|
/* */
|
|||
|
|
/* MODULE NAME : tp4port.c */
|
|||
|
|
/* PRODUCT(S) : Lean-T Stack */
|
|||
|
|
/* */
|
|||
|
|
/* MODULE DESCRIPTION : */
|
|||
|
|
/* Functions for porting to new operating systems. */
|
|||
|
|
/* The purpose of these functions is to cause "tp4_timer_tick" */
|
|||
|
|
/* to be called on 1 second intervals. These functions are */
|
|||
|
|
/* appropriate for MS-DOS or any other single tasking OS. */
|
|||
|
|
/* They may be replaced by any Operating System appropriate code */
|
|||
|
|
/* which causes the same result. */
|
|||
|
|
/* */
|
|||
|
|
/* GLOBAL FUNCTIONS DEFINED IN THIS MODULE : */
|
|||
|
|
/* tp4_init_timer () */
|
|||
|
|
/* tp4_check_timer () */
|
|||
|
|
/* */
|
|||
|
|
/* MODIFICATION LOG : */
|
|||
|
|
/* Date Who Rev Comments */
|
|||
|
|
/* -------- --- ------ ------------------------------------------- */
|
|||
|
|
/* 12/19/03 JRB 04 Use sGetMsTime instead of "time" function to */
|
|||
|
|
/* avoid problems when system time changed. */
|
|||
|
|
/* 09/11/00 JRB 03 Make sure tp4_check_timer called at least */
|
|||
|
|
/* once a second. If NOT, write msg to log. */
|
|||
|
|
/* 08/13/98 JRB 02 Lint cleanup. */
|
|||
|
|
/* 05/27/97 JRB 7.00 MMSEASE 7.0 release. */
|
|||
|
|
/* 07/17/96 JRB 01 Created */
|
|||
|
|
/************************************************************************/
|
|||
|
|
|
|||
|
|
#include "glbtypes.h"
|
|||
|
|
#include "sysincs.h"
|
|||
|
|
#include "tp4api.h" /* User definitions for tp4 */
|
|||
|
|
#include "tp4_log.h"
|
|||
|
|
|
|||
|
|
#ifdef DEBUG_SISCO
|
|||
|
|
SD_CONST static ST_CHAR *SD_CONST thisFileName = __FILE__;
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
static ST_DOUBLE oldtime; /* milliseconds */
|
|||
|
|
static ST_DOUBLE newtime; /* milliseconds */
|
|||
|
|
|
|||
|
|
/************************************************************************/
|
|||
|
|
/* tp4_init_timer */
|
|||
|
|
/************************************************************************/
|
|||
|
|
ST_VOID tp4_init_timer (ST_VOID)
|
|||
|
|
{
|
|||
|
|
oldtime = sGetMsTime ();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/************************************************************************/
|
|||
|
|
/* tp4_check_timer */
|
|||
|
|
/************************************************************************/
|
|||
|
|
ST_VOID tp4_check_timer (ST_VOID)
|
|||
|
|
{
|
|||
|
|
#ifdef DEBUG_SISCO
|
|||
|
|
static ST_BOOLEAN time_problem; /* Timing problem detected. */
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
newtime = sGetMsTime ();
|
|||
|
|
|
|||
|
|
#ifdef DEBUG_SISCO /* Don't check for problem if can't log it. */
|
|||
|
|
/* Check time since last call. */
|
|||
|
|
/* This function should be called at least every second, so time diff */
|
|||
|
|
/* should be < 1000 ms. If difference is > 3000 ms, service loop may */
|
|||
|
|
/* be too slow. */
|
|||
|
|
/* //renxiaobao ͨѶ<CDA8><D1B6>ʱ
|
|||
|
|
//if (newtime - oldtime > 3000.0)
|
|||
|
|
*/ if (newtime - oldtime > 10000.0)
|
|||
|
|
{
|
|||
|
|
TP_LOG_ERR1 ("WARNING: stack not serviced for %.3f seconds.", (newtime-oldtime)/1000.0);
|
|||
|
|
if (!time_problem)
|
|||
|
|
{
|
|||
|
|
/* Log this message only the first time it happens. */
|
|||
|
|
TP_LOGC_ERR0 ("MAY CAUSE UNEXPECTED TIMEOUTS, DISCONNECTS, ABORTS.");
|
|||
|
|
time_problem = SD_TRUE;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
/* Increment "oldtime" by 1000 ms increments as much as possible */
|
|||
|
|
/* without exceeding "newtime". */
|
|||
|
|
/* Call "tp4_timer_tick" once for each increment. */
|
|||
|
|
/*renxiaobao ͨѶ<CDA8><D1B6>ʱ*/
|
|||
|
|
while (oldtime + 5000.0 < newtime)
|
|||
|
|
{
|
|||
|
|
tp4_timer_tick (); /* Call function to process timer tick. */
|
|||
|
|
oldtime += 5000.0;
|
|||
|
|
}
|
|||
|
|
/* //while (oldtime + 1000.0 < newtime)
|
|||
|
|
//{
|
|||
|
|
// tp4_timer_tick (); Call function to process timer tick.
|
|||
|
|
// oldtime += 1000.0;
|
|||
|
|
//}
|
|||
|
|
*/
|
|||
|
|
}
|
|||
|
|
|