--- ray/src/hd/rhinfo.c 2003/10/20 16:01:55 3.8 +++ ray/src/hd/rhinfo.c 2018/10/05 19:19:16 3.14 @@ -1,12 +1,15 @@ #ifndef lint -static const char RCSid[] = "$Id: rhinfo.c,v 3.8 2003/10/20 16:01:55 greg Exp $"; +static const char RCSid[] = "$Id: rhinfo.c,v 3.14 2018/10/05 19:19:16 greg Exp $"; #endif /* * Get general information on holodeck file */ -#include "holo.h" +#include + #include "platform.h" +#include "resolu.h" +#include "holo.h" #ifndef NHBINS #define NHBINS 12 /* number of histogram bins to use for stats */ @@ -16,13 +19,16 @@ char *progname; /* global argv[0] */ long beamtot, samptot; /* total beams and samples */ +static void gethdinfo(char *fname, FILE *fout); +static void psectstats(HOLO *hp, FILE *fp); -main(argc, argv) -int argc; -char *argv[]; -{ - int sect; +int +main( + int argc, + char *argv[] +) +{ progname = argv[0]; if (argc != 2) goto userr; @@ -34,14 +40,16 @@ userr: } -gethdinfo(fname, fout) /* get information on holodeck */ -char *fname; -FILE *fout; +static void +gethdinfo( /* get information on holodeck */ + char *fname, + FILE *fout +) { FILE *fp; HOLO *hdsect; int fd; - int32 nextloc; + off_t nextloc, fsiz; int n; /* open holodeck file */ if ((fp = fopen(fname, "r")) == NULL) { @@ -56,20 +64,20 @@ FILE *fout; fd = dup(fileno(fp)); /* dup file handle */ nextloc = ftell(fp); /* get stdio position */ fclose(fp); /* done with stdio */ - for (n = 0; nextloc > 0L; n++) { /* get the section(s) */ - lseek(fd, (off_t)nextloc, SEEK_SET); + for (n = 0; nextloc > 0; n++) { /* get the section(s) */ + lseek(fd, nextloc, SEEK_SET); read(fd, (char *)&nextloc, sizeof(nextloc)); fprintf(fout, "Section %d:\n", n); hdsect = hdinit(fd, NULL); /* load section directory */ psectstats(hdsect, fout); /* print section statistics */ } - nextloc = hdfilen(fd); /* print global statistics */ + fsiz = hdfilen(fd); /* print global statistics */ fputs("=====================================================\n", fout); fprintf(fout, "Total samples/beams: %ld/%ld (%.2f samples/beam)\n", samptot, beamtot, (double)samptot/beamtot); fprintf(fout, "%.1f Mbyte file, %.1f%% fragmentation\n", - nextloc/(1024.*1024.), - 100.*(nextloc-hdfiluse(fd,1))/nextloc); + fsiz/(1024.*1024.), + 100.*(fsiz-hdfiluse(fd))/fsiz); /* don't bother with cleanup */ #if 0 hddone(NULL); /* free sections */ @@ -78,16 +86,18 @@ FILE *fout; } -psectstats(hp, fp) /* print statistical information for section */ -register HOLO *hp; -FILE *fp; +static void +psectstats( /* print statistical information for section */ + HOLO *hp, + FILE *fp +) { int scount[NHBINS]; int minsamp = 10000, maxsamp = 0; FVECT vt; double sqrtmaxp; int bmin, bmax, cnt; - register int i; + int i; fcross(vt, hp->xv[0], hp->xv[1]); fprintf(fp, "\tWorld volume: %g\n", fabs(DOT(vt,hp->xv[2])));