diff options
author | Tobias Weingartner <weingart@cvs.openbsd.org> | 1997-04-17 19:03:21 +0000 |
---|---|---|
committer | Tobias Weingartner <weingart@cvs.openbsd.org> | 1997-04-17 19:03:21 +0000 |
commit | ab2e5ab11a81ae2b4efe76e1181156baf73460b2 (patch) | |
tree | 14a4015b429981c7716ba61c5cbea3992f601d7e /sys/arch/i386 | |
parent | 638044ec2dd7f84727e303dc66e859b0f425d783 (diff) |
Fix error handling from bios & typo.
Diffstat (limited to 'sys/arch/i386')
-rw-r--r-- | sys/arch/i386/stand/libsa/biosdev.c | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/sys/arch/i386/stand/libsa/biosdev.c b/sys/arch/i386/stand/libsa/biosdev.c index e02b7d641e9..696a37611d8 100644 --- a/sys/arch/i386/stand/libsa/biosdev.c +++ b/sys/arch/i386/stand/libsa/biosdev.c @@ -1,4 +1,4 @@ -/* $OpenBSD: biosdev.c,v 1.7 1997/04/15 20:50:35 mickey Exp $ */ +/* $OpenBSD: biosdev.c,v 1.8 1997/04/17 19:03:20 weingart Exp $ */ /* * Copyright (c) 1996 Michael Shalayeff @@ -290,7 +290,7 @@ biosstrategy(void *devdata, int rw, else n = nsect - i; - /* use a bounce buffer to not to cross 64k DMA boundary */ + /* use a bounce buffer to not cross 64k DMA boundary */ if ((((u_int32_t)buf) & ~0xffff) != (((u_int32_t)buf + n * DEV_BSIZE) & ~0xffff)) { bb = alloc(n * DEV_BSIZE); @@ -308,14 +308,20 @@ biosstrategy(void *devdata, int rw, : bioswrite(bd->biosdev, cyl, hd, sect, n, bb); switch (error) { - case 0x06: /* disk changed */ - printf ("disk changed\n"); - default: - continue; - + case 0x00: /* No errors */ case 0x11: /* ECC corrected */ error = 0; break; + + default: +#ifdef BIOS_DEBUG + if (debug) { + for (p = bd_errors; p < &bd_errors[bd_nents] && + p->bd_id != error; p++); + printf("\nBIOS error %x (%s)\n", p->bd_id, p->msg); + } +#endif + continue; } } |