Module Name: src Committed By: pooka Date: Mon Nov 23 13:40:11 UTC 2009
Modified Files: src/sys/arch/algor/include: disklabel.h src/sys/arch/alpha/include: disklabel.h src/sys/arch/amd64/include: disklabel.h src/sys/arch/arc/include: disklabel.h src/sys/arch/arm/include: disklabel.h src/sys/arch/bebox/include: disklabel.h src/sys/arch/cobalt/include: disklabel.h src/sys/arch/evbmips/include: disklabel.h src/sys/arch/evbppc/include: disklabel.h src/sys/arch/hp700/include: disklabel.h src/sys/arch/hpcarm/include: disklabel.h src/sys/arch/hpcmips/include: disklabel.h src/sys/arch/i386/include: disklabel.h src/sys/arch/ia64/include: disklabel.h src/sys/arch/ibmnws/include: disklabel.h src/sys/arch/landisk/include: disklabel.h src/sys/arch/mvmeppc/include: disklabel.h src/sys/arch/ofppc/include: disklabel.h src/sys/arch/playstation2/include: disklabel.h src/sys/arch/prep/include: disklabel.h src/sys/arch/rs6000/include: disklabel.h src/sys/arch/sandpoint/include: disklabel.h src/sys/arch/sbmips/include: disklabel.h src/sys/arch/sh3/include: disklabel.h src/sys/arch/x68k/include: disklabel.h src/sys/arch/zaurus/include: disklabel.h src/sys/kern: subr_disk_mbr.c src/sys/rump/dev/lib/libdisk: Makefile Log Message: If cpu_disklabel includes struct dkbad, define __HAVE_DISKLABEL_DKBAD. This allows use of subr_disk_mbr on all archs. Default to it for the rump disk component. No functional change for regular kernels. (The other option would've been to include dkbad in disklabels everywhere, but arguably this approach has less possible side-effects, especially given that wedges and related magic will take over the world any second now). To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/sys/arch/algor/include/disklabel.h cvs rdiff -u -r1.9 -r1.10 src/sys/arch/alpha/include/disklabel.h cvs rdiff -u -r1.8 -r1.9 src/sys/arch/amd64/include/disklabel.h cvs rdiff -u -r1.9 -r1.10 src/sys/arch/arc/include/disklabel.h cvs rdiff -u -r1.8 -r1.9 src/sys/arch/arm/include/disklabel.h cvs rdiff -u -r1.8 -r1.9 src/sys/arch/bebox/include/disklabel.h cvs rdiff -u -r1.9 -r1.10 src/sys/arch/cobalt/include/disklabel.h cvs rdiff -u -r1.3 -r1.4 src/sys/arch/evbmips/include/disklabel.h cvs rdiff -u -r1.5 -r1.6 src/sys/arch/evbppc/include/disklabel.h cvs rdiff -u -r1.7 -r1.8 src/sys/arch/hp700/include/disklabel.h cvs rdiff -u -r1.6 -r1.7 src/sys/arch/hpcarm/include/disklabel.h cvs rdiff -u -r1.8 -r1.9 src/sys/arch/hpcmips/include/disklabel.h cvs rdiff -u -r1.14 -r1.15 src/sys/arch/i386/include/disklabel.h cvs rdiff -u -r1.1 -r1.2 src/sys/arch/ia64/include/disklabel.h cvs rdiff -u -r1.3 -r1.4 src/sys/arch/ibmnws/include/disklabel.h cvs rdiff -u -r1.1 -r1.2 src/sys/arch/landisk/include/disklabel.h cvs rdiff -u -r1.6 -r1.7 src/sys/arch/mvmeppc/include/disklabel.h cvs rdiff -u -r1.7 -r1.8 src/sys/arch/ofppc/include/disklabel.h cvs rdiff -u -r1.6 -r1.7 src/sys/arch/playstation2/include/disklabel.h cvs rdiff -u -r1.7 -r1.8 src/sys/arch/prep/include/disklabel.h cvs rdiff -u -r1.1 -r1.2 src/sys/arch/rs6000/include/disklabel.h cvs rdiff -u -r1.6 -r1.7 src/sys/arch/sandpoint/include/disklabel.h cvs rdiff -u -r1.6 -r1.7 src/sys/arch/sbmips/include/disklabel.h cvs rdiff -u -r1.7 -r1.8 src/sys/arch/sh3/include/disklabel.h cvs rdiff -u -r1.4 -r1.5 src/sys/arch/x68k/include/disklabel.h cvs rdiff -u -r1.1 -r1.2 src/sys/arch/zaurus/include/disklabel.h cvs rdiff -u -r1.36 -r1.37 src/sys/kern/subr_disk_mbr.c cvs rdiff -u -r1.5 -r1.6 src/sys/rump/dev/lib/libdisk/Makefile Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/algor/include/disklabel.h diff -u src/sys/arch/algor/include/disklabel.h:1.3 src/sys/arch/algor/include/disklabel.h:1.4 --- src/sys/arch/algor/include/disklabel.h:1.3 Sun Dec 11 12:16:08 2005 +++ src/sys/arch/algor/include/disklabel.h Mon Nov 23 13:40:08 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: disklabel.h,v 1.3 2005/12/11 12:16:08 christos Exp $ */ +/* $NetBSD: disklabel.h,v 1.4 2009/11/23 13:40:08 pooka Exp $ */ /* * Copyright (c) 1994 Christopher G. Demetriou @@ -46,6 +46,7 @@ /* Just a dummy */ struct cpu_disklabel { +#define __HAVE_DISKLABEL_DKBAD struct dkbad bad; /* must have one element. */ }; Index: src/sys/arch/alpha/include/disklabel.h diff -u src/sys/arch/alpha/include/disklabel.h:1.9 src/sys/arch/alpha/include/disklabel.h:1.10 --- src/sys/arch/alpha/include/disklabel.h:1.9 Sun Dec 11 12:16:16 2005 +++ src/sys/arch/alpha/include/disklabel.h Mon Nov 23 13:40:09 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: disklabel.h,v 1.9 2005/12/11 12:16:16 christos Exp $ */ +/* $NetBSD: disklabel.h,v 1.10 2009/11/23 13:40:09 pooka Exp $ */ /* * Copyright (c) 1994, 1999 Christopher G. Demetriou @@ -47,6 +47,7 @@ /* Just a dummy */ struct cpu_disklabel { +#define __HAVE_DISKLABEL_DKBAD struct dkbad bad; /* bad-sector information */ }; Index: src/sys/arch/amd64/include/disklabel.h diff -u src/sys/arch/amd64/include/disklabel.h:1.8 src/sys/arch/amd64/include/disklabel.h:1.9 --- src/sys/arch/amd64/include/disklabel.h:1.8 Tue Oct 28 02:19:27 2008 +++ src/sys/arch/amd64/include/disklabel.h Mon Nov 23 13:40:09 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: disklabel.h,v 1.8 2008/10/28 02:19:27 mrg Exp $ */ +/* $NetBSD: disklabel.h,v 1.9 2009/11/23 13:40:09 pooka Exp $ */ /* * Copyright (c) 1994 Christopher G. Demetriou @@ -59,6 +59,7 @@ #include <sys/dkbad.h> #endif /* HAVE_NBTOOL_CONFIG_H */ struct cpu_disklabel { +#define __HAVE_DISKLABEL_DKBAD struct dkbad bad; }; #endif Index: src/sys/arch/arc/include/disklabel.h diff -u src/sys/arch/arc/include/disklabel.h:1.9 src/sys/arch/arc/include/disklabel.h:1.10 --- src/sys/arch/arc/include/disklabel.h:1.9 Sun Dec 11 12:16:39 2005 +++ src/sys/arch/arc/include/disklabel.h Mon Nov 23 13:40:09 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: disklabel.h,v 1.9 2005/12/11 12:16:39 christos Exp $ */ +/* $NetBSD: disklabel.h,v 1.10 2009/11/23 13:40:09 pooka Exp $ */ /* $OpenBSD: disklabel.h,v 1.14 1999/03/23 16:36:17 millert Exp $ */ /* NetBSD: disklabel.h,v 1.3 1996/03/09 20:52:54 ghudson Exp */ @@ -56,6 +56,7 @@ #endif /* HAVE_NBTOOL_CONFIG_H */ struct cpu_disklabel { struct mbr_partition dosparts[MBR_PART_COUNT]; +#define __HAVE_DISKLABEL_DKBAD struct dkbad bad; }; Index: src/sys/arch/arm/include/disklabel.h diff -u src/sys/arch/arm/include/disklabel.h:1.8 src/sys/arch/arm/include/disklabel.h:1.9 --- src/sys/arch/arm/include/disklabel.h:1.8 Sat Mar 14 14:45:55 2009 +++ src/sys/arch/arm/include/disklabel.h Mon Nov 23 13:40:09 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: disklabel.h,v 1.8 2009/03/14 14:45:55 dsl Exp $ */ +/* $NetBSD: disklabel.h,v 1.9 2009/11/23 13:40:09 pooka Exp $ */ /* * Copyright (c) 1994 Mark Brinicombe. @@ -63,6 +63,7 @@ struct cpu_disklabel { struct mbr_partition mbrparts[MBR_PART_COUNT]; +#define __HAVE_DISKLABEL_DKBAD struct dkbad bad; }; Index: src/sys/arch/bebox/include/disklabel.h diff -u src/sys/arch/bebox/include/disklabel.h:1.8 src/sys/arch/bebox/include/disklabel.h:1.9 --- src/sys/arch/bebox/include/disklabel.h:1.8 Sun Dec 11 12:17:03 2005 +++ src/sys/arch/bebox/include/disklabel.h Mon Nov 23 13:40:09 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: disklabel.h,v 1.8 2005/12/11 12:17:03 christos Exp $ */ +/* $NetBSD: disklabel.h,v 1.9 2009/11/23 13:40:09 pooka Exp $ */ /* * Copyright (c) 1994 Christopher G. Demetriou @@ -52,6 +52,7 @@ #endif /* HAVE_NBTOOL_CONFIG_H */ struct cpu_disklabel { struct mbr_partition dosparts[MBR_PART_COUNT]; +#define __HAVE_DISKLABEL_DKBAD struct dkbad bad; }; Index: src/sys/arch/cobalt/include/disklabel.h diff -u src/sys/arch/cobalt/include/disklabel.h:1.9 src/sys/arch/cobalt/include/disklabel.h:1.10 --- src/sys/arch/cobalt/include/disklabel.h:1.9 Sun Dec 11 12:17:06 2005 +++ src/sys/arch/cobalt/include/disklabel.h Mon Nov 23 13:40:09 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: disklabel.h,v 1.9 2005/12/11 12:17:06 christos Exp $ */ +/* $NetBSD: disklabel.h,v 1.10 2009/11/23 13:40:09 pooka Exp $ */ /* * Copyright (c) 1994 Christopher G. Demetriou @@ -53,6 +53,7 @@ #endif /* HAVE_NBTOOL_CONFIG_H */ struct cpu_disklabel { struct mbr_partition dosparts[MBR_PART_COUNT]; +#define __HAVE_DISKLABEL_DKBAD struct dkbad bad; }; #endif Index: src/sys/arch/evbmips/include/disklabel.h diff -u src/sys/arch/evbmips/include/disklabel.h:1.3 src/sys/arch/evbmips/include/disklabel.h:1.4 --- src/sys/arch/evbmips/include/disklabel.h:1.3 Sun Dec 11 12:17:11 2005 +++ src/sys/arch/evbmips/include/disklabel.h Mon Nov 23 13:40:09 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: disklabel.h,v 1.3 2005/12/11 12:17:11 christos Exp $ */ +/* $NetBSD: disklabel.h,v 1.4 2009/11/23 13:40:09 pooka Exp $ */ /* * Copyright (c) 1994 Christopher G. Demetriou @@ -46,6 +46,7 @@ /* Just a dummy */ struct cpu_disklabel { +#define __HAVE_DISKLABEL_DKBAD struct dkbad bad; /* must have one element. */ }; Index: src/sys/arch/evbppc/include/disklabel.h diff -u src/sys/arch/evbppc/include/disklabel.h:1.5 src/sys/arch/evbppc/include/disklabel.h:1.6 --- src/sys/arch/evbppc/include/disklabel.h:1.5 Sun Dec 11 12:17:12 2005 +++ src/sys/arch/evbppc/include/disklabel.h Mon Nov 23 13:40:09 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: disklabel.h,v 1.5 2005/12/11 12:17:12 christos Exp $ */ +/* $NetBSD: disklabel.h,v 1.6 2009/11/23 13:40:09 pooka Exp $ */ /* * Copyright (c) 1994 Christopher G. Demetriou @@ -60,6 +60,7 @@ #ifdef EVBPPC_HAS_MBR struct mbr_partition dosparts[MBR_PART_COUNT]; #endif +#define __HAVE_DISKLABEL_DKBAD struct dkbad bad; /* bad-sector information */ }; Index: src/sys/arch/hp700/include/disklabel.h diff -u src/sys/arch/hp700/include/disklabel.h:1.7 src/sys/arch/hp700/include/disklabel.h:1.8 --- src/sys/arch/hp700/include/disklabel.h:1.7 Sun Dec 11 12:17:24 2005 +++ src/sys/arch/hp700/include/disklabel.h Mon Nov 23 13:40:09 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: disklabel.h,v 1.7 2005/12/11 12:17:24 christos Exp $ */ +/* $NetBSD: disklabel.h,v 1.8 2009/11/23 13:40:09 pooka Exp $ */ /* $OpenBSD: disklabel.h,v 1.5 2000/07/05 22:37:22 mickey Exp $ */ @@ -55,6 +55,7 @@ struct cpu_disklabel { struct hp700_lifvol lifvol; struct hp700_lifdir lifdir[HP700_LIF_NUMDIR]; +#define __HAVE_DISKLABEL_DKBAD struct dkbad bad; /* To make wd(4) happy */ }; Index: src/sys/arch/hpcarm/include/disklabel.h diff -u src/sys/arch/hpcarm/include/disklabel.h:1.6 src/sys/arch/hpcarm/include/disklabel.h:1.7 --- src/sys/arch/hpcarm/include/disklabel.h:1.6 Sun Dec 11 12:17:33 2005 +++ src/sys/arch/hpcarm/include/disklabel.h Mon Nov 23 13:40:09 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: disklabel.h,v 1.6 2005/12/11 12:17:33 christos Exp $ */ +/* $NetBSD: disklabel.h,v 1.7 2009/11/23 13:40:09 pooka Exp $ */ /* * Copyright (c) 1994 Christopher G. Demetriou @@ -53,6 +53,7 @@ #endif /* HAVE_NBTOOL_CONFIG_H */ struct cpu_disklabel { struct mbr_partition dosparts[MBR_PART_COUNT]; +#define __HAVE_DISKLABEL_DKBAD struct dkbad bad; }; #endif Index: src/sys/arch/hpcmips/include/disklabel.h diff -u src/sys/arch/hpcmips/include/disklabel.h:1.8 src/sys/arch/hpcmips/include/disklabel.h:1.9 --- src/sys/arch/hpcmips/include/disklabel.h:1.8 Sun Dec 11 12:17:33 2005 +++ src/sys/arch/hpcmips/include/disklabel.h Mon Nov 23 13:40:10 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: disklabel.h,v 1.8 2005/12/11 12:17:33 christos Exp $ */ +/* $NetBSD: disklabel.h,v 1.9 2009/11/23 13:40:10 pooka Exp $ */ /* * Copyright (c) 1994 Christopher G. Demetriou @@ -67,6 +67,7 @@ #endif /* HAVE_NBTOOL_CONFIG_H */ struct cpu_disklabel { struct mbr_partition dosparts[MBR_PART_COUNT]; +#define __HAVE_DISKLABEL_DKBAD struct dkbad bad; }; #endif Index: src/sys/arch/i386/include/disklabel.h diff -u src/sys/arch/i386/include/disklabel.h:1.14 src/sys/arch/i386/include/disklabel.h:1.15 --- src/sys/arch/i386/include/disklabel.h:1.14 Sun Oct 26 06:57:30 2008 +++ src/sys/arch/i386/include/disklabel.h Mon Nov 23 13:40:10 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: disklabel.h,v 1.14 2008/10/26 06:57:30 mrg Exp $ */ +/* $NetBSD: disklabel.h,v 1.15 2009/11/23 13:40:10 pooka Exp $ */ /* * Copyright (c) 1994 Christopher G. Demetriou @@ -66,6 +66,7 @@ #include <sys/dkbad.h> #endif /* HAVE_NBTOOL_CONFIG_H */ struct cpu_disklabel { +#define __HAVE_DISKLABEL_DKBAD struct dkbad bad; }; #endif Index: src/sys/arch/ia64/include/disklabel.h diff -u src/sys/arch/ia64/include/disklabel.h:1.1 src/sys/arch/ia64/include/disklabel.h:1.2 --- src/sys/arch/ia64/include/disklabel.h:1.1 Fri Apr 7 14:21:18 2006 +++ src/sys/arch/ia64/include/disklabel.h Mon Nov 23 13:40:10 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: disklabel.h,v 1.1 2006/04/07 14:21:18 cherry Exp $ */ +/* $NetBSD: disklabel.h,v 1.2 2009/11/23 13:40:10 pooka Exp $ */ /* * Copyright (c) 1994 Christopher G. Demetriou @@ -66,6 +66,7 @@ #include <sys/dkbad.h> #endif /* HAVE_NBTOOL_CONFIG_H */ struct cpu_disklabel { +#define __HAVE_DISKLABEL_DKBAD struct dkbad bad; }; #endif Index: src/sys/arch/ibmnws/include/disklabel.h diff -u src/sys/arch/ibmnws/include/disklabel.h:1.3 src/sys/arch/ibmnws/include/disklabel.h:1.4 --- src/sys/arch/ibmnws/include/disklabel.h:1.3 Sun Dec 11 12:17:50 2005 +++ src/sys/arch/ibmnws/include/disklabel.h Mon Nov 23 13:40:10 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: disklabel.h,v 1.3 2005/12/11 12:17:50 christos Exp $ */ +/* $NetBSD: disklabel.h,v 1.4 2009/11/23 13:40:10 pooka Exp $ */ /* * Copyright (c) 1994 Christopher G. Demetriou @@ -49,6 +49,7 @@ struct cpu_disklabel { struct mbr_partition dosparts[MBR_PART_COUNT]; +#define __HAVE_DISKLABEL_DKBAD struct dkbad bad; }; Index: src/sys/arch/landisk/include/disklabel.h diff -u src/sys/arch/landisk/include/disklabel.h:1.1 src/sys/arch/landisk/include/disklabel.h:1.2 --- src/sys/arch/landisk/include/disklabel.h:1.1 Fri Sep 1 21:26:18 2006 +++ src/sys/arch/landisk/include/disklabel.h Mon Nov 23 13:40:10 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: disklabel.h,v 1.1 2006/09/01 21:26:18 uwe Exp $ */ +/* $NetBSD: disklabel.h,v 1.2 2009/11/23 13:40:10 pooka Exp $ */ /* * Copyright (c) 1994 Christopher G. Demetriou @@ -54,6 +54,7 @@ struct cpu_disklabel { struct mbr_partition dosparts[MBR_PART_COUNT]; +#define __HAVE_DISKLABEL_DKBAD struct dkbad bad; }; #endif /* __ASSEMBLER__ */ Index: src/sys/arch/mvmeppc/include/disklabel.h diff -u src/sys/arch/mvmeppc/include/disklabel.h:1.6 src/sys/arch/mvmeppc/include/disklabel.h:1.7 --- src/sys/arch/mvmeppc/include/disklabel.h:1.6 Sun Dec 11 12:18:19 2005 +++ src/sys/arch/mvmeppc/include/disklabel.h Mon Nov 23 13:40:10 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: disklabel.h,v 1.6 2005/12/11 12:18:19 christos Exp $ */ +/* $NetBSD: disklabel.h,v 1.7 2009/11/23 13:40:10 pooka Exp $ */ /* * Copyright (c) 1994 Christopher G. Demetriou @@ -49,6 +49,7 @@ struct cpu_disklabel { struct mbr_partition dosparts[MBR_PART_COUNT]; +#define __HAVE_DISKLABEL_DKBAD struct dkbad bad; }; Index: src/sys/arch/ofppc/include/disklabel.h diff -u src/sys/arch/ofppc/include/disklabel.h:1.7 src/sys/arch/ofppc/include/disklabel.h:1.8 --- src/sys/arch/ofppc/include/disklabel.h:1.7 Wed Oct 17 19:56:07 2007 +++ src/sys/arch/ofppc/include/disklabel.h Mon Nov 23 13:40:10 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: disklabel.h,v 1.7 2007/10/17 19:56:07 garbled Exp $ */ +/* $NetBSD: disklabel.h,v 1.8 2009/11/23 13:40:10 pooka Exp $ */ /*- * Copyright (C) 1995, 1996 Wolfgang Solfrank. @@ -49,6 +49,7 @@ struct cpu_disklabel { struct mbr_partition dosparts[MBR_PART_COUNT]; +#define __HAVE_DISKLABEL_DKBAD struct dkbad bad; }; Index: src/sys/arch/playstation2/include/disklabel.h diff -u src/sys/arch/playstation2/include/disklabel.h:1.6 src/sys/arch/playstation2/include/disklabel.h:1.7 --- src/sys/arch/playstation2/include/disklabel.h:1.6 Sun Dec 11 12:18:36 2005 +++ src/sys/arch/playstation2/include/disklabel.h Mon Nov 23 13:40:10 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: disklabel.h,v 1.6 2005/12/11 12:18:36 christos Exp $ */ +/* $NetBSD: disklabel.h,v 1.7 2009/11/23 13:40:10 pooka Exp $ */ /* * Copyright (c) 1994 Christopher G. Demetriou @@ -53,6 +53,7 @@ #endif /* HAVE_NBTOOL_CONFIG_H */ struct cpu_disklabel { struct mbr_partition dosparts[MBR_PART_COUNT]; +#define __HAVE_DISKLABEL_DKBAD struct dkbad bad; }; #endif Index: src/sys/arch/prep/include/disklabel.h diff -u src/sys/arch/prep/include/disklabel.h:1.7 src/sys/arch/prep/include/disklabel.h:1.8 --- src/sys/arch/prep/include/disklabel.h:1.7 Sun Dec 11 12:18:47 2005 +++ src/sys/arch/prep/include/disklabel.h Mon Nov 23 13:40:10 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: disklabel.h,v 1.7 2005/12/11 12:18:47 christos Exp $ */ +/* $NetBSD: disklabel.h,v 1.8 2009/11/23 13:40:10 pooka Exp $ */ /* * Copyright (c) 1994 Christopher G. Demetriou @@ -47,6 +47,7 @@ #endif /* HAVE_NBTOOL_CONFIG_H */ struct cpu_disklabel { struct mbr_partition dosparts[MBR_PART_COUNT]; +#define __HAVE_DISKLABEL_DKBAD struct dkbad bad; }; Index: src/sys/arch/rs6000/include/disklabel.h diff -u src/sys/arch/rs6000/include/disklabel.h:1.1 src/sys/arch/rs6000/include/disklabel.h:1.2 --- src/sys/arch/rs6000/include/disklabel.h:1.1 Mon Dec 17 19:09:13 2007 +++ src/sys/arch/rs6000/include/disklabel.h Mon Nov 23 13:40:10 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: disklabel.h,v 1.1 2007/12/17 19:09:13 garbled Exp $ */ +/* $NetBSD: disklabel.h,v 1.2 2009/11/23 13:40:10 pooka Exp $ */ /* * Copyright (c) 1994 Christopher G. Demetriou @@ -47,6 +47,7 @@ #endif /* HAVE_NBTOOL_CONFIG_H */ struct cpu_disklabel { struct mbr_partition dosparts[MBR_PART_COUNT]; +#define __HAVE_DISKLABEL_DKBAD struct dkbad bad; }; Index: src/sys/arch/sandpoint/include/disklabel.h diff -u src/sys/arch/sandpoint/include/disklabel.h:1.6 src/sys/arch/sandpoint/include/disklabel.h:1.7 --- src/sys/arch/sandpoint/include/disklabel.h:1.6 Sun Dec 11 12:18:51 2005 +++ src/sys/arch/sandpoint/include/disklabel.h Mon Nov 23 13:40:10 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: disklabel.h,v 1.6 2005/12/11 12:18:51 christos Exp $ */ +/* $NetBSD: disklabel.h,v 1.7 2009/11/23 13:40:10 pooka Exp $ */ /* * Copyright (c) 1994 Christopher G. Demetriou @@ -47,6 +47,7 @@ #endif /* HAVE_NBTOOL_CONFIG_H */ struct cpu_disklabel { struct mbr_partition dosparts[MBR_PART_COUNT]; +#define __HAVE_DISKLABEL_DKBAD struct dkbad bad; }; Index: src/sys/arch/sbmips/include/disklabel.h diff -u src/sys/arch/sbmips/include/disklabel.h:1.6 src/sys/arch/sbmips/include/disklabel.h:1.7 --- src/sys/arch/sbmips/include/disklabel.h:1.6 Sun Dec 11 12:18:51 2005 +++ src/sys/arch/sbmips/include/disklabel.h Mon Nov 23 13:40:11 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: disklabel.h,v 1.6 2005/12/11 12:18:51 christos Exp $ */ +/* $NetBSD: disklabel.h,v 1.7 2009/11/23 13:40:11 pooka Exp $ */ /* * Copyright 2000, 2001 @@ -88,6 +88,7 @@ #endif /* HAVE_NBTOOL_CONFIG_H */ struct cpu_disklabel { struct mbr_partition dosparts[MBR_PART_COUNT]; +#define __HAVE_DISKLABEL_DKBAD struct dkbad bad; }; #endif Index: src/sys/arch/sh3/include/disklabel.h diff -u src/sys/arch/sh3/include/disklabel.h:1.7 src/sys/arch/sh3/include/disklabel.h:1.8 --- src/sys/arch/sh3/include/disklabel.h:1.7 Sun Dec 11 12:18:58 2005 +++ src/sys/arch/sh3/include/disklabel.h Mon Nov 23 13:40:11 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: disklabel.h,v 1.7 2005/12/11 12:18:58 christos Exp $ */ +/* $NetBSD: disklabel.h,v 1.8 2009/11/23 13:40:11 pooka Exp $ */ /* * Copyright (c) 1994 Christopher G. Demetriou @@ -53,6 +53,7 @@ #endif /* HAVE_NBTOOL_CONFIG_H */ struct cpu_disklabel { struct mbr_partition dosparts[MBR_PART_COUNT]; +#define __HAVE_DISKLABEL_DKBAD struct dkbad bad; }; #endif Index: src/sys/arch/x68k/include/disklabel.h diff -u src/sys/arch/x68k/include/disklabel.h:1.4 src/sys/arch/x68k/include/disklabel.h:1.5 --- src/sys/arch/x68k/include/disklabel.h:1.4 Sun Dec 11 12:19:44 2005 +++ src/sys/arch/x68k/include/disklabel.h Mon Nov 23 13:40:11 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: disklabel.h,v 1.4 2005/12/11 12:19:44 christos Exp $ */ +/* $NetBSD: disklabel.h,v 1.5 2009/11/23 13:40:11 pooka Exp $ */ /* * Copyright (c) 1994 Masaru Oki @@ -58,6 +58,7 @@ #endif /* HAVE_NBTOOL_CONFIG_H */ struct cpu_disklabel { struct dos_partition dosparts[NDOSPART]; +#define __HAVE_DISKLABEL_DKBAD struct dkbad bad; }; Index: src/sys/arch/zaurus/include/disklabel.h diff -u src/sys/arch/zaurus/include/disklabel.h:1.1 src/sys/arch/zaurus/include/disklabel.h:1.2 --- src/sys/arch/zaurus/include/disklabel.h:1.1 Sat Dec 16 05:43:59 2006 +++ src/sys/arch/zaurus/include/disklabel.h Mon Nov 23 13:40:11 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: disklabel.h,v 1.1 2006/12/16 05:43:59 ober Exp $ */ +/* $NetBSD: disklabel.h,v 1.2 2009/11/23 13:40:11 pooka Exp $ */ /* * Copyright (c) 1994 Christopher G. Demetriou @@ -54,6 +54,7 @@ struct cpu_disklabel { struct mbr_partition dosparts[MBR_PART_COUNT]; +#define __HAVE_DISKLABEL_DKBAD struct dkbad bad; }; #endif /* __ASSEMBLER__ */ Index: src/sys/kern/subr_disk_mbr.c diff -u src/sys/kern/subr_disk_mbr.c:1.36 src/sys/kern/subr_disk_mbr.c:1.37 --- src/sys/kern/subr_disk_mbr.c:1.36 Wed Jun 3 15:07:30 2009 +++ src/sys/kern/subr_disk_mbr.c Mon Nov 23 13:40:11 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: subr_disk_mbr.c,v 1.36 2009/06/03 15:07:30 pooka Exp $ */ +/* $NetBSD: subr_disk_mbr.c,v 1.37 2009/11/23 13:40:11 pooka Exp $ */ /* * Copyright (c) 1982, 1986, 1988 Regents of the University of California. @@ -54,7 +54,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: subr_disk_mbr.c,v 1.36 2009/06/03 15:07:30 pooka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: subr_disk_mbr.c,v 1.37 2009/11/23 13:40:11 pooka Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -67,6 +67,7 @@ #include <sys/fcntl.h> #include <sys/conf.h> #include <sys/cdio.h> +#include <sys/dkbad.h> #include <fs/udf/ecma167-udf.h> #include <sys/kauth.h> @@ -394,7 +395,6 @@ readdisklabel(dev_t dev, void (*strat)(struct buf *), struct disklabel *lp, struct cpu_disklabel *osdep) { - struct dkbad *bdp; int rval; int i; mbr_args_t a; @@ -462,8 +462,9 @@ #endif /* Obtain bad sector table if requested and present */ +#ifdef __HAVE_DISKLABEL_DKBAD if (rval == SCAN_FOUND && osdep && (lp->d_flags & D_BADSECT)) { - struct dkbad *db; + struct dkbad *bdp, *db; int blkno; bdp = &osdep->bad; @@ -493,6 +494,7 @@ } while (a.bp->b_error && (i += 2) < 10 && i < lp->d_nsectors); } +#endif /* __HAVE_DISKLABEL_DKBAD */ brelse(a.bp, 0); if (rval == SCAN_ERROR || rval == SCAN_CONTINUE) Index: src/sys/rump/dev/lib/libdisk/Makefile diff -u src/sys/rump/dev/lib/libdisk/Makefile:1.5 src/sys/rump/dev/lib/libdisk/Makefile:1.6 --- src/sys/rump/dev/lib/libdisk/Makefile:1.5 Mon Nov 23 11:20:25 2009 +++ src/sys/rump/dev/lib/libdisk/Makefile Mon Nov 23 13:40:11 2009 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.5 2009/11/23 11:20:25 pooka Exp $ +# $NetBSD: Makefile,v 1.6 2009/11/23 13:40:11 pooka Exp $ # .PATH: ${.CURDIR}/../../../../kern \ @@ -7,18 +7,16 @@ LIB= rumpdev_disk # -# XXX: not all platforms support this for now, since disklabel contains -# some MD weirdosities. Enable only on i386. Rest of the platforms -# get a dummy implementation (due to it being easier with setlists). +# We use subr_disk_mbr on all platforms. The current structure of +# code allows us to pick only one readdisklabel() routine. While +# this is not the native one for all platforms, it's probably the +# most common one in an image floating on the internetto. +SRCS= subr_disk_mbr.c -.if ${MACHINE} == "i386" # sys/kern -SRCS= subr_disk.c subr_disk_mbr.c subr_disk_open.c +SRCS+= subr_disk.c subr_disk_open.c # sys/dev SRCS+= dksubr.c dk.c -.else -SRCS+= dummy.c -.endif CFLAGS+= -Wno-pointer-sign