summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>2011-10-06 20:49:30 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>2011-10-06 20:49:30 +0000
commit0647d56dd089f299d35587686681e19ad074627d (patch)
tree0bd77a196ba8c5bf639b51b50f88745e18caeec0 /sys
parenta4b88cea1f45014461763fd53d46221663687d94 (diff)
ccd goes to the attic
discussed with jsing and millert
Diffstat (limited to 'sys')
-rw-r--r--sys/arch/alpha/alpha/conf.c9
-rw-r--r--sys/arch/alpha/conf/files.alpha3
-rw-r--r--sys/arch/amd64/amd64/conf.c11
-rw-r--r--sys/arch/amd64/conf/RAMDISK3
-rw-r--r--sys/arch/amd64/conf/RAMDISK_CD3
-rw-r--r--sys/arch/amd64/conf/files.amd643
-rw-r--r--sys/arch/arm/arm/conf.c9
-rw-r--r--sys/arch/aviion/aviion/conf.c9
-rw-r--r--sys/arch/hp300/hp300/conf.c9
-rw-r--r--sys/arch/hppa/conf/RAMDISK3
-rw-r--r--sys/arch/hppa/conf/files.hppa3
-rw-r--r--sys/arch/hppa/hppa/conf.c9
-rw-r--r--sys/arch/hppa64/conf/RAMDISK3
-rw-r--r--sys/arch/hppa64/conf/files.hppa643
-rw-r--r--sys/arch/hppa64/hppa64/conf.c9
-rw-r--r--sys/arch/i386/conf/RAMDISK_CD3
-rw-r--r--sys/arch/i386/conf/files.i3864
-rw-r--r--sys/arch/i386/i386/conf.c9
-rw-r--r--sys/arch/landisk/landisk/conf.c9
-rw-r--r--sys/arch/loongson/loongson/conf.c10
-rw-r--r--sys/arch/luna88k/luna88k/conf.c9
-rw-r--r--sys/arch/mac68k/mac68k/conf.c10
-rw-r--r--sys/arch/macppc/macppc/conf.c9
-rw-r--r--sys/arch/mvme68k/mvme68k/conf.c9
-rw-r--r--sys/arch/mvme88k/mvme88k/conf.c9
-rw-r--r--sys/arch/octeon/octeon/conf.c10
-rw-r--r--sys/arch/sgi/sgi/conf.c10
-rw-r--r--sys/arch/socppc/socppc/conf.c9
-rw-r--r--sys/arch/sparc/sparc/conf.c7
-rw-r--r--sys/arch/sparc64/sparc64/conf.c7
-rw-r--r--sys/arch/vax/vax/conf.c10
-rw-r--r--sys/conf/GENERIC3
-rw-r--r--sys/conf/files4
-rw-r--r--sys/dev/ccd.c1345
-rw-r--r--sys/dev/ccdvar.h184
-rw-r--r--sys/sys/conf.h5
36 files changed, 96 insertions, 1668 deletions
diff --git a/sys/arch/alpha/alpha/conf.c b/sys/arch/alpha/alpha/conf.c
index 9c3d11cb594..35c539d719e 100644
--- a/sys/arch/alpha/alpha/conf.c
+++ b/sys/arch/alpha/alpha/conf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: conf.c,v 1.66 2011/01/14 19:04:08 jasper Exp $ */
+/* $OpenBSD: conf.c,v 1.67 2011/10/06 20:49:27 deraadt Exp $ */
/* $NetBSD: conf.c,v 1.16 1996/10/18 21:26:57 cgd Exp $ */
/*-
@@ -52,7 +52,6 @@ bdev_decl(fd);
#include "uk.h"
#include "vnd.h"
#include "raid.h"
-#include "ccd.h"
#include "rd.h"
#include "bktr.h"
#include "radio.h"
@@ -66,7 +65,7 @@ struct bdevsw bdevsw[] =
bdev_disk_init(NFD,fd), /* 4: Floppy disk */
bdev_notdef(), /* 5 */
bdev_disk_init(NRD,rd), /* 6: ram disk driver */
- bdev_disk_init(NCCD,ccd), /* 7: concatenated disk driver */
+ bdev_notdef(), /* 7: was: concatenated disk driver */
bdev_disk_init(NSD,sd), /* 8: SCSI disk */
bdev_disk_init(NVND,vnd), /* 9: vnode disk driver */
bdev_lkm_dummy(), /* 10 */
@@ -168,7 +167,7 @@ struct cdevsw cdevsw[] =
cdev_audio_init(NAUDIO,audio), /* 24: generic audio I/O */
cdev_wsdisplay_init(NWSDISPLAY,wsdisplay), /* 25: workstation console */
cdev_tty_init(NCOM,com), /* 26: ns16550 UART */
- cdev_disk_init(NCCD,ccd), /* 27: concatenated disk driver */
+ cdev_notdef(), /* 27: was: concatenated disk driver */
cdev_disk_init(NRD,rd), /* 28: ram disk driver */
cdev_mouse_init(NWSKBD,wskbd), /* 29: /dev/kbd XXX */
cdev_mouse_init(NWSMOUSE,wsmouse), /* 30: /dev/mouse XXX */
@@ -290,7 +289,7 @@ int chrtoblktbl[] = {
/* 24 */ NODEV,
/* 25 */ NODEV,
/* 26 */ NODEV,
- /* 27 */ 7, /* ccd */
+ /* 27 */ NODEV,
/* 28 */ 6, /* rd */
/* 29 */ NODEV,
/* 30 */ NODEV,
diff --git a/sys/arch/alpha/conf/files.alpha b/sys/arch/alpha/conf/files.alpha
index 14f80dc1555..73c31a39268 100644
--- a/sys/arch/alpha/conf/files.alpha
+++ b/sys/arch/alpha/conf/files.alpha
@@ -1,4 +1,4 @@
-# $OpenBSD: files.alpha,v 1.91 2010/12/06 20:10:17 jasper Exp $
+# $OpenBSD: files.alpha,v 1.92 2011/10/06 20:49:28 deraadt Exp $
# $NetBSD: files.alpha,v 1.32 1996/11/25 04:03:21 cgd Exp $
#
# alpha-specific configuration info
@@ -29,7 +29,6 @@ device cpu {} # not really optional
attach cpu at mainbus
file arch/alpha/alpha/cpu.c cpu
-major {ccd = 7}
major {vnd = 9}
#
diff --git a/sys/arch/amd64/amd64/conf.c b/sys/arch/amd64/amd64/conf.c
index 5fb1bb1ea89..bda6fd125fa 100644
--- a/sys/arch/amd64/amd64/conf.c
+++ b/sys/arch/amd64/amd64/conf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: conf.c,v 1.35 2011/07/04 22:53:53 tedu Exp $ */
+/* $OpenBSD: conf.c,v 1.36 2011/10/06 20:49:27 deraadt Exp $ */
/*
* Copyright (c) 1994, 1995 Charles M. Hannum. All rights reserved.
@@ -52,7 +52,6 @@ bdev_decl(fd);
#include "cd.h"
#include "uk.h"
#include "vnd.h"
-#include "ccd.h"
#include "raid.h"
#include "rd.h"
@@ -73,8 +72,8 @@ struct bdevsw bdevsw[] =
bdev_lkm_dummy(), /* 12 */
bdev_lkm_dummy(), /* 13 */
bdev_disk_init(NVND,vnd), /* 14: vnode disk driver */
- bdev_lkm_dummy(), /* 15: Sony CD-ROM */
- bdev_disk_init(NCCD,ccd), /* 16: concatenated disk driver */
+ bdev_notdef(), /* 15: was: Sony CD-ROM */
+ bdev_notdef(), /* 16: was: concatenated disk driver */
bdev_disk_init(NRD,rd), /* 17: ram disk driver */
bdev_lkm_dummy(), /* 18 */
bdev_disk_init(NRAID,raid), /* 19: RAIDframe disk driver */
@@ -209,7 +208,7 @@ struct cdevsw cdevsw[] =
cdev_disk_init(NCD,cd), /* 15: SCSI CD-ROM */
cdev_lpt_init(NLPT,lpt), /* 16: parallel printer */
cdev_ch_init(NCH,ch), /* 17: SCSI autochanger */
- cdev_disk_init(NCCD,ccd), /* 18: concatenated disk driver */
+ cdev_notdef(), /* 18: was: concatenated disk driver */
cdev_notdef(), /* 19 */
cdev_uk_init(NUK,uk), /* 20: unknown SCSI */
cdev_notdef(), /* 21 */
@@ -361,7 +360,7 @@ int chrtoblktbl[] = {
/* 15 */ 6, /* cd */
/* 16 */ NODEV,
/* 17 */ NODEV,
- /* 18 */ 16, /* ccd */
+ /* 18 */ NODEV,
/* 19 */ NODEV,
/* 20 */ NODEV,
/* 21 */ NODEV,
diff --git a/sys/arch/amd64/conf/RAMDISK b/sys/arch/amd64/conf/RAMDISK
index 03f6accc6d6..994ed65a100 100644
--- a/sys/arch/amd64/conf/RAMDISK
+++ b/sys/arch/amd64/conf/RAMDISK
@@ -1,4 +1,4 @@
-# $OpenBSD: RAMDISK,v 1.53 2011/10/04 15:44:17 deraadt Exp $
+# $OpenBSD: RAMDISK,v 1.54 2011/10/06 20:49:28 deraadt Exp $
machine amd64 # architecture, used by config; REQUIRED
@@ -248,5 +248,4 @@ pseudo-device loop 1 # network loopback
#pseudo-device ppp 1 # PPP
pseudo-device bpfilter 1 # packet filter
pseudo-device rd 1 # ramdisk
-#pseudo-device ccd 4 # concatenated disk devices
pseudo-device wsmux 2
diff --git a/sys/arch/amd64/conf/RAMDISK_CD b/sys/arch/amd64/conf/RAMDISK_CD
index cab8eba6789..39ead6e2a6e 100644
--- a/sys/arch/amd64/conf/RAMDISK_CD
+++ b/sys/arch/amd64/conf/RAMDISK_CD
@@ -1,4 +1,4 @@
-# $OpenBSD: RAMDISK_CD,v 1.119 2011/06/29 20:52:08 matthew Exp $
+# $OpenBSD: RAMDISK_CD,v 1.120 2011/10/06 20:49:28 deraadt Exp $
machine amd64 # architecture, used by config; REQUIRED
@@ -333,6 +333,5 @@ pseudo-device loop 1 # network loopback
pseudo-device vlan # IEEE 802.1Q VLAN
pseudo-device bpfilter 1 # packet filter
pseudo-device rd 1 # ramdisk
-pseudo-device ccd 4 # concatenated disk devices
pseudo-device wsmux 2
pseudo-device bio 1 # ioctl multiplexing device
diff --git a/sys/arch/amd64/conf/files.amd64 b/sys/arch/amd64/conf/files.amd64
index 6123bb48730..91b6a289992 100644
--- a/sys/arch/amd64/conf/files.amd64
+++ b/sys/arch/amd64/conf/files.amd64
@@ -1,4 +1,4 @@
-# $OpenBSD: files.amd64,v 1.63 2011/07/07 02:57:24 deraadt Exp $
+# $OpenBSD: files.amd64,v 1.64 2011/10/06 20:49:28 deraadt Exp $
maxpartitions 16
maxusers 2 16 128
@@ -250,7 +250,6 @@ attach vmt at mainbus
# device major numbers
#
-major {ccd = 16}
major {vnd = 14}
major {sd = 4}
major {st = 5}
diff --git a/sys/arch/arm/arm/conf.c b/sys/arch/arm/arm/conf.c
index 5f098ff9f03..4998ea731dc 100644
--- a/sys/arch/arm/arm/conf.c
+++ b/sys/arch/arm/arm/conf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: conf.c,v 1.30 2011/09/16 21:01:45 miod Exp $ */
+/* $OpenBSD: conf.c,v 1.31 2011/10/06 20:49:27 deraadt Exp $ */
/* $NetBSD: conf.c,v 1.10 2002/04/19 01:04:38 wiz Exp $ */
/*
@@ -87,7 +87,6 @@
/*
* Disk/Filesystem pseudo-devices
*/
-#include "ccd.h" /* concatenated disk driver */
#include "rd.h" /* memory disk driver */
#include "raid.h" /* RAIDframe */
#include "vnd.h" /* vnode disk driver */
@@ -181,7 +180,7 @@ struct bdevsw bdevsw[] = {
bdev_disk_init(NRD,rd), /* 18: memory disk */
bdev_disk_init(NVND,vnd), /* 19: vnode disk driver */
bdev_lkm_dummy(), /* 20: */
- bdev_disk_init(NCCD,ccd), /* 21: concatenated disk driver */
+ bdev_notdef(), /* 21: was: concatenated disk driver */
bdev_lkm_dummy(), /* 22: */
bdev_lkm_dummy(), /* 23: */
bdev_disk_init(NSD,sd), /* 24: SCSI disk */
@@ -309,7 +308,7 @@ struct cdevsw cdevsw[] = {
cdev_disk_init(NRD,rd), /* 18: ram disk driver */
cdev_disk_init(NVND,vnd), /* 19: vnode disk driver */
cdev_lkm_dummy(), /* 20: */
- cdev_disk_init(NCCD,ccd), /* 21: concatenated disk driver */
+ cdev_notdef(), /* 21: was: concatenated disk driver */
cdev_bpf_init(NBPFILTER,bpf), /* 22: Berkeley packet filter */
cdev_lkm_dummy(), /* 23: */
cdev_disk_init(NSD,sd), /* 24: SCSI disk */
@@ -463,7 +462,7 @@ int chrtoblktbl[] = {
/* 18 */ 18, /* rd */
/* 19 */ 19, /* vnd */
/* 20 */ NODEV,
- /* 21 */ 21, /* ccd */
+ /* 21 */ NODEV,
/* 22 */ NODEV,
/* 23 */ NODEV,
/* 24 */ 24, /* sd */
diff --git a/sys/arch/aviion/aviion/conf.c b/sys/arch/aviion/aviion/conf.c
index 170afc4c748..bb3839a9679 100644
--- a/sys/arch/aviion/aviion/conf.c
+++ b/sys/arch/aviion/aviion/conf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: conf.c,v 1.14 2011/01/14 19:04:08 jasper Exp $ */
+/* $OpenBSD: conf.c,v 1.15 2011/10/06 20:49:27 deraadt Exp $ */
/*-
* Copyright (c) 1991 The Regents of the University of California.
@@ -41,7 +41,6 @@
#include <machine/conf.h>
#include "bpfilter.h"
-#include "ccd.h"
#include "cd.h"
#include "ch.h"
#include "dart.h"
@@ -76,7 +75,7 @@ struct bdevsw bdevsw[] =
bdev_disk_init(NCD,cd), /* 6: SCSI CD-ROM */
bdev_disk_init(NRD,rd), /* 7: ramdisk */
bdev_disk_init(NVND,vnd), /* 8: vnode disk driver */
- bdev_disk_init(NCCD,ccd), /* 9: concatenated disk driver */
+ bdev_notdef(), /* 9: was: concatenated disk driver */
bdev_notdef(), /* 10 */
bdev_notdef(), /* 11 */
bdev_notdef(), /* 12 */
@@ -108,7 +107,7 @@ struct cdevsw cdevsw[] =
cdev_notdef(), /* 14 */
cdev_notdef(), /* 15 */
cdev_notdef(), /* 16 */
- cdev_disk_init(NCCD,ccd), /* 17: concatenated disk */
+ cdev_notdef(), /* 17: was: concatenated disk */
cdev_disk_init(NRD,rd), /* 18: ramdisk disk */
cdev_disk_init(NVND,vnd), /* 19: vnode disk */
cdev_tape_init(NST,st), /* 20: SCSI tape */
@@ -215,7 +214,7 @@ int chrtoblktbl[] = {
/* 14 */ NODEV,
/* 15 */ NODEV,
/* 16 */ NODEV,
- /* 17 */ 9, /* ccd */
+ /* 17 */ NODEV,
/* 18 */ 7, /* rd */
/* 19 */ 8, /* vnd */
/* 20 */ 5, /* st */
diff --git a/sys/arch/hp300/hp300/conf.c b/sys/arch/hp300/hp300/conf.c
index c9e4911c160..396fe62449a 100644
--- a/sys/arch/hp300/hp300/conf.c
+++ b/sys/arch/hp300/hp300/conf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: conf.c,v 1.51 2011/01/14 19:04:08 jasper Exp $ */
+/* $OpenBSD: conf.c,v 1.52 2011/10/06 20:49:27 deraadt Exp $ */
/* $NetBSD: conf.c,v 1.39 1997/05/12 08:17:53 thorpej Exp $ */
/*-
@@ -40,7 +40,6 @@
#include <sys/conf.h>
#include <sys/vnode.h>
-#include "ccd.h"
#include "cd.h"
#include "ch.h"
#include "ct.h"
@@ -62,7 +61,7 @@ struct bdevsw bdevsw[] =
bdev_disk_init(NHD,hd), /* 2: HPIB disk */
bdev_swap_init(1,sw), /* 3: swap pseudo-device */
bdev_disk_init(NSD,sd), /* 4: SCSI disk */
- bdev_disk_init(NCCD,ccd), /* 5: concatenated disk driver */
+ bdev_notdef(), /* 5: was: concatenated disk driver */
bdev_disk_init(NVND,vnd), /* 6: vnode disk driver */
bdev_tape_init(NST,st), /* 7: SCSI tape */
bdev_disk_init(NRD,rd), /* 8: RAM disk */
@@ -135,7 +134,7 @@ struct cdevsw cdevsw[] =
cdev_notdef(), /* 14: was human interface loop */
cdev_tty_init(NDCM,dcm), /* 15: 4-port serial */
cdev_tape_init(NMT,mt), /* 16: magnetic reel tape */
- cdev_disk_init(NCCD,ccd), /* 17: concatenated disk */
+ cdev_notdef(), /* 17: was: concatenated disk */
cdev_disk_init(NCD,cd), /* 18: SCSI CD-ROM */
cdev_disk_init(NVND,vnd), /* 19: vnode disk driver */
cdev_tape_init(NST,st), /* 20: SCSI tape */
@@ -243,7 +242,7 @@ int chrtoblktbl[] = {
/* 14 */ NODEV,
/* 15 */ NODEV,
/* 16 */ 1, /* mt */
- /* 17 */ 5, /* ccd */
+ /* 17 */ NODEV,
/* 18 */ 9, /* cd */
/* 19 */ 6, /* vnd */
/* 20 */ 7, /* st */
diff --git a/sys/arch/hppa/conf/RAMDISK b/sys/arch/hppa/conf/RAMDISK
index 5fe1e7f052f..d6dbce87fdd 100644
--- a/sys/arch/hppa/conf/RAMDISK
+++ b/sys/arch/hppa/conf/RAMDISK
@@ -1,4 +1,4 @@
-# $OpenBSD: RAMDISK,v 1.93 2011/06/29 20:52:09 matthew Exp $
+# $OpenBSD: RAMDISK,v 1.94 2011/10/06 20:49:28 deraadt Exp $
#
# Diskless kernel config
#
@@ -330,6 +330,5 @@ pseudo-device loop 1 # network loopback
pseudo-device bpfilter 1 # packet filter
pseudo-device vlan # IEEE 802.1Q VLAN
pseudo-device ksyms 1 # kernel symbols device
-#pseudo-device ccd 4 # concatenated disk devices
pseudo-device wsmux 2
pseudo-device bio 1 # ioctl multiplexing device
diff --git a/sys/arch/hppa/conf/files.hppa b/sys/arch/hppa/conf/files.hppa
index f5e7d0cbcee..821c30707ef 100644
--- a/sys/arch/hppa/conf/files.hppa
+++ b/sys/arch/hppa/conf/files.hppa
@@ -1,4 +1,4 @@
-# $OpenBSD: files.hppa,v 1.88 2011/04/10 02:54:46 deraadt Exp $
+# $OpenBSD: files.hppa,v 1.89 2011/10/06 20:49:28 deraadt Exp $
#
# hppa-specific configuration info
@@ -212,7 +212,6 @@ file arch/hppa/dev/lpt_ssio.c lpt_ssio
###
-major {ccd = 1}
major {vnd = 2}
major {rd = 3}
diff --git a/sys/arch/hppa/hppa/conf.c b/sys/arch/hppa/hppa/conf.c
index b45a1ef33c3..0510d84de25 100644
--- a/sys/arch/hppa/hppa/conf.c
+++ b/sys/arch/hppa/hppa/conf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: conf.c,v 1.53 2011/01/14 19:04:08 jasper Exp $ */
+/* $OpenBSD: conf.c,v 1.54 2011/10/06 20:49:28 deraadt Exp $ */
/*-
* Copyright (c) 1991 The Regents of the University of California.
@@ -40,7 +40,6 @@
#include <machine/conf.h>
-#include "ccd.h"
#include "vnd.h"
#include "rd.h"
#include "sd.h"
@@ -62,7 +61,7 @@ cdev_decl(fd);
struct bdevsw bdevsw[] =
{
bdev_swap_init(1,sw), /* 0: swap pseudo-device */
- bdev_disk_init(NCCD,ccd), /* 1: concatenated disk driver */
+ bdev_notdef(), /* 1: was: concatenated disk driver */
bdev_disk_init(NVND,vnd), /* 2: vnode disk driver */
bdev_disk_init(NRD,rd), /* 3: RAM disk */
bdev_disk_init(NSD,sd), /* 4: SCSI disk */
@@ -135,7 +134,7 @@ struct cdevsw cdevsw[] =
cdev_tty_init(NPTY,pts), /* 4: pseudo-tty slave */
cdev_ptc_init(NPTY,ptc), /* 5: pseudo-tty master */
cdev_log_init(1,log), /* 6: /dev/klog */
- cdev_disk_init(NCCD,ccd), /* 7: concatenated disk */
+ cdev_notdef(), /* 7: was: concatenated disk */
cdev_disk_init(NVND,vnd), /* 8: vnode disk driver */
cdev_disk_init(NRD,rd), /* 9: RAM disk */
cdev_disk_init(NSD,sd), /* 10: SCSI disk */
@@ -221,7 +220,7 @@ int chrtoblktbl[] = {
/* 4 */ NODEV,
/* 5 */ NODEV,
/* 6 */ NODEV,
- /* 7 */ 1, /* ccd */
+ /* 7 */ NODEV,
/* 8 */ 2, /* vnd */
/* 9 */ 3, /* rd */
/* 10 */ 4, /* sd */
diff --git a/sys/arch/hppa64/conf/RAMDISK b/sys/arch/hppa64/conf/RAMDISK
index 533915a7738..35a7cb25ebc 100644
--- a/sys/arch/hppa64/conf/RAMDISK
+++ b/sys/arch/hppa64/conf/RAMDISK
@@ -1,4 +1,4 @@
-# $OpenBSD: RAMDISK,v 1.12 2011/06/29 20:52:09 matthew Exp $
+# $OpenBSD: RAMDISK,v 1.13 2011/10/06 20:49:28 deraadt Exp $
#
# Diskless kernel config
#
@@ -186,4 +186,3 @@ pseudo-device loop 1 # network loopback
pseudo-device bpfilter 1 # packet filter
pseudo-device pty 16 # pseudo-terminals
pseudo-device ksyms 1 # kernel symbols device
-pseudo-device ccd 4 # concatenated disk devices
diff --git a/sys/arch/hppa64/conf/files.hppa64 b/sys/arch/hppa64/conf/files.hppa64
index 8a8641c0e50..ebf70d44e9a 100644
--- a/sys/arch/hppa64/conf/files.hppa64
+++ b/sys/arch/hppa64/conf/files.hppa64
@@ -1,4 +1,4 @@
-# $OpenBSD: files.hppa64,v 1.15 2011/08/07 20:39:39 kettenis Exp $
+# $OpenBSD: files.hppa64,v 1.16 2011/10/06 20:49:28 deraadt Exp $
#
# hppa64-specific configuration info
@@ -114,7 +114,6 @@ file arch/hppa64/dev/com_ssio.c com_ssio
###
-major {ccd = 1}
major {vnd = 2}
major {rd = 3}
diff --git a/sys/arch/hppa64/hppa64/conf.c b/sys/arch/hppa64/hppa64/conf.c
index 9b232b27392..9ad3f5d7531 100644
--- a/sys/arch/hppa64/hppa64/conf.c
+++ b/sys/arch/hppa64/hppa64/conf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: conf.c,v 1.20 2011/09/22 21:51:24 jsing Exp $ */
+/* $OpenBSD: conf.c,v 1.21 2011/10/06 20:49:28 deraadt Exp $ */
/*-
* Copyright (c) 1991 The Regents of the University of California.
@@ -40,7 +40,6 @@
#include <machine/conf.h>
-#include "ccd.h"
#include "vnd.h"
#include "rd.h"
#include "sd.h"
@@ -62,7 +61,7 @@ cdev_decl(fd);
struct bdevsw bdevsw[] =
{
bdev_swap_init(1,sw), /* 0: swap pseudo-device */
- bdev_disk_init(NCCD,ccd), /* 1: concatenated disk driver */
+ bdev_notdef(), /* 1: was: concatenated disk driver */
bdev_disk_init(NVND,vnd), /* 2: vnode disk driver */
bdev_disk_init(NRD,rd), /* 3: RAM disk */
bdev_disk_init(NSD,sd), /* 4: SCSI disk */
@@ -135,7 +134,7 @@ struct cdevsw cdevsw[] =
cdev_tty_init(NPTY,pts), /* 4: pseudo-tty slave */
cdev_ptc_init(NPTY,ptc), /* 5: pseudo-tty master */
cdev_log_init(1,log), /* 6: /dev/klog */
- cdev_disk_init(NCCD,ccd), /* 7: concatenated disk */
+ cdev_notdef(), /* 7: was: concatenated disk */
cdev_disk_init(NVND,vnd), /* 8: vnode disk driver */
cdev_disk_init(NRD,rd), /* 9: RAM disk */
cdev_disk_init(NSD,sd), /* 10: SCSI disk */
@@ -221,7 +220,7 @@ int chrtoblktbl[] = {
/* 4 */ NODEV,
/* 5 */ NODEV,
/* 6 */ NODEV,
- /* 7 */ 1, /* ccd */
+ /* 7 */ NODEV,
/* 8 */ 2, /* vnd */
/* 9 */ 3, /* rd */
/* 10 */ 4, /* sd */
diff --git a/sys/arch/i386/conf/RAMDISK_CD b/sys/arch/i386/conf/RAMDISK_CD
index d6a6579c0ae..c63a2e718ac 100644
--- a/sys/arch/i386/conf/RAMDISK_CD
+++ b/sys/arch/i386/conf/RAMDISK_CD
@@ -1,4 +1,4 @@
-# $OpenBSD: RAMDISK_CD,v 1.190 2011/06/29 20:52:09 matthew Exp $
+# $OpenBSD: RAMDISK_CD,v 1.191 2011/10/06 20:49:28 deraadt Exp $
machine i386 # architecture, used by config; REQUIRED
@@ -408,6 +408,5 @@ pseudo-device loop 1 # network loopback
pseudo-device vlan # IEEE 802.1Q VLAN
pseudo-device bpfilter 1 # packet filter
pseudo-device rd 1 # ramdisk
-pseudo-device ccd 4 # concatenated disk devices
pseudo-device wsmux 2
pseudo-device bio 1 # ioctl multiplexing device
diff --git a/sys/arch/i386/conf/files.i386 b/sys/arch/i386/conf/files.i386
index 83028a3ec64..516fbee3f20 100644
--- a/sys/arch/i386/conf/files.i386
+++ b/sys/arch/i386/conf/files.i386
@@ -1,4 +1,4 @@
-# $OpenBSD: files.i386,v 1.207 2011/07/08 20:15:09 ariane Exp $
+# $OpenBSD: files.i386,v 1.208 2011/10/06 20:49:28 deraadt Exp $
#
# new style config file for i386 architecture
#
@@ -8,8 +8,6 @@ maxpartitions 16
maxusers 2 16 100
-major {ccd = 16}
-
file arch/i386/i386/autoconf.c
file arch/i386/i386/bus_space.c
file arch/i386/i386/bus_dma.c
diff --git a/sys/arch/i386/i386/conf.c b/sys/arch/i386/i386/conf.c
index 5bc677714c5..918ff59d360 100644
--- a/sys/arch/i386/i386/conf.c
+++ b/sys/arch/i386/i386/conf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: conf.c,v 1.138 2011/07/04 22:53:53 tedu Exp $ */
+/* $OpenBSD: conf.c,v 1.139 2011/10/06 20:49:28 deraadt Exp $ */
/* $NetBSD: conf.c,v 1.75 1996/05/03 19:40:20 christos Exp $ */
/*
@@ -53,7 +53,6 @@ bdev_decl(fd);
#include "cd.h"
#include "uk.h"
#include "vnd.h"
-#include "ccd.h"
#include "raid.h"
#include "rd.h"
@@ -75,7 +74,7 @@ struct bdevsw bdevsw[] =
bdev_lkm_dummy(), /* 13 */
bdev_disk_init(NVND,vnd), /* 14: vnode disk driver */
bdev_notdef(), /* 15 */
- bdev_disk_init(NCCD,ccd), /* 16: concatenated disk driver */
+ bdev_notdef(), /* 16: was: concatenated disk driver */
bdev_disk_init(NRD,rd), /* 17: ram disk driver */
bdev_notdef(), /* 18 */
bdev_disk_init(NRAID,raid), /* 19: RAIDframe disk driver */
@@ -213,7 +212,7 @@ struct cdevsw cdevsw[] =
cdev_disk_init(NCD,cd), /* 15: SCSI CD-ROM */
cdev_lpt_init(NLPT,lpt), /* 16: parallel printer */
cdev_ch_init(NCH,ch), /* 17: SCSI autochanger */
- cdev_disk_init(NCCD,ccd), /* 18: concatenated disk driver */
+ cdev_notdef(), /* 18: was: concatenated disk driver */
cdev_notdef(), /* 19 */
cdev_uk_init(NUK,uk), /* 20: unknown SCSI */
cdev_acpiapm_init(1,acpiapm), /* 21: Power Management stuff */
@@ -364,7 +363,7 @@ int chrtoblktbl[] = {
/* 15 */ 6, /* cd */
/* 16 */ NODEV,
/* 17 */ NODEV,
- /* 18 */ 16, /* ccd */
+ /* 18 */ NODEV,
/* 19 */ NODEV,
/* 20 */ NODEV,
/* 21 */ NODEV,
diff --git a/sys/arch/landisk/landisk/conf.c b/sys/arch/landisk/landisk/conf.c
index a7f8d89657c..8842f3bf04c 100644
--- a/sys/arch/landisk/landisk/conf.c
+++ b/sys/arch/landisk/landisk/conf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: conf.c,v 1.20 2011/09/16 21:01:45 miod Exp $ */
+/* $OpenBSD: conf.c,v 1.21 2011/10/06 20:49:28 deraadt Exp $ */
/*
* Copyright (c) 1994-1998 Mark Brinicombe.
@@ -78,7 +78,6 @@
/*
* Disk/Filesystem pseudo-devices
*/
-#include "ccd.h" /* concatenated disk driver */
#include "rd.h" /* memory disk driver */
#include "raid.h" /* RAIDframe */
#include "vnd.h" /* vnode disk driver */
@@ -168,7 +167,7 @@ struct bdevsw bdevsw[] = {
bdev_disk_init(NRD,rd), /* 18: memory disk */
bdev_disk_init(NVND,vnd), /* 19: vnode disk driver */
bdev_lkm_dummy(), /* 20: */
- bdev_disk_init(NCCD,ccd), /* 21: concatenated disk driver */
+ bdev_notdef(), /* 21: was: concatenated disk driver */
bdev_lkm_dummy(), /* 22: */
bdev_lkm_dummy(), /* 23: */
bdev_disk_init(NSD,sd), /* 24: SCSI disk */
@@ -285,7 +284,7 @@ struct cdevsw cdevsw[] = {
cdev_disk_init(NRD,rd), /* 18: ram disk driver */
cdev_disk_init(NVND,vnd), /* 19: vnode disk driver */
cdev_lkm_dummy(), /* 20: */
- cdev_disk_init(NCCD,ccd), /* 21: concatenated disk driver */
+ cdev_notdef(), /* 21: was: concatenated disk driver */
cdev_bpf_init(NBPFILTER,bpf), /* 22: Berkeley packet filter */
cdev_lkm_dummy(), /* 23: */
cdev_disk_init(NSD,sd), /* 24: SCSI disk */
@@ -438,7 +437,7 @@ int chrtoblktbl[] = {
/* 18 */ 18, /* rd */
/* 19 */ 19, /* vnd */
/* 20 */ NODEV,
- /* 21 */ 21, /* ccd */
+ /* 21 */ NODEV,
/* 22 */ NODEV,
/* 23 */ NODEV,
/* 24 */ 24, /* sd */
diff --git a/sys/arch/loongson/loongson/conf.c b/sys/arch/loongson/loongson/conf.c
index 4d2feded3ea..ae2e77ce174 100644
--- a/sys/arch/loongson/loongson/conf.c
+++ b/sys/arch/loongson/loongson/conf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: conf.c,v 1.12 2011/01/14 19:04:08 jasper Exp $ */
+/* $OpenBSD: conf.c,v 1.13 2011/10/06 20:49:28 deraadt Exp $ */
/*
* Copyright (c) 1992, 1993
@@ -56,7 +56,6 @@
#include "st.h"
#include "wd.h"
bdev_decl(wd);
-#include "ccd.h"
#include "rd.h"
#include "hotplug.h"
@@ -68,7 +67,7 @@ struct bdevsw bdevsw[] =
bdev_disk_init(NCD,cd), /* 3: SCSI CD-ROM */
bdev_disk_init(NWD,wd), /* 4: ST506/ESDI/IDE disk */
bdev_notdef(), /* 5: */
- bdev_disk_init(NCCD,ccd), /* 6: concatenated disk driver */
+ bdev_notdef(), /* 6: was: concatenated disk driver */
bdev_notdef(), /* 7: */
bdev_disk_init(NRD,rd), /* 8: RAM disk (for install) */
bdev_notdef(), /* 9: */
@@ -161,7 +160,7 @@ struct cdevsw cdevsw[] =
cdev_notdef(), /* 20: */
cdev_notdef(), /* 21: */
cdev_disk_init(NRD,rd), /* 22: ramdisk device */
- cdev_disk_init(NCCD,ccd), /* 23: concatenated disk driver */
+ cdev_notdef(), /* 23: was: concatenated disk driver */
cdev_notdef(), /* 24: */
cdev_wsdisplay_init(NWSDISPLAY, wsdisplay), /* 25: */
cdev_mouse_init(NWSKBD, wskbd), /* 26: */
@@ -290,8 +289,7 @@ int chrtoblktbl[] = {
/* 19 */ NODEV,
/* 20 */ NODEV,
/* 21 */ NODEV,
- /* 22 */ 8, /* rd */
- /* 23 */ 6 /* ccd */
+ /* 22 */ 8 /* rd */
};
int nchrtoblktbl = nitems(chrtoblktbl);
diff --git a/sys/arch/luna88k/luna88k/conf.c b/sys/arch/luna88k/luna88k/conf.c
index 538a2a16ea2..809febbcf5e 100644
--- a/sys/arch/luna88k/luna88k/conf.c
+++ b/sys/arch/luna88k/luna88k/conf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: conf.c,v 1.16 2011/01/14 19:04:08 jasper Exp $ */
+/* $OpenBSD: conf.c,v 1.17 2011/10/06 20:49:28 deraadt Exp $ */
/*-
* Copyright (c) 1991 The Regents of the University of California.
@@ -45,7 +45,6 @@
#include "bpfilter.h"
#include "tun.h"
#include "vnd.h"
-#include "ccd.h"
#include "rd.h"
#include "cd.h"
#include "ch.h"
@@ -83,7 +82,7 @@ struct bdevsw bdevsw[] =
bdev_disk_init(NCD,cd), /* 6: SCSI CD-ROM */
bdev_disk_init(NRD,rd), /* 7: ramdisk */
bdev_disk_init(NVND,vnd), /* 8: vnode disk driver */
- bdev_disk_init(NCCD,ccd), /* 9: concatenated disk driver */
+ bdev_notdef(), /* 9: was: concatenated disk driver */
bdev_notdef(), /* 10 */
bdev_notdef(), /* 11 */
bdev_notdef(), /* 12 */
@@ -117,7 +116,7 @@ struct cdevsw cdevsw[] =
cdev_mouse_init(NWSMOUSE, /* 15: mouse */
wsmouse),
cdev_mouse_init(NWSMUX,wsmux), /* 16: ws multiplexor */
- cdev_disk_init(NCCD,ccd), /* 17: concatenated disk */
+ cdev_notdef(), /* 17: was: concatenated disk */
cdev_disk_init(NRD,rd), /* 18: ramdisk disk */
cdev_disk_init(NVND,vnd), /* 19: vnode disk */
cdev_tape_init(NST,st), /* 20: SCSI tape */
@@ -224,7 +223,7 @@ int chrtoblktbl[] = {
/* 14 */ NODEV,
/* 15 */ NODEV,
/* 16 */ NODEV,
- /* 17 */ 9, /* ccd */
+ /* 17 */ NODEV,
/* 18 */ 7, /* rd */
/* 19 */ 8, /* vnd */
/* 20 */ 5, /* st */
diff --git a/sys/arch/mac68k/mac68k/conf.c b/sys/arch/mac68k/mac68k/conf.c
index 7808b0b0ad6..cccd2f4827c 100644
--- a/sys/arch/mac68k/mac68k/conf.c
+++ b/sys/arch/mac68k/mac68k/conf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: conf.c,v 1.48 2011/01/14 19:04:08 jasper Exp $ */
+/* $OpenBSD: conf.c,v 1.49 2011/10/06 20:49:28 deraadt Exp $ */
/* $NetBSD: conf.c,v 1.41 1997/02/11 07:35:49 scottr Exp $ */
/*
@@ -48,7 +48,6 @@
#include "cd.h"
#include "ch.h"
#include "vnd.h"
-#include "ccd.h"
#include "rd.h"
struct bdevsw bdevsw[] =
@@ -62,7 +61,7 @@ struct bdevsw bdevsw[] =
bdev_disk_init(NCD,cd), /* 6: SCSI CD-ROM */
bdev_notdef(), /* 7 */
bdev_disk_init(NVND,vnd), /* 8: vnode disk driver */
- bdev_disk_init(NCCD,ccd), /* 9: concatenated disk driver */
+ bdev_notdef(), /* 9: was: concatenated disk driver */
bdev_notdef(), /* 10 */
bdev_notdef(), /* 11 */
bdev_notdef(), /* 12 */
@@ -130,7 +129,7 @@ struct cdevsw cdevsw[] =
cdev_ch_init(NCH,ch), /* 17: SCSI autochanger */
cdev_disk_init(NRD,rd), /* 18: ramdisk device */
cdev_disk_init(NVND,vnd), /* 19: vnode disk driver */
- cdev_disk_init(NCCD,ccd), /* 20: concatenated disk driver */
+ cdev_notdef(), /* 20: was: concatenated disk driver */
cdev_fd_init(1,filedesc), /* 21: file descriptor pseudo-device */
cdev_bpf_init(NBPFILTER,bpf), /* 22: Berkeley packet filter */
cdev_notdef(), /* 23 was ADB */
@@ -236,8 +235,7 @@ int chrtoblktbl[] = {
/* 16 */ NODEV,
/* 17 */ NODEV,
/* 18 */ 13, /* rd */
- /* 19 */ 8, /* vnd */
- /* 20 */ 9, /* ccd */
+ /* 19 */ 8 /* vnd */
};
int nchrtoblktbl = nitems(chrtoblktbl);
diff --git a/sys/arch/macppc/macppc/conf.c b/sys/arch/macppc/macppc/conf.c
index 3703fb44ac6..0606b2d53cf 100644
--- a/sys/arch/macppc/macppc/conf.c
+++ b/sys/arch/macppc/macppc/conf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: conf.c,v 1.45 2011/04/19 23:07:54 todd Exp $ */
+/* $OpenBSD: conf.c,v 1.46 2011/10/06 20:49:28 deraadt Exp $ */
/*
* Copyright (c) 1997 Per Fogelstrom
@@ -51,7 +51,6 @@ bdev_decl(wd);
cdev_decl(wd);
#include "vnd.h"
-#include "ccd.h"
#include "raid.h"
struct bdevsw bdevsw[] = {
@@ -71,7 +70,7 @@ struct bdevsw bdevsw[] = {
bdev_lkm_dummy(), /* 13 */
bdev_disk_init(NVND,vnd), /* 14 vnode disk driver*/
bdev_notdef(), /* 15 unknown*/
- bdev_disk_init(NCCD,ccd), /* 16 concatenated disk driver*/
+ bdev_notdef(), /* 16 was: concatenated disk driver*/
bdev_disk_init(NRD,rd), /* 17 ram disk driver*/
bdev_notdef(), /* 18 unknown*/
bdev_disk_init(NRAID,raid), /* 19: RAIDframe disk driver */
@@ -165,7 +164,7 @@ struct cdevsw cdevsw[] = {
cdev_notdef(), /* 15 */
cdev_notdef(), /* 16 */
cdev_disk_init(NRD,rd), /* 17 ram disk driver*/
- cdev_disk_init(NCCD,ccd), /* 18 concatenated disk driver */
+ cdev_notdef(), /* 18 was: concatenated disk driver */
cdev_disk_init(NVND,vnd), /* 19: vnode disk */
cdev_tape_init(NST,st), /* 20: SCSI tape */
cdev_fd_init(1,filedesc), /* 21: file descriptor pseudo-dev */
@@ -300,7 +299,7 @@ int chrtoblktbl[] = {
/* 15 */ NODEV,
/* 16 */ NODEV,
/* 17 */ 17, /* rd */
- /* 18 */ 16, /* ccd */
+ /* 18 */ NODEV,
/* 19 */ 14, /* vnd */
/* 20 */ 5, /* st */
/* 21 */ NODEV,
diff --git a/sys/arch/mvme68k/mvme68k/conf.c b/sys/arch/mvme68k/mvme68k/conf.c
index c2e7b28d8f9..8dd9be0d16f 100644
--- a/sys/arch/mvme68k/mvme68k/conf.c
+++ b/sys/arch/mvme68k/mvme68k/conf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: conf.c,v 1.52 2011/01/14 19:04:08 jasper Exp $ */
+/* $OpenBSD: conf.c,v 1.53 2011/10/06 20:49:28 deraadt Exp $ */
/*-
* Copyright (c) 1995 Theo de Raadt
@@ -73,7 +73,6 @@
bdev_decl(xd);
#endif
#include "vnd.h"
-#include "ccd.h"
#include "rd.h"
struct bdevsw bdevsw[] =
@@ -83,7 +82,7 @@ struct bdevsw bdevsw[] =
bdev_notdef(), /* 2 */
bdev_swap_init(1,sw), /* 3: swap pseudo-device */
bdev_disk_init(NSD,sd), /* 4: SCSI disk */
- bdev_disk_init(NCCD,ccd), /* 5: concatenated disk driver */
+ bdev_notdef(), /* 5: was: concatenated disk driver */
bdev_disk_init(NVND,vnd), /* 6: vnode disk driver */
bdev_tape_init(NST,st), /* 7: SCSI tape */
bdev_disk_init(NCD,cd), /* 8: SCSI CD-ROM */
@@ -174,7 +173,7 @@ struct cdevsw cdevsw[] =
cdev_tty_init(NDART,dart), /* 14: MC68681 serial (ttyd[0-1]) */
cdev_notdef(), /* 15 */
cdev_notdef(), /* 16 */
- cdev_disk_init(NCCD,ccd), /* 17: concatenated disk */
+ cdev_notdef(), /* 17: was: concatenated disk */
cdev_disk_init(NRD,rd), /* 18: ramdisk device */
cdev_disk_init(NVND,vnd), /* 19: vnode disk */
cdev_tape_init(NST,st), /* 20: SCSI tape */
@@ -285,7 +284,7 @@ int chrtoblktbl[] = {
/* 14 */ NODEV,
/* 15 */ NODEV,
/* 16 */ NODEV,
- /* 17 */ 5, /* ccd */
+ /* 17 */ NODEV,
/* 18 */ 9, /* rd */
/* 19 */ 6, /* vnd */
/* 20 */ 7, /* st */
diff --git a/sys/arch/mvme88k/mvme88k/conf.c b/sys/arch/mvme88k/mvme88k/conf.c
index c23c72b249f..71dbd9c4037 100644
--- a/sys/arch/mvme88k/mvme88k/conf.c
+++ b/sys/arch/mvme88k/mvme88k/conf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: conf.c,v 1.45 2011/10/06 19:50:59 deraadt Exp $ */
+/* $OpenBSD: conf.c,v 1.46 2011/10/06 20:49:28 deraadt Exp $ */
/*-
* Copyright (c) 1991 The Regents of the University of California.
@@ -45,7 +45,6 @@
#include "bpfilter.h"
#include "tun.h"
#include "vnd.h"
-#include "ccd.h"
#include "rd.h"
#include "cd.h"
#include "ch.h"
@@ -116,7 +115,7 @@ struct bdevsw bdevsw[] =
bdev_disk_init(NCD,cd), /* 6: SCSI CD-ROM */
bdev_disk_init(NRD,rd), /* 7: ramdisk */
bdev_disk_init(NVND,vnd), /* 8: vnode disk driver */
- bdev_disk_init(NCCD,ccd), /* 9: concatenated disk driver */
+ bdev_notdef(), /* 9: was: concatenated disk driver */
#if notyet
bdev_disk_init(NXD,xd), /* 10: XD disk */
#else
@@ -156,7 +155,7 @@ struct cdevsw cdevsw[] =
cdev_notdef(), /* 14 */
cdev_tty_init(NVX,vx), /* 15: MVME332XT serial/lpt ttyv[0-7][a-i] */
cdev_notdef(), /* 16 */
- cdev_disk_init(NCCD,ccd), /* 17: concatenated disk */
+ cdev_notdef(), /* 17: was: concatenated disk */
cdev_disk_init(NRD,rd), /* 18: ramdisk disk */
cdev_disk_init(NVND,vnd), /* 19: vnode disk */
cdev_tape_init(NST,st), /* 20: SCSI tape */
@@ -272,7 +271,7 @@ int chrtoblktbl[] = {
/* 14 */ NODEV,
/* 15 */ NODEV,
/* 16 */ NODEV,
- /* 17 */ 9, /* ccd */
+ /* 17 */ NODEV,
/* 18 */ 7, /* rd */
/* 19 */ 8, /* vnd */
/* 20 */ 5, /* st */
diff --git a/sys/arch/octeon/octeon/conf.c b/sys/arch/octeon/octeon/conf.c
index 892ed1f1795..6ea993635f4 100644
--- a/sys/arch/octeon/octeon/conf.c
+++ b/sys/arch/octeon/octeon/conf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: conf.c,v 1.6 2011/01/14 19:04:08 jasper Exp $ */
+/* $OpenBSD: conf.c,v 1.7 2011/10/06 20:49:28 deraadt Exp $ */
/*
* Copyright (c) 1992, 1993
@@ -56,7 +56,6 @@
#include "st.h"
#include "wd.h"
bdev_decl(wd);
-#include "ccd.h"
#include "rd.h"
#include "hotplug.h"
@@ -71,7 +70,7 @@ struct bdevsw bdevsw[] =
bdev_disk_init(NCD,cd), /* 3: SCSI CD-ROM */
bdev_disk_init(NWD,wd), /* 4: ST506/ESDI/IDE disk */
bdev_notdef(), /* 5: */
- bdev_disk_init(NCCD,ccd), /* 6: concatenated disk driver */
+ bdev_notdef(), /* 6: was: concatenated disk driver */
bdev_notdef(), /* 7: */
bdev_disk_init(NRD,rd), /* 8: RAM disk (for install) */
bdev_notdef(), /* 9: */
@@ -172,7 +171,7 @@ struct cdevsw cdevsw[] =
cdev_notdef(), /* 20: */
cdev_notdef(), /* 21: */
cdev_disk_init(NRD,rd), /* 22: ramdisk device */
- cdev_disk_init(NCCD,ccd), /* 23: concatenated disk driver */
+ cdev_notdef(), /* 23: was: concatenated disk driver */
cdev_notdef(), /* 24: */
cdev_wsdisplay_init(NWSDISPLAY, wsdisplay), /* 25: */
cdev_mouse_init(NWSKBD, wskbd), /* 26: */
@@ -301,8 +300,7 @@ int chrtoblktbl[] = {
/* 19 */ NODEV,
/* 20 */ NODEV,
/* 21 */ NODEV,
- /* 22 */ 8, /* rd */
- /* 23 */ 6 /* ccd */
+ /* 22 */ 8 /* rd */
};
int nchrtoblktbl = nitems(chrtoblktbl);
diff --git a/sys/arch/sgi/sgi/conf.c b/sys/arch/sgi/sgi/conf.c
index 424ed569bb8..9a229de9161 100644
--- a/sys/arch/sgi/sgi/conf.c
+++ b/sys/arch/sgi/sgi/conf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: conf.c,v 1.28 2011/01/14 19:04:08 jasper Exp $ */
+/* $OpenBSD: conf.c,v 1.29 2011/10/06 20:49:28 deraadt Exp $ */
/*
* Copyright (c) 1992, 1993
@@ -56,7 +56,6 @@
#include "st.h"
#include "wd.h"
bdev_decl(wd);
-#include "ccd.h"
#include "rd.h"
#include "hotplug.h"
@@ -68,7 +67,7 @@ struct bdevsw bdevsw[] =
bdev_disk_init(NCD,cd), /* 3: SCSI CD-ROM */
bdev_disk_init(NWD,wd), /* 4: ST506/ESDI/IDE disk */
bdev_notdef(), /* 5: */
- bdev_disk_init(NCCD,ccd), /* 6: concatenated disk driver */
+ bdev_notdef(), /* 6: was: concatenated disk driver */
bdev_notdef(), /* 7: */
bdev_disk_init(NRD,rd), /* 8: RAM disk (for install) */
bdev_notdef(), /* 9: */
@@ -159,7 +158,7 @@ struct cdevsw cdevsw[] =
cdev_notdef(), /* 20: */
cdev_notdef(), /* 21: */
cdev_disk_init(NRD,rd), /* 22: ramdisk device */
- cdev_disk_init(NCCD,ccd), /* 23: concatenated disk driver */
+ cdev_notdef(), /* 23: was: concatenated disk driver */
cdev_notdef(), /* 24: */
cdev_wsdisplay_init(NWSDISPLAY, wsdisplay), /* 25: */
cdev_mouse_init(NWSKBD, wskbd), /* 26: */
@@ -288,8 +287,7 @@ int chrtoblktbl[] = {
/* 19 */ NODEV,
/* 20 */ NODEV,
/* 21 */ NODEV,
- /* 22 */ 8, /* rd */
- /* 23 */ 6 /* ccd */
+ /* 22 */ 8 /* rd */
};
int nchrtoblktbl = nitems(chrtoblktbl);
diff --git a/sys/arch/socppc/socppc/conf.c b/sys/arch/socppc/socppc/conf.c
index 28ea9253c98..e760f64f29e 100644
--- a/sys/arch/socppc/socppc/conf.c
+++ b/sys/arch/socppc/socppc/conf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: conf.c,v 1.14 2011/01/14 19:04:08 jasper Exp $ */
+/* $OpenBSD: conf.c,v 1.15 2011/10/06 20:49:28 deraadt Exp $ */
/*
* Copyright (c) 1997 Per Fogelstrom
@@ -48,7 +48,6 @@ bdev_decl(wd);
cdev_decl(wd);
#include "vnd.h"
-#include "ccd.h"
#include "raid.h"
#include "video.h"
@@ -69,7 +68,7 @@ struct bdevsw bdevsw[] = {
bdev_lkm_dummy(), /* 13 */
bdev_disk_init(NVND,vnd), /* 14 vnode disk driver*/
bdev_notdef(), /* 15 unknown*/
- bdev_disk_init(NCCD,ccd), /* 16 concatenated disk driver */
+ bdev_notdef(), /* 16: was: concatenated disk driver */
bdev_disk_init(NRD,rd), /* 17 ram disk driver*/
bdev_notdef(), /* 18 unknown*/
bdev_disk_init(NRAID,raid), /* 19 RAIDframe disk driver */
@@ -141,7 +140,7 @@ struct cdevsw cdevsw[] = {
cdev_notdef(), /* 15 */
cdev_notdef(), /* 16 */
cdev_disk_init(NRD,rd), /* 17 ram disk driver*/
- cdev_disk_init(NCCD,ccd), /* 18 concatenated disk driver */
+ cdev_notdef(), /* 18 was: concatenated disk driver */
cdev_disk_init(NVND,vnd), /* 19: vnode disk */
cdev_tape_init(NST,st), /* 20: SCSI tape */
cdev_fd_init(1,filedesc), /* 21: file descriptor pseudo-dev */
@@ -269,7 +268,7 @@ int chrtoblktbl[] = {
/* 15 */ NODEV,
/* 16 */ NODEV,
/* 17 */ 17, /* rd */
- /* 18 */ 16, /* ccd */
+ /* 18 */ NODEV,
/* 19 */ 14, /* vnd */
/* 20 */ 5, /* st */
/* 21 */ NODEV,
diff --git a/sys/arch/sparc/sparc/conf.c b/sys/arch/sparc/sparc/conf.c
index 7c0096ac053..59af317c79e 100644
--- a/sys/arch/sparc/sparc/conf.c
+++ b/sys/arch/sparc/sparc/conf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: conf.c,v 1.58 2011/07/04 22:53:53 tedu Exp $ */
+/* $OpenBSD: conf.c,v 1.59 2011/10/06 20:49:28 deraadt Exp $ */
/* $NetBSD: conf.c,v 1.40 1996/04/11 19:20:03 thorpej Exp $ */
/*
@@ -57,7 +57,6 @@
#include "tun.h"
#include "audio.h"
#include "vnd.h"
-#include "ccd.h"
#include "raid.h"
#include "ch.h"
#include "uk.h"
@@ -103,7 +102,7 @@ struct bdevsw bdevsw[] =
bdev_notdef(), /* 6 */
bdev_disk_init(NSD,sd), /* 7: SCSI disk */
bdev_disk_init(NVND,vnd), /* 8: vnode disk driver */
- bdev_disk_init(NCCD,ccd), /* 9: concatenated disk driver */
+ bdev_notdef(), /* 9: was: concatenated disk driver */
bdev_disk_init(NXD,xd), /* 10: SMD disk */
bdev_tape_init(NST,st), /* 11: SCSI tape */
bdev_notdef(), /* 12 */
@@ -156,7 +155,7 @@ struct cdevsw cdevsw[] =
cdev_tty_init(NPTY,pts), /* 20: pseudo-tty slave */
cdev_ptc_init(NPTY,ptc), /* 21: pseudo-tty master */
cdev_notdef(), /* 22: was /dev/fb */
- cdev_disk_init(NCCD,ccd), /* 23: concatenated disk driver */
+ cdev_notdef(), /* 23: was: concatenated disk driver */
cdev_fd_init(1,filedesc), /* 24: file descriptor pseudo-device */
cdev_disk_init(NPRESTO,presto), /* 25: Prestoserve NVRAM */
cdev_notdef(), /* 26 */
diff --git a/sys/arch/sparc64/sparc64/conf.c b/sys/arch/sparc64/sparc64/conf.c
index 975fe74aecd..3dff66388a1 100644
--- a/sys/arch/sparc64/sparc64/conf.c
+++ b/sys/arch/sparc64/sparc64/conf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: conf.c,v 1.60 2011/07/04 22:53:53 tedu Exp $ */
+/* $OpenBSD: conf.c,v 1.61 2011/10/06 20:49:28 deraadt Exp $ */
/* $NetBSD: conf.c,v 1.17 2001/03/26 12:33:26 lukem Exp $ */
/*
@@ -59,7 +59,6 @@
#include "audio.h"
#include "video.h"
#include "vnd.h"
-#include "ccd.h"
#include "ch.h"
#include "sd.h"
#include "st.h"
@@ -134,7 +133,7 @@ struct bdevsw bdevsw[] =
bdev_notdef(), /* 6 */
bdev_disk_init(NSD,sd), /* 7: SCSI disk */
bdev_disk_init(NVND,vnd), /* 8: vnode disk driver */
- bdev_disk_init(NCCD,ccd), /* 9: concatenated disk driver */
+ bdev_notdef(), /* 9: was: concatenated disk driver */
bdev_notdef(), /* 10: SMD disk -- not this arch */
bdev_tape_init(NST,st), /* 11: SCSI tape */
bdev_disk_init(NWD,wd), /* 12: IDE disk */
@@ -179,7 +178,7 @@ struct cdevsw cdevsw[] =
cdev_tty_init(NPTY,pts), /* 20: pseudo-tty slave */
cdev_ptc_init(NPTY,ptc), /* 21: pseudo-tty master */
cdev_notdef(), /* 22 */
- cdev_disk_init(NCCD,ccd), /* 23: concatenated disk driver */
+ cdev_notdef(), /* 23: was: concatenated disk driver */
cdev_fd_init(1,filedesc), /* 24: file descriptor pseudo-device */
cdev_uperf_init(NUPERF,uperf), /* 25: performance counters */
cdev_disk_init(NWD,wd), /* 26: IDE disk */
diff --git a/sys/arch/vax/vax/conf.c b/sys/arch/vax/vax/conf.c
index fde08bbd4e0..91fecf475d0 100644
--- a/sys/arch/vax/vax/conf.c
+++ b/sys/arch/vax/vax/conf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: conf.c,v 1.65 2011/09/03 20:41:31 miod Exp $ */
+/* $OpenBSD: conf.c,v 1.66 2011/10/06 20:49:28 deraadt Exp $ */
/* $NetBSD: conf.c,v 1.44 1999/10/27 16:38:54 ragge Exp $ */
/*-
@@ -49,8 +49,6 @@ bdev_decl(mt);
bdev_decl(ra);
bdev_decl(rx);
-#include "ccd.h"
-
#include "raid.h"
#include "vnd.h"
@@ -84,7 +82,7 @@ struct bdevsw bdevsw[] =
bdev_notdef(), /* 14 */
bdev_tape_init(NMT,mt), /* 15: MSCP tape */
bdev_notdef(), /* 16: was: KDB50/RA?? */
- bdev_disk_init(NCCD,ccd), /* 17: concatenated disk driver */
+ bdev_notdef(), /* 17: was: concatenated disk driver */
bdev_disk_init(NVND,vnd), /* 18: vnode disk driver */
bdev_disk_init(NHD,hd), /* 19: VS3100 ST506 disk */
bdev_disk_init(NSD,sd), /* 20: SCSI disk */
@@ -241,7 +239,7 @@ struct cdevsw cdevsw[] =
cdev_notdef(), /* 51 */
cdev_notdef(), /* 52: was: KDB50/RA?? */
cdev_fd_init(1,filedesc), /* 53: file descriptor pseudo-device */
- cdev_disk_init(NCCD,ccd), /* 54: concatenated disk driver */
+ cdev_notdef(), /* 54: was: concatenated disk driver */
cdev_disk_init(NVND,vnd), /* 55: vnode disk driver */
cdev_bpf_init(NBPFILTER,bpf), /* 56: berkeley packet filter */
cdev_tun_init(NTUN,tun), /* 57: tunnel filter */
@@ -344,7 +342,7 @@ int chrtoblktbl[] = {
NODEV, /* 51 */
NODEV, /* 52 */
NODEV, /* 53 */
- 17, /* 54 ccd */
+ NODEV, /* 54 */
18, /* 55 vnd */
NODEV, /* 56 */
NODEV, /* 57 */
diff --git a/sys/conf/GENERIC b/sys/conf/GENERIC
index 897b2e63984..71f02b01fe4 100644
--- a/sys/conf/GENERIC
+++ b/sys/conf/GENERIC
@@ -1,4 +1,4 @@
-# $OpenBSD: GENERIC,v 1.183 2011/08/21 20:19:56 matthieu Exp $
+# $OpenBSD: GENERIC,v 1.184 2011/10/06 20:49:28 deraadt Exp $
#
# Machine-independent option; used by all architectures for their
# GENERIC kernel
@@ -86,7 +86,6 @@ pseudo-device nmea 1 # NMEA 0183 line discipline
pseudo-device msts 1 # MSTS line discipline
pseudo-device endrun 1 # EndRun line discipline
pseudo-device vnd 4 # vnode disk devices
-pseudo-device ccd 4 # concatenated disk devices
pseudo-device ksyms 1 # kernel symbols device
pseudo-device systrace 1 # system call tracing device
diff --git a/sys/conf/files b/sys/conf/files
index 14d9c44ec11..4446d70a388 100644
--- a/sys/conf/files
+++ b/sys/conf/files
@@ -1,4 +1,4 @@
-# $OpenBSD: files,v 1.527 2011/09/03 20:03:27 miod Exp $
+# $OpenBSD: files,v 1.528 2011/10/06 20:49:28 deraadt Exp $
# $NetBSD: files,v 1.87 1996/05/19 17:17:50 jonathan Exp $
# @(#)files.newconf 7.5 (Berkeley) 5/10/93
@@ -494,7 +494,6 @@ file dev/spdmem.c spdmem
# legitimate pseudo-devices
pseudo-device vnd: disk
-pseudo-device ccd: disk
pseudo-device raid: disk
pseudo-device rd: disk
file dev/rd.c rd needs-flag
@@ -586,7 +585,6 @@ file ddb/db_write_cmd.c ddb
file ddb/db_usrreq.c ddb
file dev/auconv.c auconv
file dev/audio.c audio needs-flag
-file dev/ccd.c ccd needs-flag
file dev/cons.c
file dev/diskmap.c
file dev/firmload.c firmload
diff --git a/sys/dev/ccd.c b/sys/dev/ccd.c
deleted file mode 100644
index 9f6a0bb04a7..00000000000
--- a/sys/dev/ccd.c
+++ /dev/null
@@ -1,1345 +0,0 @@
-/* $OpenBSD: ccd.c,v 1.97 2011/07/06 04:49:36 matthew Exp $ */
-/* $NetBSD: ccd.c,v 1.33 1996/05/05 04:21:14 thorpej Exp $ */
-
-/*-
- * Copyright (c) 1996 The NetBSD Foundation, Inc.
- * Copyright (c) 1997 Niklas Hallqvist.
- * Copyright (c) 2005 Michael Shalayeff.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Jason R. Thorpe.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- * Copyright (c) 1988 University of Utah.
- * Copyright (c) 1990, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * the Systems Programming Group of the University of Utah Computer
- * Science Department.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * from: Utah $Hdr: cd.c 1.6 90/11/28$
- *
- * @(#)cd.c 8.2 (Berkeley) 11/16/93
- */
-
-/*
- * "Concatenated" disk driver.
- *
- * Dynamic configuration and disklabel support by:
- * Jason R. Thorpe <thorpej@nas.nasa.gov>
- * Numerical Aerodynamic Simulation Facility
- * Mail Stop 258-6
- * NASA Ames Research Center
- * Moffett Field, CA 94035
- *
- * Mirroring support based on code written by Satoshi Asami
- * and Nisha Talagala.
- */
-/* #define CCDDEBUG */
-
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/proc.h>
-#include <sys/errno.h>
-#include <sys/buf.h>
-#include <sys/malloc.h>
-#include <sys/pool.h>
-#include <sys/namei.h>
-#include <sys/stat.h>
-#include <sys/ioctl.h>
-#include <sys/disklabel.h>
-#include <sys/device.h>
-#include <sys/disk.h>
-#include <sys/syslog.h>
-#include <sys/fcntl.h>
-#include <sys/vnode.h>
-#include <sys/conf.h>
-#include <sys/rwlock.h>
-#include <sys/dkio.h>
-
-#include <dev/ccdvar.h>
-
-#ifdef __GNUC__
-#define INLINE static __inline
-#else
-#define INLINE
-#endif
-
-/*
- * A concatenated disk is described after initialization by this structure.
- */
-struct ccd_softc {
- struct disk sc_dkdev; /* generic disk device info */
- struct ccdgeom sc_geom; /* pseudo geometry info */
- struct ccdcinfo *sc_cinfo; /* component info */
- struct ccdiinfo *sc_itable; /* interleave table */
- char sc_xname[8]; /* XXX external name */
- size_t sc_size; /* size of ccd */
- int sc_flags; /* flags */
- int sc_cflags; /* copy of ccd_flags */
- int sc_ileave; /* interleave */
- u_int sc_nccdisks; /* # of components */
- u_int sc_nccunits; /* # of components for data */
- struct rwlock sc_rwlock; /* lock */
-
-};
-
-/* sc_flags */
-#define CCDF_INITED 0x01 /* unit has been initialized */
-
-#ifdef CCDDEBUG
-#define CCD_DCALL(m,c) if (ccddebug & (m)) c
-#define CCD_DPRINTF(m,a) CCD_DCALL(m, printf a)
-#define CCDB_FOLLOW 0x01
-#define CCDB_INIT 0x02
-#define CCDB_IO 0x04
-#define CCDB_LABEL 0x08
-#define CCDB_VNODE 0x10
-int ccddebug = 0x00;
-#else
-#define CCD_DCALL(m,c) /* m, c */
-#define CCD_DPRINTF(m,a) /* m, a */
-#endif
-
-struct ccdbuf {
- struct buf cb_buf; /* new I/O buf */
- struct buf *cb_obp; /* ptr. to original I/O buf */
- struct ccd_softc*cb_sc; /* point back to the device */
- struct ccdbuf *cb_dep; /* mutual ptrs for mirror part */
- int cb_comp; /* target component */
- int cb_flags; /* misc. flags */
-#define CBF_MIRROR 0x01 /* we're for a mirror component */
-#define CBF_DONE 0x02 /* this buffer is done */
-};
-
-/* called by main() at boot time */
-void ccdattach(int);
-
-/* called by biodone() at interrupt time */
-void ccdiodone(struct buf *);
-daddr64_t ccdsize(dev_t);
-
-void ccdstart(struct ccd_softc *, struct buf *);
-void ccdinterleave(struct ccd_softc *);
-void ccdintr(struct ccd_softc *, struct buf *);
-int ccdinit(struct ccddevice *, char **, struct proc *);
-int ccdlookup(char *, struct proc *p, struct vnode **);
-long ccdbuffer(struct ccd_softc *, struct buf *, daddr64_t, caddr_t,
- long, struct ccdbuf **);
-int ccdgetdisklabel(dev_t, struct ccd_softc *, struct disklabel *, int);
-INLINE struct ccdbuf *getccdbuf(void);
-INLINE void putccdbuf(struct ccdbuf *);
-
-#define ccdlock(sc) rw_enter(&sc->sc_rwlock, RW_WRITE|RW_INTR)
-#define ccdunlock(sc) rw_exit_write(&sc->sc_rwlock)
-
-#ifdef CCDDEBUG
-void printiinfo(struct ccdiinfo *);
-#endif
-
-/* Non-private for the benefit of libkvm. */
-struct ccd_softc *ccd_softc;
-struct ccddevice *ccddevs;
-int numccd = 0;
-
-/*
- * struct ccdbuf allocator
- */
-struct pool ccdbufpl;
-
-/*
- * Manage the ccd buffer structures.
- */
-INLINE struct ccdbuf *
-getccdbuf(void)
-{
- struct ccdbuf *cbp;
-
- cbp = pool_get(&ccdbufpl, PR_WAITOK | PR_ZERO);
-
- return (cbp);
-}
-
-INLINE void
-putccdbuf(struct ccdbuf *cbp)
-{
- pool_put(&ccdbufpl, cbp);
-}
-
-/*
- * Called by main() during pseudo-device attachment. All we need
- * to do is allocate enough space for devices to be configured later.
- */
-void
-ccdattach(int num)
-{
- int i;
-
- if (num <= 0) {
-#ifdef DIAGNOSTIC
- panic("ccdattach: count <= 0");
-#endif
- return;
- }
-
- ccd_softc = (struct ccd_softc *)malloc(num * sizeof(struct ccd_softc),
- M_DEVBUF, M_NOWAIT | M_ZERO);
- ccddevs = (struct ccddevice *)malloc(num * sizeof(struct ccddevice),
- M_DEVBUF, M_NOWAIT | M_ZERO);
- if ((ccd_softc == NULL) || (ccddevs == NULL)) {
- printf("WARNING: no memory for concatenated disks\n");
- if (ccd_softc != NULL)
- free(ccd_softc, M_DEVBUF);
- if (ccddevs != NULL)
- free(ccddevs, M_DEVBUF);
- return;
- }
- for (i = 0; i < num; i++) {
- rw_init(&ccd_softc[i].sc_rwlock, "ccdlock");
- }
- numccd = num;
-
- pool_init(&ccdbufpl, sizeof(struct ccdbuf), 0, 0, 0, "ccdbufpl", NULL);
- pool_setlowat(&ccdbufpl, 16);
- pool_sethiwat(&ccdbufpl, 1024);
-}
-
-int
-ccdinit(struct ccddevice *ccd, char **cpaths, struct proc *p)
-{
- struct ccd_softc *cs = &ccd_softc[ccd->ccd_unit];
- struct ccdcinfo *ci = NULL;
- daddr64_t size;
- int ix;
- struct vnode *vp;
- struct vattr va;
- size_t minsize;
- int maxsecsize;
- struct partinfo dpart;
- struct ccdgeom *ccg = &cs->sc_geom;
- char tmppath[MAXPATHLEN];
- int error;
-
- CCD_DPRINTF(CCDB_FOLLOW | CCDB_INIT, ("ccdinit: unit %d cflags %b\n",
- ccd->ccd_unit, ccd->ccd_flags, CCDF_BITS));
-
- cs->sc_size = 0;
- cs->sc_ileave = ccd->ccd_interleave;
- cs->sc_nccdisks = ccd->ccd_ndev;
- if (snprintf(cs->sc_xname, sizeof(cs->sc_xname), "ccd%d",
- ccd->ccd_unit) >= sizeof(cs->sc_xname)) {
- printf("ccdinit: device name too long.\n");
- return(ENXIO);
- }
-
- /* Allocate space for the component info. */
- cs->sc_cinfo = malloc(cs->sc_nccdisks * sizeof(struct ccdcinfo),
- M_DEVBUF, M_WAITOK | M_ZERO);
-
- /*
- * Verify that each component piece exists and record
- * relevant information about it.
- */
- maxsecsize = 0;
- minsize = 0;
- for (ix = 0; ix < cs->sc_nccdisks; ix++) {
- vp = ccd->ccd_vpp[ix];
- ci = &cs->sc_cinfo[ix];
- ci->ci_vp = vp;
-
- /*
- * Copy in the pathname of the component.
- */
- bzero(tmppath, sizeof(tmppath)); /* sanity */
- error = copyinstr(cpaths[ix], tmppath,
- MAXPATHLEN, &ci->ci_pathlen);
- if (error) {
- CCD_DPRINTF(CCDB_FOLLOW | CCDB_INIT,
- ("%s: can't copy path, error = %d\n",
- cs->sc_xname, error));
- free(cs->sc_cinfo, M_DEVBUF);
- return (error);
- }
- ci->ci_path = malloc(ci->ci_pathlen, M_DEVBUF, M_WAITOK);
- bcopy(tmppath, ci->ci_path, ci->ci_pathlen);
-
- /*
- * XXX: Cache the component's dev_t.
- */
- if ((error = VOP_GETATTR(vp, &va, p->p_ucred, p)) != 0) {
- CCD_DPRINTF(CCDB_FOLLOW | CCDB_INIT,
- ("%s: %s: getattr failed error = %d\n",
- cs->sc_xname, ci->ci_path, error));
- free(ci->ci_path, M_DEVBUF);
- free(cs->sc_cinfo, M_DEVBUF);
- return (error);
- }
- ci->ci_dev = va.va_rdev;
-
- /*
- * Get partition information for the component.
- */
- error = VOP_IOCTL(vp, DIOCGPART, (caddr_t)&dpart,
- FREAD, p->p_ucred, p);
- if (error) {
- CCD_DPRINTF(CCDB_FOLLOW | CCDB_INIT,
- ("%s: %s: ioctl failed, error = %d\n",
- cs->sc_xname, ci->ci_path, error));
- free(ci->ci_path, M_DEVBUF);
- free(cs->sc_cinfo, M_DEVBUF);
- return (error);
- }
- if (dpart.part->p_fstype == FS_CCD ||
- dpart.part->p_fstype == FS_BSDFFS) {
- maxsecsize =
- ((dpart.disklab->d_secsize > maxsecsize) ?
- dpart.disklab->d_secsize : maxsecsize);
- size = DL_GETPSIZE(dpart.part);
- } else {
- CCD_DPRINTF(CCDB_FOLLOW | CCDB_INIT,
- ("%s: %s: incorrect partition type\n",
- cs->sc_xname, ci->ci_path));
- free(ci->ci_path, M_DEVBUF);
- free(cs->sc_cinfo, M_DEVBUF);
- return (EFTYPE);
- }
-
- /*
- * Calculate the size, truncating to an interleave
- * boundary if necessary.
- */
- if (cs->sc_ileave > 1)
- size -= size % cs->sc_ileave;
-
- if (size == 0) {
- CCD_DPRINTF(CCDB_FOLLOW | CCDB_INIT,
- ("%s: %s: size == 0\n", cs->sc_xname, ci->ci_path));
- free(ci->ci_path, M_DEVBUF);
- free(cs->sc_cinfo, M_DEVBUF);
- return (ENODEV);
- }
-
- if (minsize == 0 || size < minsize)
- minsize = size;
- ci->ci_size = size;
- cs->sc_size += size;
- }
- ccg->ccg_rpm = 0;
-
- /*
- * Don't allow the interleave to be smaller than
- * the biggest component sector.
- */
- if ((cs->sc_ileave > 0) &&
- (cs->sc_ileave < (maxsecsize / DEV_BSIZE))) {
- CCD_DPRINTF(CCDB_FOLLOW | CCDB_INIT,
- ("%s: interleave must be at least %d\n",
- cs->sc_xname, (maxsecsize / DEV_BSIZE)));
- free(ci->ci_path, M_DEVBUF);
- free(cs->sc_cinfo, M_DEVBUF);
- return (EINVAL);
- }
-
- /*
- * Mirroring support requires uniform interleave and
- * and even number of components.
- */
- if (ccd->ccd_flags & CCDF_MIRROR) {
- ccd->ccd_flags |= CCDF_UNIFORM;
- if (cs->sc_ileave == 0) {
- CCD_DPRINTF(CCDB_FOLLOW | CCDB_INIT,
- ("%s: mirroring requires interleave\n",
- cs->sc_xname));
- free(ci->ci_path, M_DEVBUF);
- free(cs->sc_cinfo, M_DEVBUF);
- return (EINVAL);
- }
- if (cs->sc_nccdisks % 2) {
- CCD_DPRINTF(CCDB_FOLLOW | CCDB_INIT,
- ("%s: mirroring requires even # of components\n",
- cs->sc_xname));
- free(ci->ci_path, M_DEVBUF);
- free(cs->sc_cinfo, M_DEVBUF);
- return (EINVAL);
- }
- }
-
- /*
- * If uniform interleave is desired set all sizes to that of
- * the smallest component.
- */
- ccg->ccg_ntracks = cs->sc_nccunits = cs->sc_nccdisks;
- if (ccd->ccd_flags & CCDF_UNIFORM) {
- for (ci = cs->sc_cinfo;
- ci < &cs->sc_cinfo[cs->sc_nccdisks]; ci++)
- ci->ci_size = minsize;
-
- if (ccd->ccd_flags & CCDF_MIRROR)
- cs->sc_nccunits = ccg->ccg_ntracks /= 2;
- cs->sc_size = ccg->ccg_ntracks * minsize;
- }
-
- cs->sc_cflags = ccd->ccd_flags; /* So we can find out later... */
-
- /*
- * Construct the interleave table.
- */
- ccdinterleave(cs);
-
- /*
- * Create pseudo-geometry based on 1MB cylinders. It's
- * pretty close.
- */
- ccg->ccg_secsize = DEV_BSIZE;
- ccg->ccg_nsectors = cs->sc_ileave? cs->sc_ileave :
- 1024 * (1024 / ccg->ccg_secsize);
- ccg->ccg_ncylinders = cs->sc_size / ccg->ccg_ntracks /
- ccg->ccg_nsectors;
-
- cs->sc_flags |= CCDF_INITED;
-
- return (0);
-}
-
-void
-ccdinterleave(struct ccd_softc *cs)
-{
- struct ccdcinfo *ci, *smallci;
- struct ccdiinfo *ii;
- daddr64_t bn, lbn;
- int ix;
- u_long size;
-
- CCD_DPRINTF(CCDB_INIT,
- ("ccdinterleave(%p): ileave %d\n", cs, cs->sc_ileave));
-
- /*
- * Allocate an interleave table.
- * Chances are this is too big, but we don't care.
- */
- size = (cs->sc_nccdisks + 1) * sizeof(struct ccdiinfo);
- cs->sc_itable = (struct ccdiinfo *)malloc(size, M_DEVBUF,
- M_WAITOK | M_ZERO);
-
- /*
- * Trivial case: no interleave (actually interleave of disk size).
- * Each table entry represents a single component in its entirety.
- */
- if (cs->sc_ileave == 0) {
- bn = 0;
- ii = cs->sc_itable;
-
- for (ix = 0; ix < cs->sc_nccdisks; ix++) {
- /* Allocate space for ii_index. */
- ii->ii_index = malloc(sizeof(int), M_DEVBUF, M_WAITOK);
- ii->ii_ndisk = 1;
- ii->ii_startblk = bn;
- ii->ii_startoff = 0;
- ii->ii_index[0] = ix;
- bn += cs->sc_cinfo[ix].ci_size;
- ii++;
- }
- ii->ii_ndisk = 0;
-
- CCD_DCALL(CCDB_INIT, printiinfo(cs->sc_itable));
- return;
- }
-
- /*
- * The following isn't fast or pretty; it doesn't have to be.
- */
- size = 0;
- bn = lbn = 0;
- for (ii = cs->sc_itable; ; ii++) {
- /* Allocate space for ii_index. */
- ii->ii_index = malloc((sizeof(int) * cs->sc_nccdisks),
- M_DEVBUF, M_WAITOK);
-
- /*
- * Locate the smallest of the remaining components
- */
- smallci = NULL;
- for (ci = cs->sc_cinfo;
- ci < &cs->sc_cinfo[cs->sc_nccdisks]; ci++)
- if (ci->ci_size > size &&
- (smallci == NULL ||
- ci->ci_size < smallci->ci_size))
- smallci = ci;
-
- /*
- * Nobody left, all done
- */
- if (smallci == NULL) {
- ii->ii_ndisk = 0;
- break;
- }
-
- /*
- * Record starting logical block and component offset
- */
- ii->ii_startblk = bn / cs->sc_ileave;
- ii->ii_startoff = lbn;
-
- /*
- * Determine how many disks take part in this interleave
- * and record their indices.
- */
- ix = 0;
- for (ci = cs->sc_cinfo;
- ci < &cs->sc_cinfo[cs->sc_nccunits]; ci++)
- if (ci->ci_size >= smallci->ci_size)
- ii->ii_index[ix++] = ci - cs->sc_cinfo;
- ii->ii_ndisk = ix;
- bn += ix * (smallci->ci_size - size);
- lbn = smallci->ci_size / cs->sc_ileave;
- size = smallci->ci_size;
- }
-
- CCD_DCALL(CCDB_INIT, printiinfo(cs->sc_itable));
-}
-
-/* ARGSUSED */
-int
-ccdopen(dev_t dev, int flags, int fmt, struct proc *p)
-{
- int unit = DISKUNIT(dev);
- struct ccd_softc *cs;
- struct disklabel *lp;
- int error = 0, part;
-
- CCD_DPRINTF(CCDB_FOLLOW, ("ccdopen(%x, %x)\n", dev, flags));
-
- if (unit >= numccd)
- return (ENXIO);
- cs = &ccd_softc[unit];
-
- if ((error = ccdlock(cs)) != 0)
- return (error);
-
- lp = cs->sc_dkdev.dk_label;
-
- part = DISKPART(dev);
-
- /*
- * If we're initialized, check to see if there are any other
- * open partitions. If not, then it's safe to update
- * the in-core disklabel.
- */
- if ((cs->sc_flags & CCDF_INITED) && (cs->sc_dkdev.dk_openmask == 0))
- ccdgetdisklabel(dev, cs, lp, 0);
-
- error = disk_openpart(&cs->sc_dkdev, part, fmt,
- (cs->sc_flags & CCDF_INITED) != 0);
-
- ccdunlock(cs);
- return (error);
-}
-
-/* ARGSUSED */
-int
-ccdclose(dev_t dev, int flags, int fmt, struct proc *p)
-{
- int unit = DISKUNIT(dev);
- struct ccd_softc *cs;
- int error = 0, part;
-
- CCD_DPRINTF(CCDB_FOLLOW, ("ccdclose(%x, %x)\n", dev, flags));
-
- if (unit >= numccd)
- return (ENXIO);
- cs = &ccd_softc[unit];
-
- if ((error = ccdlock(cs)) != 0)
- return (error);
-
- part = DISKPART(dev);
-
- disk_closepart(&cs->sc_dkdev, part, fmt);
-
- ccdunlock(cs);
- return (0);
-}
-
-void
-ccdstrategy(struct buf *bp)
-{
- int unit = DISKUNIT(bp->b_dev);
- struct ccd_softc *cs = &ccd_softc[unit];
- int s;
-
- CCD_DPRINTF(CCDB_FOLLOW, ("ccdstrategy(%p): unit %d\n", bp, unit));
-
- if ((cs->sc_flags & CCDF_INITED) == 0) {
- bp->b_error = ENXIO;
- bp->b_flags |= B_ERROR;
- bp->b_resid = bp->b_bcount;
- goto done;
- }
-
- /* Validate the request. */
- if (bounds_check_with_label(bp, cs->sc_dkdev.dk_label) == -1)
- goto done;
-
- bp->b_resid = bp->b_bcount;
-
- /*
- * "Start" the unit.
- */
- s = splbio();
- ccdstart(cs, bp);
- splx(s);
- return;
-
- done:
- s = splbio();
- biodone(bp);
- splx(s);
-}
-
-void
-ccdstart(struct ccd_softc *cs, struct buf *bp)
-{
- long bcount, rcount;
- struct ccdbuf **cbpp;
- caddr_t addr;
- daddr64_t bn;
- struct partition *pp;
-
- CCD_DPRINTF(CCDB_FOLLOW, ("ccdstart(%p, %p, %s)\n", cs, bp,
- bp->b_flags & B_READ? "read" : "write"));
-
- /* Instrumentation. */
- disk_busy(&cs->sc_dkdev);
-
- /*
- * Translate the partition-relative block number to an absolute.
- */
- bn = bp->b_blkno;
- pp = &cs->sc_dkdev.dk_label->d_partitions[DISKPART(bp->b_dev)];
- bn += DL_GETPOFFSET(pp);
-
- /*
- * Allocate component buffers
- */
- cbpp = malloc(2 * cs->sc_nccdisks * sizeof(struct ccdbuf *), M_DEVBUF,
- M_WAITOK | M_ZERO);
- addr = bp->b_data;
- for (bcount = bp->b_bcount; bcount > 0; bcount -= rcount) {
- rcount = ccdbuffer(cs, bp, bn, addr, bcount, cbpp);
-
- /*
- * This is the old, slower, but less restrictive, mode of
- * operation. It allows interleaves which are not multiples
- * of PAGE_SIZE and mirroring.
- */
- if ((cbpp[0]->cb_buf.b_flags & B_READ) == 0)
- cbpp[0]->cb_buf.b_vp->v_numoutput++;
- VOP_STRATEGY(&cbpp[0]->cb_buf);
-
- if ((cs->sc_cflags & CCDF_MIRROR) &&
- ((cbpp[0]->cb_buf.b_flags & B_READ) == 0)) {
- cbpp[1]->cb_buf.b_vp->v_numoutput++;
- VOP_STRATEGY(&cbpp[1]->cb_buf);
- }
-
- bn += btodb(rcount);
- addr += rcount;
- }
-
- free(cbpp, M_DEVBUF);
-}
-
-/*
- * Build a component buffer header.
- */
-long
-ccdbuffer(struct ccd_softc *cs, struct buf *bp, daddr64_t bn, caddr_t addr,
- long bcount, struct ccdbuf **cbpp)
-{
- struct ccdcinfo *ci, *ci2 = NULL;
- struct ccdbuf *cbp;
- daddr64_t cbn, cboff, sblk;
- int ccdisk, ccdisk2, off;
- long cnt;
- struct ccdiinfo *ii;
- struct buf *nbp;
-
- CCD_DPRINTF(CCDB_IO, ("ccdbuffer(%p, %p, %d, %p, %ld, %p)\n",
- cs, bp, bn, addr, bcount, cbpp));
-
- /*
- * Determine which component bn falls in.
- */
- cbn = bn;
- cboff = 0;
-
- if (cs->sc_ileave == 0) {
- /*
- * Serially concatenated
- */
- sblk = 0;
- for (ccdisk = 0, ci = &cs->sc_cinfo[ccdisk];
- cbn >= sblk + ci->ci_size;
- ccdisk++, ci = &cs->sc_cinfo[ccdisk])
- sblk += ci->ci_size;
- cbn -= sblk;
- } else {
- /*
- * Interleaved
- */
- cboff = cbn % cs->sc_ileave;
- cbn /= cs->sc_ileave;
- for (ii = cs->sc_itable; ii->ii_ndisk; ii++)
- if (ii->ii_startblk > cbn)
- break;
- ii--;
- off = cbn - ii->ii_startblk;
- if (ii->ii_ndisk == 1) {
- ccdisk = ii->ii_index[0];
- cbn = ii->ii_startoff + off;
- } else {
- ccdisk = ii->ii_index[off % ii->ii_ndisk];
- cbn = ii->ii_startoff + off / ii->ii_ndisk;
- }
- ci = &cs->sc_cinfo[ccdisk];
- if (cs->sc_cflags & CCDF_MIRROR) {
- /* Mirrored data */
- ccdisk2 = ccdisk + ii->ii_ndisk;
- ci2 = &cs->sc_cinfo[ccdisk2];
- /* spread the read over both parts */
- if (bp->b_flags & B_READ &&
- bcount > bp->b_bcount / 2 &&
- (!(ci2->ci_flags & CCIF_FAILED) ||
- ci->ci_flags & CCIF_FAILED)) {
- ccdisk = ccdisk2;
- ci = ci2;
- }
- }
- cbn *= cs->sc_ileave;
- CCD_DPRINTF(CCDB_IO, ("ccdisk %d cbn %lld ci %p ci2 %p\n",
- ccdisk, cbn, ci, ci2));
- }
-
- /* Limit the operation at next component border */
- if (cs->sc_ileave == 0)
- cnt = dbtob(ci->ci_size - cbn);
- else
- cnt = dbtob(cs->sc_ileave - cboff);
- if (cnt < bcount)
- bcount = cnt;
-
- /*
- * Setup new component buffer.
- */
- cbp = cbpp[0] = getccdbuf();
- cbp->cb_flags = 0;
- nbp = &cbp->cb_buf;
- nbp->b_flags = bp->b_flags | B_CALL;
- nbp->b_iodone = ccdiodone;
- nbp->b_proc = bp->b_proc;
- nbp->b_dev = ci->ci_dev; /* XXX */
- nbp->b_blkno = cbn + cboff;
- nbp->b_vp = ci->ci_vp;
- nbp->b_bcount = bcount;
- LIST_INIT(&nbp->b_dep);
- nbp->b_data = addr;
-
- /*
- * context for ccdiodone
- */
- cbp->cb_obp = bp;
- cbp->cb_sc = cs;
- cbp->cb_comp = ccdisk;
-
- /*
- * Mirrors have an additional write operation that is nearly
- * identical to the first.
- */
- if ((cs->sc_cflags & CCDF_MIRROR) &&
- !(ci2->ci_flags & CCIF_FAILED) &&
- ((cbp->cb_buf.b_flags & B_READ) == 0)) {
- struct ccdbuf *cbp2;
- cbpp[1] = cbp2 = getccdbuf();
- *cbp2 = *cbp;
- cbp2->cb_flags = CBF_MIRROR;
- cbp2->cb_buf.b_dev = ci2->ci_dev; /* XXX */
- cbp2->cb_buf.b_vp = ci2->ci_vp;
- LIST_INIT(&cbp2->cb_buf.b_dep);
- cbp2->cb_comp = ccdisk2;
- cbp2->cb_dep = cbp;
- cbp->cb_dep = cbp2;
- }
-
- CCD_DPRINTF(CCDB_IO, (" dev %x(u%d): cbp %p bn %lld addr %p bcnt %ld\n",
- ci->ci_dev, ci-cs->sc_cinfo, cbp, bp->b_blkno,
- bp->b_data, bp->b_bcount));
-
- return (bcount);
-}
-
-void
-ccdintr(struct ccd_softc *cs, struct buf *bp)
-{
-
- splassert(IPL_BIO);
-
- CCD_DPRINTF(CCDB_FOLLOW, ("ccdintr(%p, %p)\n", cs, bp));
-
- /*
- * Request is done for better or worse, wakeup the top half.
- */
- if (bp->b_flags & B_ERROR)
- bp->b_resid = bp->b_bcount;
- disk_unbusy(&cs->sc_dkdev, (bp->b_bcount - bp->b_resid),
- (bp->b_flags & B_READ));
- biodone(bp);
-}
-
-/*
- * Called at interrupt time.
- * Mark the component as done and if all components are done,
- * take a ccd interrupt.
- */
-void
-ccdiodone(struct buf *vbp)
-{
- struct ccdbuf *cbp = (struct ccdbuf *)vbp;
- struct buf *bp = cbp->cb_obp;
- struct ccd_softc *cs = cbp->cb_sc;
- long count = bp->b_bcount;
- char *comptype;
-
- splassert(IPL_BIO);
-
- CCD_DPRINTF(CCDB_FOLLOW, ("ccdiodone(%p)\n", cbp));
- CCD_DPRINTF(CCDB_IO, (cbp->cb_flags & CBF_MIRROR?
- "ccdiodone: mirror component\n" :
- "ccdiodone: bp %p bcount %ld resid %ld\n",
- bp, bp->b_bcount, bp->b_resid));
- CCD_DPRINTF(CCDB_IO, (" dev %x(u%d), cbp %p bn %lld addr %p bcnt %ld\n",
- vbp->b_dev, cbp->cb_comp, cbp, vbp->b_blkno,
- vbp->b_data, vbp->b_bcount));
-
- if (vbp->b_flags & B_ERROR) {
- cs->sc_cinfo[cbp->cb_comp].ci_flags |= CCIF_FAILED;
- if (cbp->cb_flags & CBF_MIRROR)
- comptype = " (mirror)";
- else {
- bp->b_flags |= B_ERROR;
- bp->b_error = vbp->b_error ?
- vbp->b_error : EIO;
- comptype = "";
- }
-
- printf("%s: error %d on component %d%s\n",
- cs->sc_xname, bp->b_error, cbp->cb_comp, comptype);
- }
- cbp->cb_flags |= CBF_DONE;
-
- if (cbp->cb_dep &&
- (cbp->cb_dep->cb_flags & CBF_DONE) != (cbp->cb_flags & CBF_DONE))
- return;
-
- if (cbp->cb_flags & CBF_MIRROR &&
- !(cbp->cb_dep->cb_flags & CBF_MIRROR)) {
- cbp = cbp->cb_dep;
- vbp = (struct buf *)cbp;
- }
-
- count = vbp->b_bcount;
-
- if (cbp->cb_dep)
- putccdbuf(cbp->cb_dep);
- putccdbuf(cbp);
-
- /*
- * If all done, "interrupt".
- *
- * Note that mirror component buffers aren't counted against
- * the original I/O buffer.
- */
- if (count > bp->b_resid)
- panic("ccdiodone: count");
- bp->b_resid -= count;
- if (bp->b_resid == 0)
- ccdintr(cs, bp);
-}
-
-/* ARGSUSED */
-int
-ccdread(dev_t dev, struct uio *uio, int flags)
-{
- int unit = DISKUNIT(dev);
- struct ccd_softc *cs;
-
- CCD_DPRINTF(CCDB_FOLLOW, ("ccdread(%x, %p)\n", dev, uio));
-
- if (unit >= numccd)
- return (ENXIO);
- cs = &ccd_softc[unit];
-
- if ((cs->sc_flags & CCDF_INITED) == 0)
- return (ENXIO);
-
- /*
- * XXX: It's not clear that using minphys() is completely safe,
- * in particular, for raw I/O. Underlying devices might have some
- * non-obvious limits, because of the copy to user-space.
- */
- return (physio(ccdstrategy, dev, B_READ, minphys, uio));
-}
-
-/* ARGSUSED */
-int
-ccdwrite(dev_t dev, struct uio *uio, int flags)
-{
- int unit = DISKUNIT(dev);
- struct ccd_softc *cs;
-
- CCD_DPRINTF(CCDB_FOLLOW, ("ccdwrite(%x, %p)\n", dev, uio));
-
- if (unit >= numccd)
- return (ENXIO);
- cs = &ccd_softc[unit];
-
- if ((cs->sc_flags & CCDF_INITED) == 0)
- return (ENXIO);
-
- /*
- * XXX: It's not clear that using minphys() is completely safe,
- * in particular, for raw I/O. Underlying devices might have some
- * non-obvious limits, because of the copy to user-space.
- */
- return (physio(ccdstrategy, dev, B_WRITE, minphys, uio));
-}
-
-int
-ccdioctl(dev_t dev, u_long cmd, caddr_t data, int flag, struct proc *p)
-{
- int unit = DISKUNIT(dev);
- int i, j, lookedup = 0, error = 0;
- int part, pmask, s;
- struct disklabel *lp;
- struct ccd_softc *cs;
- struct ccd_ioctl *ccio = (struct ccd_ioctl *)data;
- struct ccddevice ccd;
- char **cpp;
- struct vnode **vpp;
-
- if (unit >= numccd)
- return (ENXIO);
-
- cs = &ccd_softc[unit];
- if (cmd != CCDIOCSET && !(cs->sc_flags & CCDF_INITED))
- return (ENXIO);
-
- /* access control */
- switch (cmd) {
- case CCDIOCSET:
- case CCDIOCCLR:
- case DIOCWDINFO:
- case DIOCSDINFO:
- if ((flag & FWRITE) == 0)
- return (EBADF);
- }
-
- bzero(&ccd, sizeof(ccd));
- switch (cmd) {
- case CCDIOCSET:
- if (cs->sc_flags & CCDF_INITED)
- return (EBUSY);
-
- if (ccio->ccio_ndisks == 0 || ccio->ccio_ndisks > INT_MAX ||
- ccio->ccio_ileave < 0)
- return (EINVAL);
-
- if ((error = ccdlock(cs)) != 0)
- return (error);
-
- /* Fill in some important bits. */
- ccd.ccd_unit = unit;
- ccd.ccd_interleave = ccio->ccio_ileave;
- ccd.ccd_flags = ccio->ccio_flags & CCDF_USERMASK;
-
- /*
- * Allocate space for and copy in the array of
- * componet pathnames and device numbers.
- */
- cpp = malloc(ccio->ccio_ndisks * sizeof(char *),
- M_DEVBUF, M_WAITOK);
- vpp = malloc(ccio->ccio_ndisks * sizeof(struct vnode *),
- M_DEVBUF, M_WAITOK);
-
- error = copyin((caddr_t)ccio->ccio_disks, (caddr_t)cpp,
- ccio->ccio_ndisks * sizeof(char **));
- if (error) {
- free(vpp, M_DEVBUF);
- free(cpp, M_DEVBUF);
- ccdunlock(cs);
- return (error);
- }
-
- for (i = 0; i < ccio->ccio_ndisks; ++i) {
- CCD_DPRINTF(CCDB_INIT,
- ("ccdioctl: component %d: %p, lookedup = %d\n",
- i, cpp[i], lookedup));
- if ((error = ccdlookup(cpp[i], p, &vpp[i])) != 0) {
- for (j = 0; j < lookedup; ++j)
- (void)vn_close(vpp[j], FREAD|FWRITE,
- p->p_ucred, p);
- free(vpp, M_DEVBUF);
- free(cpp, M_DEVBUF);
- ccdunlock(cs);
- return (error);
- }
- ++lookedup;
- }
- ccd.ccd_cpp = cpp;
- ccd.ccd_vpp = vpp;
- ccd.ccd_ndev = ccio->ccio_ndisks;
-
- /*
- * Initialize the ccd. Fills in the softc for us.
- */
- if ((error = ccdinit(&ccd, cpp, p)) != 0) {
- for (j = 0; j < lookedup; ++j)
- (void)vn_close(vpp[j], FREAD|FWRITE,
- p->p_ucred, p);
- bzero(&ccd_softc[unit], sizeof(struct ccd_softc));
- free(vpp, M_DEVBUF);
- free(cpp, M_DEVBUF);
- ccdunlock(cs);
- return (error);
- }
-
- /*
- * The ccd has been successfully initialized, so
- * we can place it into the array. Don't try to
- * read the disklabel until the disk has been attached,
- * because space for the disklabel is allocated
- * in disk_attach();
- */
- bcopy(&ccd, &ccddevs[unit], sizeof(ccd));
- ccio->ccio_unit = unit;
- ccio->ccio_size = cs->sc_size;
-
- /* Attach the disk. */
- cs->sc_dkdev.dk_name = cs->sc_xname;
- disk_attach(NULL, &cs->sc_dkdev);
-
- /* Try and read the disklabel. */
- ccdgetdisklabel(dev, cs, cs->sc_dkdev.dk_label, 0);
-
- ccdunlock(cs);
- break;
-
- case CCDIOCCLR:
- if ((error = ccdlock(cs)) != 0)
- return (error);
-
- /*
- * Don't unconfigure if any other partitions are open
- * or if both the character and block flavors of this
- * partition are open.
- */
- part = DISKPART(dev);
- pmask = (1 << part);
- if ((cs->sc_dkdev.dk_openmask & ~pmask) ||
- ((cs->sc_dkdev.dk_bopenmask & pmask) &&
- (cs->sc_dkdev.dk_copenmask & pmask))) {
- ccdunlock(cs);
- return (EBUSY);
- }
-
- /*
- * Free ccd_softc information and clear entry.
- */
-
- /* Close the components and free their pathnames. */
- for (i = 0; i < cs->sc_nccdisks; ++i) {
- /*
- * XXX: this close could potentially fail and
- * cause Bad Things. Maybe we need to force
- * the close to happen?
- */
-#ifdef DIAGNOSTIC
- CCD_DCALL(CCDB_VNODE, vprint("CCDIOCCLR: vnode info",
- cs->sc_cinfo[i].ci_vp));
-#endif
-
- (void)vn_close(cs->sc_cinfo[i].ci_vp, FREAD|FWRITE,
- p->p_ucred, p);
- free(cs->sc_cinfo[i].ci_path, M_DEVBUF);
- }
-
- /* Free interleave index. */
- for (i = 0; cs->sc_itable[i].ii_ndisk; ++i)
- free(cs->sc_itable[i].ii_index, M_DEVBUF);
-
- /* Free component info and interleave table. */
- free(cs->sc_cinfo, M_DEVBUF);
- free(cs->sc_itable, M_DEVBUF);
- cs->sc_flags &= ~CCDF_INITED;
-
- /*
- * Free ccddevice information and clear entry.
- */
- free(ccddevs[unit].ccd_cpp, M_DEVBUF);
- free(ccddevs[unit].ccd_vpp, M_DEVBUF);
- bcopy(&ccd, &ccddevs[unit], sizeof(ccd));
-
- /* Detach the disk. */
- disk_detach(&cs->sc_dkdev);
-
- /* This must be atomic. */
- s = splhigh();
- ccdunlock(cs);
- bzero(cs, sizeof(struct ccd_softc));
- splx(s);
- break;
-
- case DIOCRLDINFO:
- if ((error = ccdlock(cs)) != 0)
- return (error);
-
- lp = malloc(sizeof(*lp), M_TEMP, M_WAITOK);
- ccdgetdisklabel(dev, cs, lp, 0);
- *(cs->sc_dkdev.dk_label) = *lp;
- free(lp, M_TEMP);
-
- ccdunlock(cs);
- break;
-
- case DIOCGPDINFO:
- if ((error = ccdlock(cs)) != 0)
- return (error);
-
- ccdgetdisklabel(dev, cs, (struct disklabel *)data, 1);
-
- ccdunlock(cs);
- break;
-
- case DIOCGDINFO:
- *(struct disklabel *)data = *(cs->sc_dkdev.dk_label);
- break;
-
- case DIOCGPART:
- ((struct partinfo *)data)->disklab = cs->sc_dkdev.dk_label;
- ((struct partinfo *)data)->part =
- &cs->sc_dkdev.dk_label->d_partitions[DISKPART(dev)];
- break;
-
- case DIOCWDINFO:
- case DIOCSDINFO:
- if ((error = ccdlock(cs)) != 0)
- return (error);
-
- error = setdisklabel(cs->sc_dkdev.dk_label,
- (struct disklabel *)data, 0);
- if (error == 0) {
- if (cmd == DIOCWDINFO)
- error = writedisklabel(DISKLABELDEV(dev),
- ccdstrategy, cs->sc_dkdev.dk_label);
- }
-
- ccdunlock(cs);
-
- if (error)
- return (error);
- break;
-
- default:
- return (ENOTTY);
- }
-
- return (0);
-}
-
-daddr64_t
-ccdsize(dev_t dev)
-{
- struct ccd_softc *cs;
- int part, unit;
- daddr64_t size;
-
- unit = DISKUNIT(dev);
- if (unit >= numccd)
- return (-1);
-
- cs = &ccd_softc[unit];
- if ((cs->sc_flags & CCDF_INITED) == 0)
- return (-1);
-
- if (ccdopen(dev, 0, S_IFBLK, curproc))
- return (-1);
-
- part = DISKPART(dev);
- if (cs->sc_dkdev.dk_label->d_partitions[part].p_fstype != FS_SWAP)
- size = -1;
- else
- size = DL_GETPSIZE(&cs->sc_dkdev.dk_label->d_partitions[part]);
-
- if (ccdclose(dev, 0, S_IFBLK, curproc))
- return (-1);
-
- return (size);
-}
-
-int
-ccddump(dev_t dev, daddr64_t blkno, caddr_t va, size_t size)
-{
-
- /* Not implemented. */
- return ENXIO;
-}
-
-/*
- * Lookup the provided name in the filesystem. If the file exists,
- * is a valid block device, and isn't being used by anyone else,
- * set *vpp to the file's vnode.
- */
-int
-ccdlookup(char *path, struct proc *p, struct vnode **vpp)
-{
- struct nameidata nd;
- struct vnode *vp;
- struct vattr va;
- int error;
-
- NDINIT(&nd, LOOKUP, FOLLOW, UIO_USERSPACE, path, p);
- if ((error = vn_open(&nd, FREAD|FWRITE, 0)) != 0) {
- CCD_DPRINTF(CCDB_FOLLOW | CCDB_INIT,
- ("ccdlookup: vn_open error = %d\n", error));
- return (error);
- }
- vp = nd.ni_vp;
-
- if (vp->v_usecount > 1) {
- VOP_UNLOCK(vp, 0, p);
- (void)vn_close(vp, FREAD|FWRITE, p->p_ucred, p);
- return (EBUSY);
- }
-
- if ((error = VOP_GETATTR(vp, &va, p->p_ucred, p)) != 0) {
- CCD_DPRINTF(CCDB_FOLLOW | CCDB_INIT,
- ("ccdlookup: getattr error = %d\n", error));
- VOP_UNLOCK(vp, 0, p);
- (void)vn_close(vp, FREAD|FWRITE, p->p_ucred, p);
- return (error);
- }
-
- /* XXX: eventually we should handle VREG, too. */
- if (va.va_type != VBLK) {
- VOP_UNLOCK(vp, 0, p);
- (void)vn_close(vp, FREAD|FWRITE, p->p_ucred, p);
- return (ENOTBLK);
- }
-
-#ifdef DIAGNOSTIC
- CCD_DCALL(CCDB_VNODE, vprint("ccdlookup: vnode info", vp));
-#endif
-
- VOP_UNLOCK(vp, 0, p);
- *vpp = vp;
- return (0);
-}
-
-/*
- * Read the disklabel from the ccd. If one is not present, fake one
- * up.
- */
-int
-ccdgetdisklabel(dev_t dev, struct ccd_softc *cs, struct disklabel *lp,
- int spoofonly)
-{
- struct ccdgeom *ccg = &cs->sc_geom;
-
- bzero(lp, sizeof(*lp));
-
- DL_SETDSIZE(lp, cs->sc_size);
- lp->d_secsize = ccg->ccg_secsize;
- lp->d_nsectors = ccg->ccg_nsectors;
- lp->d_ntracks = ccg->ccg_ntracks;
- lp->d_ncylinders = ccg->ccg_ncylinders;
- lp->d_secpercyl = lp->d_ntracks * lp->d_nsectors;
-
- strncpy(lp->d_typename, "ccd", sizeof(lp->d_typename));
- lp->d_type = DTYPE_CCD;
- strncpy(lp->d_packname, "fictitious", sizeof(lp->d_packname));
- lp->d_flags = 0;
- lp->d_version = 1;
-
- lp->d_magic = DISKMAGIC;
- lp->d_magic2 = DISKMAGIC;
- lp->d_checksum = dkcksum(cs->sc_dkdev.dk_label);
-
- /*
- * Call the generic disklabel extraction routine.
- */
- return readdisklabel(DISKLABELDEV(dev), ccdstrategy,
- cs->sc_dkdev.dk_label, spoofonly);
-}
-
-#ifdef CCDDEBUG
-void
-printiinfo(struct ccdiinfo *ii)
-{
- int ix, i;
-
- for (ix = 0; ii->ii_ndisk; ix++, ii++) {
- printf(" itab[%d]: #dk %d sblk %d soff %d",
- ix, ii->ii_ndisk, ii->ii_startblk, ii->ii_startoff);
- for (i = 0; i < ii->ii_ndisk; i++)
- printf(" %d", ii->ii_index[i]);
- printf("\n");
- }
-}
-#endif
diff --git a/sys/dev/ccdvar.h b/sys/dev/ccdvar.h
deleted file mode 100644
index 998413dc918..00000000000
--- a/sys/dev/ccdvar.h
+++ /dev/null
@@ -1,184 +0,0 @@
-/* $OpenBSD: ccdvar.h,v 1.12 2008/06/26 05:42:14 ray Exp $ */
-/* $NetBSD: ccdvar.h,v 1.11 1996/02/28 01:08:32 thorpej Exp $ */
-
-/*-
- * Copyright (c) 1996 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Jason R. Thorpe.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- * Copyright (c) 1988 University of Utah.
- * Copyright (c) 1990, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * the Systems Programming Group of the University of Utah Computer
- * Science Department.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * from: Utah $Hdr: cdvar.h 1.1 90/07/09$
- *
- * @(#)cdvar.h 8.1 (Berkeley) 6/10/93
- */
-
-/*
- * Dynamic configuration and disklabel support by:
- * Jason R. Thorpe <thorpej@nas.nasa.gov>
- * Numerical Aerodynamic Simulation Facility
- * Mail Stop 258-6
- * NASA Ames Research Center
- * Moffett Field, CA 94035
- */
-
-/*
- * A concatenated disk is described at initialization time by this structure.
- */
-struct ccddevice {
- struct vnode **ccd_vpp; /* array of component vnodes */
- char **ccd_cpp; /* array of component pathnames */
- int ccd_unit; /* logical unit of this ccd */
- int ccd_interleave; /* interleave (DEV_BSIZE blocks) */
- int ccd_flags; /* misc. information */
- int ccd_ndev; /* number of component devices */
-};
-
-/*
- * This structure is used to configure a ccd via ioctl(2).
- */
-struct ccd_ioctl {
- char **ccio_disks; /* pointer to component paths */
- u_int ccio_ndisks; /* number of disks to concatenate */
- int ccio_ileave; /* interleave (DEV_BSIZE blocks) */
- int ccio_flags; /* misc. information */
- int ccio_unit; /* unit number: use varies */
- size_t ccio_size; /* (returned) size of ccd */
-};
-
-/* ccd_flags */
-#define CCDF_SWAP 0x01 /* interleave should be dmmax */
-#define CCDF_UNIFORM 0x02 /* use LCCD of sizes for uniform interleave */
-#define CCDF_MIRROR 0x04 /* enable data mirroring */
-#define CCDF_OLD 0x08 /* legacy */
-#define CCDF_BITS \
- "\020\01swap\02uniform\03mirror\04old"
-
-/* Mask of user-settable ccd flags. */
-#define CCDF_USERMASK \
- (CCDF_SWAP|CCDF_UNIFORM|CCDF_MIRROR|CCDF_OLD)
-
-/*
- * Component info table.
- * Describes a single component of a concatenated disk.
- */
-struct ccdcinfo {
- struct vnode *ci_vp; /* device's vnode */
- char *ci_path; /* path to component */
- size_t ci_size; /* size */
- size_t ci_pathlen; /* length of component path */
- dev_t ci_dev; /* XXX: device's dev_t */
- int ci_flags; /* see below */
-};
-
-#define CCIF_FAILED 0x01 /* had a B_ERROR on this one */
-
-/*
- * Interleave description table.
- * Computed at boot time to speed irregular-interleave lookups.
- * The idea is that we interleave in "groups". First we interleave
- * evenly over all component disks up to the size of the smallest
- * component (the first group), then we interleave evenly over all
- * remaining disks up to the size of the next-smallest (second group),
- * and so on.
- *
- * Each table entry describes the interleave characteristics of one
- * of these groups. For example if a concatenated disk consisted of
- * three components of 5, 3, and 7 DEV_BSIZE blocks interleaved at
- * DEV_BSIZE (1), the table would have three entries:
- *
- * ndisk startblk startoff dev
- * 3 0 0 0, 1, 2
- * 2 9 3 0, 2
- * 1 13 5 2
- * 0 - - -
- *
- * which says that the first nine blocks (0-8) are interleaved over
- * 3 disks (0, 1, 2) starting at block offset 0 on any component disk,
- * the next 4 blocks (9-12) are interleaved over 2 disks (0, 2) starting
- * at component block 3, and the remaining blocks (13-14) are on disk
- * 2 starting at offset 5.
- */
-struct ccdiinfo {
- daddr64_t ii_startblk; /* starting scaled block # for range */
- daddr64_t ii_startoff; /* starting component offset (block #) */
- int *ii_index; /* ordered list of components in range */
- int *ii_parity; /* list of parity shifts */
- int ii_ndisk; /* # of disks range is interleaved over */
-};
-
-/*
- * Concatenated disk pseudo-geometry information.
- */
-struct ccdgeom {
- u_int32_t ccg_secsize; /* # bytes per sector */
- u_int32_t ccg_nsectors; /* # data sectors per track */
- u_int32_t ccg_ntracks; /* # tracks per cylinder */
- u_int32_t ccg_ncylinders; /* # cylinders per unit */
- u_int16_t ccg_rpm;
-};
-
-/*
- * Before you can use a unit, it must be configured with CCDIOCSET.
- * The configuration persists across opens and closes of the device;
- * a CCDIOCCLR must be used to reset a configuration. An attempt to
- * CCDIOCSET an already active unit will return EBUSY. Attempts to
- * CCDIOCCLR an inactive unit will return ENXIO.
- */
-#define CCDIOCSET _IOWR('F', 16, struct ccd_ioctl) /* enable ccd */
-#define CCDIOCCLR _IOW('F', 17, struct ccd_ioctl) /* disable ccd */
diff --git a/sys/sys/conf.h b/sys/sys/conf.h
index f68f068e843..16ce3d9af44 100644
--- a/sys/sys/conf.h
+++ b/sys/sys/conf.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: conf.h,v 1.117 2011/10/06 09:14:35 mikeb Exp $ */
+/* $OpenBSD: conf.h,v 1.118 2011/10/06 20:49:28 deraadt Exp $ */
/* $NetBSD: conf.h,v 1.33 1996/05/03 20:03:32 christos Exp $ */
/*-
@@ -600,9 +600,6 @@ bdev_decl(sw);
bdev_decl(vnd);
cdev_decl(vnd);
-bdev_decl(ccd);
-cdev_decl(ccd);
-
bdev_decl(raid);
cdev_decl(raid);