diff options
author | Theo de Raadt <deraadt@cvs.openbsd.org> | 2011-10-06 20:49:30 +0000 |
---|---|---|
committer | Theo de Raadt <deraadt@cvs.openbsd.org> | 2011-10-06 20:49:30 +0000 |
commit | 0647d56dd089f299d35587686681e19ad074627d (patch) | |
tree | 0bd77a196ba8c5bf639b51b50f88745e18caeec0 /sys | |
parent | a4b88cea1f45014461763fd53d46221663687d94 (diff) |
ccd goes to the attic
discussed with jsing and millert
Diffstat (limited to 'sys')
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); |