Last commit was broken.. It always prints '[CTRL-C to abort]'.

Move duplicate code for printing the status of the dump and checking
for abort into a separate function.

Pointy hat to:	me
This commit is contained in:
ps 2001-03-28 01:37:29 +00:00
parent 3fe1b7e192
commit bfe78d3cea
6 changed files with 31 additions and 51 deletions

View File

@ -720,26 +720,13 @@ dadump(dev_t dev)
return(EIO);
}
if (addr % (1024 * 1024) == 0) {
#ifdef HW_WDOG
if (wdog_tickler)
(*wdog_tickler)();
#endif /* HW_WDOG */
/* Count in MB of data left to write */
printf("%d ", (num * softc->params.secsize)
/ (1024 * 1024));
}
if (dumpstatus(addr, (long)(num * softc->params.secsize)) < 0)
return (EINTR);
/* update block count */
num -= blkcnt * dumppages;
blknum += blkcnt * dumppages;
addr += PAGE_SIZE * dumppages;
/* operator aborting dump? */
if (cncheckc() == 0x03)
return (EINTR);
else
printf("[CTRL-C to abort] ");
}
/*

View File

@ -341,21 +341,12 @@ addump(dev_t dev)
DELAY(20);
}
if (addr % (1024 * 1024) == 0) {
#ifdef HW_WDOG
if (wdog_tickler)
(*wdog_tickler)();
#endif
printf("%ld ", (long)(count * DEV_BSIZE) / (1024 * 1024));
}
if (dumpstatus(addr, (long)(count * DEV_BSIZE)) < 0)
return EINTR;
blkno += blkcnt * dumppages;
count -= blkcnt * dumppages;
addr += PAGE_SIZE * dumppages;
if (cncheckc() == 0x03)
return EINTR;
else
printf("[CTRL-C to abort] ");
}
if (ata_wait(adp->controller, adp->unit, ATA_S_READY | ATA_S_DSC) < 0)

View File

@ -232,22 +232,12 @@ idad_dump(dev_t dev)
if (error)
return (error);
if (addr % (1024 * 1024) == 0) {
#ifdef HW_WDOG
if (wdog_tickler)
(*wdog_tickler)();
#endif
printf("%ld ", (long)(count * DEV_BSIZE)/(1024 * 1024));
}
if (dumpstatus(addr, (long)(count * DEV_BSIZE)) < 0)
return (EINTR);
blkno += blkcnt * dumppages;
count -= blkcnt * dumppages;
addr += PAGE_SIZE * dumppages;
if (cncheckc() == 0x03)
return (EINTR);
else
printf("[CTRL-C to abort] ");
}
return (0);
}

View File

@ -729,22 +729,12 @@ twed_dump(dev_t dev)
return(error);
if (addr % (1024 * 1024) == 0) {
#ifdef HW_WDOG
if (wdog_tickler)
(*wdog_tickler)();
#endif
printf("%ld ", (long)(count * DEV_BSIZE) / (1024 * 1024));
}
if (dumpstatus(addr, (long)(count * DEV_BSIZE)) < 0)
return(EINTR);
blkno += blkcnt * dumppages;
count -= blkcnt * dumppages;
addr += PAGE_SIZE * dumppages;
if (cncheckc() == 0x03)
return(EINTR);
else
printf("[CTRL-C to abort] ");
}
return(0);
}

View File

@ -527,6 +527,27 @@ dumpsys(void)
}
}
int
dumpstatus(vm_offset_t addr, long count)
{
int c;
if (addr % (1024 * 1024) == 0) {
#ifdef HW_WDOG
if (wdog_tickler)
(*wdog_tickler)();
#endif
printf("%ld ", count / (1024 * 1024));
}
if ((c = cncheckc()) == 0x03)
return -1;
else if (c != -1)
printf("[CTRL-C to abort] ");
return 0;
}
/*
* Panic is called on unresolvable fatal errors. It prints "panic: mesg",
* and then reboots. If we are called twice, then we avoid trying to sync

View File

@ -91,6 +91,7 @@ struct ucred;
struct uio;
void Debugger __P((const char *msg));
int dumpstatus __P((vm_offset_t addr, long count));
int nullop __P((void));
int eopnotsupp __P((void));
int einval __P((void));