/* util.c */ #include "videoport.h" /* error handling -------------------------------------------------------- */ void error_exit(char *format, ...) { va_list ap; va_start(ap, format); vfprintf( stdout, format, ap ); va_end(ap); fprintf( stdout, "\n" ); exit(2); } void perror_exit(char *format, ...) { va_list ap; va_start(ap, format); vfprintf( stdout, format, ap ); va_end(ap); fprintf( stdout, ": %s\n", strerror(oserror()) ); exit(2); } void error(char *format, ...) { va_list ap; fprintf( stdout, "---- "); va_start(ap, format); vfprintf( stdout, format, ap ); va_end(ap); fprintf( stdout, "\n" ); } void perror2(char *format, ...) { va_list ap; fprintf( stdout, "---- "); va_start(ap, format); vfprintf( stdout, format, ap ); va_end(ap); fprintf( stdout, ": %s\n", strerror(oserror()) ); } /* utility ------------------------------------------------------------ */ diskperformance diskperformance_open(void) { diskperformance me; NC(me = malloc(sizeof(_diskperformance))); me->oldestust = -1; return me; } void diskperformance_close(diskperformance me) { free(me); } extern int videoport_max_VL_buffers_used(videoport me); void diskperformance_datapoint(diskperformance me, off64_t bytescompleted, videoport port) { stamp_t now; dmGetUST((unsigned long long *)(&now)); if (me->oldestust == -1) { me->oldestust = now; me->oldestcompleted = bytescompleted; me->lastreport = now; return; } if (now > me->lastreport + 1000000000LL) { printf("DISK %lfMB/sec (%d fields max)\n", 1.E3 * (bytescompleted-me->oldestcompleted) / (double)(now - me->oldestust), videoport_max_VL_buffers_used(port)); me->lastreport = now; return; } }