|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T c
Length: 1657 (0x679)
Types: TextFile
Names: »clock.c«
└─⟦db229ac7e⟧ Bits:30007240 EUUGD20: SSBA 1.2 / AFW Benchmarks
└─⟦this⟧ »EUUGD20/AFUU-ssba1.21/ssba1.21E/musbus/clock.c«
└─⟦this⟧ »EUUGD20/AFUU-ssba1.21/ssba1.21F/musbus/clock.c«
/*
* clock -- check alarm signal accuracy
*
* $Header: clock.c,v 5.2 87/12/09 14:42:34 kenj Exp $
*/
#include <stdio.h>
#include "musbus.h"
#include <sys/types.h>
#ifdef BSD4v1
#include <sys/timeb.h>
#endif
#ifdef BSD4v2
#include <sys/time.h>
#endif
#ifdef SysV
#include <sys/times.h>
long times();
#ifdef interdata
#define HZ tbuffer.tms_cfreq
#endif
#endif
#define GRANULE 5
#define NUM_ALRM 12
main(argc, argv)
int argc;
char *argv[];
{
int onalarm();
register int i = 0;
int expected;
float wallclock;
long then;
#ifdef SysV
struct tms tbuffer;
#endif
#ifdef BSD4v1
struct timeb tbuf;
int msec;
#endif
#ifdef BSD4v2
struct timeval tval;
struct timezone tzone;
long usec;
#endif
#ifdef SysV
then = times(&tbuffer);
#else
#ifdef BSD4v1
ftime(&tbuf);
then = tbuf.time;
msec = tbuf.millitm;
#else
#ifdef BSD4v2
gettimeofday(&tval, &tzone);
then = tval.tv_sec;
usec = tval.tv_usec;
#else
What sort of Unix system is this?
#endif
#endif
#endif
while (i++ < NUM_ALRM) {
signal(SIGALRM, onalarm);
alarm(GRANULE);
pause();
}
#ifdef SysV
wallclock = (times(&tbuffer) - then)/HZ;
#endif
#ifdef BSD4v1
ftime(&tbuf);
wallclock = tbuf.time - then + (float)(tbuf.millitm - msec)/1000;
#endif
#ifdef BSD4v2
gettimeofday(&tval, &tzone);
wallclock = tval.tv_sec - then + (float)(tval.tv_usec - usec)/1000000;
#endif
expected = GRANULE * NUM_ALRM;
printf("%d x %d sec delays takes %.2f wallclock secs (erreur %.2f%%)\n",
NUM_ALRM, GRANULE, wallclock, 100.0*(float)(expected-wallclock)/expected);
exit(0);
}
onalarm() { }