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:
parent
919eea6db9
commit
6b8b8c7fdc
@ -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] ");
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -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)
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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));
|
||||
|
Loading…
Reference in New Issue
Block a user