diff --git a/sys/lib/libsa/disklabel.c b/sys/lib/libsa/disklabel.c index 325e081cbbcb..36653e6155c4 100644 --- a/sys/lib/libsa/disklabel.c +++ b/sys/lib/libsa/disklabel.c @@ -1,4 +1,4 @@ -/* $NetBSD: disklabel.c,v 1.6 2003/08/07 16:32:26 agc Exp $ */ +/* $NetBSD: disklabel.c,v 1.7 2004/06/30 13:59:22 christos Exp $ */ /*- * Copyright (c) 1993 @@ -35,36 +35,36 @@ #include #include "stand.h" + +#if defined(LIBSA_NO_DISKLABEL_MSGS) +#define nolabel (char *)1 +#define corruptedlabel (char *)1 +#else +static char nolabel[] = "no disk label"; +static char corruptedlabel[] = "disk label corrupted"; +#endif char * getdisklabel(buf, lp) const char *buf; struct disklabel *lp; { - struct disklabel *dlp, *elp; - char *msg = (char *)0; + const struct disklabel *dlp, *elp; + char *msg = NULL; - elp = (struct disklabel *)(buf + DEV_BSIZE - sizeof(*dlp)); - for (dlp = (struct disklabel *)buf; dlp <= elp; - dlp = (struct disklabel *)((char *)dlp + sizeof(long))) { + elp = (const void *)(buf + DEV_BSIZE - sizeof(*dlp)); + for (dlp = (const void *)buf; dlp <= elp; + dlp = (const void *)((const char *)dlp + sizeof(long))) { if (dlp->d_magic != DISKMAGIC || dlp->d_magic2 != DISKMAGIC) { -#if defined(LIBSA_NO_DISKLABEL_MSGS) - msg = (char *)1; -#else - if (msg == (char *)0) - msg = "no disk label"; -#endif + if (msg == NULL) + msg = nolabel; } else if (dlp->d_npartitions > MAXPARTITIONS || dkcksum(dlp) != 0) -#if defined(LIBSA_NO_DISKLABEL_MSGS) - msg = (char *)1; -#else - msg = "disk label corrupted"; -#endif + msg = corruptedlabel; else { - bcopy(dlp, lp, sizeof *lp); - msg = (char *)0; + (void)memcpy(lp, dlp, sizeof *lp); + msg = NULL; break; } } - return (msg); + return msg; } diff --git a/sys/lib/libsa/dkcksum.c b/sys/lib/libsa/dkcksum.c index 5b49a7fdba95..6855f9f16343 100644 --- a/sys/lib/libsa/dkcksum.c +++ b/sys/lib/libsa/dkcksum.c @@ -1,4 +1,4 @@ -/* $NetBSD: dkcksum.c,v 1.3 2003/08/07 16:32:26 agc Exp $ */ +/* $NetBSD: dkcksum.c,v 1.4 2004/06/30 13:59:22 christos Exp $ */ /*- * Copyright (c) 1993 @@ -39,15 +39,14 @@ * Compute checksum for disk label. */ int -dkcksum(lp) - struct disklabel *lp; +dkcksum(const struct disklabel *lp) { - u_short *start, *end; + const u_short *start, *end; u_short sum = 0; - start = (u_short *)lp; - end = (u_short *)&lp->d_partitions[lp->d_npartitions]; + start = (const void *)lp; + end = (const void *)&lp->d_partitions[lp->d_npartitions]; while (start < end) sum ^= *start++; - return (sum); + return sum; } diff --git a/sys/lib/libsa/strerror.c b/sys/lib/libsa/strerror.c index fb099546028c..3f07970ee123 100644 --- a/sys/lib/libsa/strerror.c +++ b/sys/lib/libsa/strerror.c @@ -1,4 +1,4 @@ -/* $NetBSD: strerror.c,v 1.16 2003/08/07 16:32:30 agc Exp $ */ +/* $NetBSD: strerror.c,v 1.17 2004/06/30 13:59:22 christos Exp $ */ /*- * Copyright (c) 1993 @@ -35,7 +35,7 @@ static const struct mi { int errno; - char *msg; + const char *msg; } errlist[] = { { EADAPT, "bad adaptor number" }, { ECTLR, "bad controller number" }, @@ -64,7 +64,7 @@ strerror(int err) for (mi = errlist; mi->msg; mi++) if (mi->errno == err) - return mi->msg; + return __DECONST(mi->msg); snprintf(ebuf, sizeof ebuf, "Unknown error: code %d", err); return ebuf;