Commit Graph

23 Commits

Author SHA1 Message Date
thorpej
5b39541e48 New generic disk framework. Highlights:
- New metrics handling.  Metrics are now kept in the new
	  `struct disk'.  Busy time is now stored as a timeval, and
	  transfer count in bytes.

	- Storage for disklabels is now dynamically allocated, so that
	  the size of the disk structure is not machine-dependent.

	- Several new functions for attaching and detaching disks, and
	  handling metrics calculation.

Old-style instrumentation is still supported in drivers that did it before.
However, old-style instrumentation is being deprecated, and will go away
once the userland utilities are updated for the new framework.

For usage and architectural details, see the forthcoming disk(9) manual
page.
1996-01-07 22:01:38 +00:00
thorpej
7268bf552d When unconfiguring a ccd, only free as many interleave indices as
were allocated, which may not be the same as the number of components
in the ccd.  From Don Lewis <gdonl@gv.ssi1.com>.  Fixes PR #1820.
1995-12-08 19:13:26 +00:00
thorpej
664cb04670 Fix a race condition where if a process is asleep waiting on an
exclusive lock of a ccd device while another process is unconfiguring
that same device, the first process would never awaken (unless interrupted).
1995-11-06 19:58:01 +00:00
thorpej
f85819bc44 In ccdstart(), only translate the block number from partition-relative
to absolute if part != RAW_PART.
1995-11-03 02:35:54 +00:00
thorpej
89d4987e5d Fix bad pointer deref, memory leak, and geometry calculation, pointed
out by Jochen Pohl in PR #1588.  Change the interleave index to an
array of ints rather than an array of chars to avoid losing in the event
one has more than 127 components.
1995-10-12 21:28:32 +00:00
thorpej
a1bc374083 Batting 1.000: fix a potential panic situation in ccdioctl() that can occur
if ccdinit() fails.
1995-10-09 05:37:57 +00:00
thorpej
ab0109ad89 Fix up a couple of comments. 1995-10-09 05:21:09 +00:00
thorpej
4e3112d39b Add the partition offset to the block number in ccdstart() as opposed
to ccdstrategy(), and do it in a way that doesn't corrupt the block number
for residuals.  (What was I _thinking_?!)
1995-10-09 01:45:34 +00:00
thorpej
b8dcfbd303 Implement a simple locking mechanism and use it, for sanity's sake.
In ccdopen(), don't update the disklabel if any partition is already open.
Prevents race bewteen ccdstrategy() and ccdgetdisklabel().
1995-10-09 00:46:45 +00:00
thorpej
7e85a5a412 Fix misplaced #ifdef. 1995-09-06 04:15:59 +00:00
thorpej
0696b30519 Wrap dk stats stuff in `#ifdef WORKING_DISK_STATISTICS'. Takes care
of PR #1388 until such time as dk stats works on all ports.  XXX !!
1995-08-29 23:13:44 +00:00
thorpej
a2db2c1899 Fix typo, pointed out by cross@va.pubnix.com (Chris P. Ross). 1995-08-21 18:25:52 +00:00
thorpej
77d85de272 New version of ccd. Allows dynamic run-time configuration and
unconfiguration and supports disklabels.
1995-08-17 16:31:30 +00:00
mycroft
7263209ce6 Make each disk and tape driver define its own read and write functions.
Deprecate rawread() and rawwrite() completely.  Remove d_strategy from cdevsw to
force the abstraction barrier.
1995-07-04 07:15:28 +00:00
cgd
bc9de32349 make dump stubs consistent 1995-06-26 05:34:44 +00:00
cgd
f6589edbc7 spaces -> tab 1995-03-09 02:20:34 +00:00
cgd
a44a276543 from jason thorpe: add ccdclose(), make it work with the MI scsi code,
and add knowledge of i386 disk device names (XXX).
1995-03-02 06:40:38 +00:00
cgd
f694af6712 don't overload buffer structs; allocate and use a 'super-struct' instead. 1995-03-02 06:38:11 +00:00
cgd
6ac2bbfc35 be more careful with types, also pull in headers where necessary. 1994-10-30 21:43:03 +00:00
mycroft
06476a4e53 ccdevsw --> cdevsw 1994-08-14 07:41:08 +00:00
hpeyerl
3214723fcf These should have been the 4.4Lite versions. duh. 1994-07-02 06:03:47 +00:00
cgd
cf92afd66e New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD' 1994-06-29 06:29:24 +00:00
hpeyerl
6f9db1ee2d Concat disk driver moved from hp300/dev to here. 1994-06-24 14:11:02 +00:00