Commit Graph

68 Commits

Author SHA1 Message Date
John Dyson
c0b89506ba Fix CCD for bounced devices. 1997-01-10 04:09:13 +00:00
Poul-Henning Kamp
bfbb029d87 Remove devconf, it never grew up to be of any use. 1996-09-06 23:09:20 +00:00
Satoshi Asami
34f3521636 Fail when odd number of disks are specified with mirror flag. Memory
leak fixes.  Miscellaneous cleanup.

Partially submitted by:	Matt White <mwhite+@CMU.EDU>
1996-07-24 23:45:24 +00:00
Poul-Henning Kamp
cba8a5ddd3 Make a "DWIM" function for adding [bc]devsw entries for bdev drivers.
Saves about 280 butes of source per driver, 56 bytes in object size
and another 56 bytes moves from data to bss.

No functional change intended nor expected.

GENERIC should be about one k smaller now :-)
1996-07-23 21:52:43 +00:00
Poul-Henning Kamp
10bc064c3a Substitute raw{read|write} for ccd{read|write} 1996-07-21 09:28:03 +00:00
Gary Palmer
c23670e294 Clean up -Wunused warnings.
Reviewed by:		bde
1996-06-12 05:11:41 +00:00
Satoshi Asami
1af0e025c9 Add #ifndef/#endif around the "#define CCD_OFFSET 16", so you can override
it in your kernel config file.

Requested (in essence) by:	phk
1996-05-13 09:17:42 +00:00
Satoshi Asami
0d88ef072c Leave 16 lines in front of each component partition. It's now safe to
use sd87a or sd237e even if they start at the beginning of the slice.

You can also use sd85c if you prefer, although you need to change the
type field in the disklabel to "4.2BSD".
1996-05-13 08:38:15 +00:00
Satoshi Asami
52faebb233 Add missing "int" to static var. 1996-04-24 09:42:22 +00:00
Satoshi Asami
e73228724f Change how mirror writes are handled, according to the discussion on the
mailing list.

When initiating a write, ccdbuffer() returns two "struct ccdbuf *"s
linked together by the cb_mirror field.  "cb_pflags &
CCDPF_MIRROR_DONE" is set to 0 on both of them.

When a component returns to ccdiodone(), it checks if "cb_pflags &
CCDPF_MIRROR_DONE" is set or not.  If not, it sets the partner's
flag and returns.  If it is, it means its partner has already
returned, so it will go to the regular cleanup (which is in the
fallthrough code).

There should be no performance or functionality changes unless the
higher-level scsi driver does something with the resid value.  The change
is purely aesthetical and prepares us for the parity implementation.
1996-03-26 02:29:11 +00:00
Satoshi Asami
e2a13e8c60 Ported to 2.2-current. Uses [bc]devsw_add(), and is also now a proper
pseudo-device.

Doesn't use devfs correctly yet.
1996-03-21 04:13:25 +00:00
Satoshi Asami
b8e29b5517 Fix one warning and fix one bug found while looking at another warning (but
caused by a different reason):

. #ifndef __FreeBSD__ around check for negative size, FreeBSD size_t is
  unsigned

. Disable mirror/parity if interleave size is 0 (i.e., serial concatenation).
1996-01-31 11:25:46 +00:00
Satoshi Asami
3bc746be91 Mirror support. When CCDF_MIRROR is set:
(1) The reads are always done from the first n/2 disks.

(2) Each write is done twice, to the "data" disk (in the first half) and
    the "mirror" disk (in the second half).

ccdbuffer() now takes an extra argument (struct ccdbuf **) and stores
the pointer to ccdbuf in there.  In case of a mirrored write, it
allocates and stores two pointers.  The "residual" is also doubled
for mirrored writes so that ccdiodone() can correctly tell when all
the writes are done.
1996-01-31 03:28:21 +00:00
Satoshi Asami
09b5920411 Prepare for adding mirroring. Check for flags (mirror forces uniform),
reduce the size to half, etc.  Right now it only uses the first n/2 disks
for both read and write.
1996-01-30 22:34:53 +00:00
Satoshi Asami
7ecb65fa26 Prepare to add support for parity. Report the post-parity size,
allocate space around parity blocks.
1996-01-02 23:32:54 +00:00
Satoshi Asami
aa8bdaec2b Added $Id$. 1995-12-28 00:22:45 +00:00
Satoshi Asami
d8594dfb93 Changes to make it work on FreeBSD-2.1. 1995-12-27 10:53:21 +00:00
Satoshi Asami
a56bb8a5cc ccd.c and ccd.4 from NetBSD-current circa 12/25/95. 1995-12-27 10:49:19 +00:00