76 |
|
static int rholo(void); |
77 |
|
static void setdefaults(HDGRID *gp); |
78 |
|
static void creatholo(HDGRID *gp); |
79 |
< |
static int headline(char *s); |
79 |
> |
static gethfunc headline; |
80 |
|
static void loadholo(void); |
81 |
|
static void rootname(char *rn, char *fn); |
82 |
|
static void badvalue(int vc); |
320 |
|
static int |
321 |
|
rholo(void) /* holodeck main loop */ |
322 |
|
{ |
323 |
< |
static long nextfragwarn = 100*(1L<<20); |
323 |
> |
static long nextfragwarn = 100L<<20; |
324 |
|
static int idle = 0; |
325 |
|
PACKET *pl = NULL, *plend; |
326 |
|
off_t fsiz; |
344 |
|
return(1); /* comes back */ |
345 |
|
} |
346 |
|
#if FRAGWARN |
347 |
< |
if (fsiz >= nextfragwarn && |
348 |
< |
(fsiz-hdfiluse(hdlist[0]->fd,0))/(fsiz/100) > FRAGWARN) { |
349 |
< |
sprintf(errmsg, "holodeck file fragmentation is %.0f%%", |
350 |
< |
100.*(fsiz-hdfiluse(hdlist[0]->fd,1))/fsiz); |
351 |
< |
error(WARNING, errmsg); |
352 |
< |
nextfragwarn = fsiz + (fsiz>>2); /* decent interval */ |
347 |
> |
if (fsiz >= nextfragwarn) { |
348 |
> |
double pctfrag = 100.*(fsiz-hdfiluse(hdlist[0]->fd))/fsiz; |
349 |
> |
if (pctfrag >= (double)FRAGWARN) { |
350 |
> |
sprintf(errmsg, "holodeck file fragmentation is %.0f%%", |
351 |
> |
pctfrag); |
352 |
> |
error(WARNING, errmsg); |
353 |
> |
nextfragwarn = fsiz + (fsiz>>2); |
354 |
> |
} else |
355 |
> |
nextfragwarn = fsiz + (10L<<20); |
356 |
|
} |
357 |
|
#endif |
358 |
|
t = time(NULL); /* check time */ |
491 |
|
|
492 |
|
static int |
493 |
|
headline( /* process information header line */ |
494 |
< |
char *s |
494 |
> |
char *s, |
495 |
> |
void *p |
496 |
|
) |
497 |
|
{ |
498 |
|
extern char FMTSTR[]; |
662 |
|
if ((ncprocs > 0) & (force >= 0) && vdef(REPORT)) { |
663 |
|
off_t fsiz, fuse; |
664 |
|
fsiz = hdfilen(hdlist[0]->fd); |
665 |
< |
fuse = hdfiluse(hdlist[0]->fd, 1); |
665 |
> |
fuse = hdfiluse(hdlist[0]->fd); |
666 |
|
fprintf(stderr, |
667 |
|
"%s: %.1f Mbyte holodeck file, %.1f%% fragmentation\n", |
668 |
|
hdkfile, fsiz/(1024.*1024.), |