Date: Mon, 8 Sep 1997 07:37:10 +0200 From: j@uriah.heep.sax.de (J Wunsch) To: hackers@FreeBSD.ORG Subject: Re: Tape question Message-ID: <19970908073710.TX24990@uriah.heep.sax.de> In-Reply-To: <199709072300.QAA23747@usr04.primenet.com>; from Terry Lambert on Sep 7, 1997 23:00:03 %2B0000 References: <19970908001216.PA02497@uriah.heep.sax.de> <199709072300.QAA23747@usr04.primenet.com>
next in thread | previous in thread | raw e-mail | index | archive | help
As Terry Lambert wrote: > Sorry; I was unclear. I should have said "a raw device *driver*". No, you were not unclear. You were wrong. We aren't talking about `partial blocks' or such. We are talking about variable-length recording tape drives, such as DAT, EXB-8mm, or QIC >= 525. In this case, there's nothing like a `partial block', or a read or write attempt crossing a `block boundary'. Any write(2) causes a media block being written of the exact length that has been passed down to this syscall. (Within limits, of course, for FreeBSD <= 64 KB.) Any read(2) syscall is expected to specify a length that is at least the size of the next tape block (otherwise an error will be signalled), and will return the exact amount of bytes in the tape block. The person who's originally got the problem said the above expected behaviour would work on a Sun but not on FreeBSD. My test case was to prove it works on FreeBSD for me (that is, with a SymBios 83c810, and a Tandberg TDC 4222 using QIC-525 cartridges). I can test it again with an AHA-2940 and a DAT drive once i'm at work today. -- cheers, J"org joerg_wunsch@uriah.heep.sax.de -- http://www.sax.de/~joerg/ -- NIC: JW11-RIPE Never trust an operating system you don't have sources for. ;-)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19970908073710.TX24990>