Subject: Re: lseek(2) & read(2) on raw cd(4) device
To: None <greywolf@starwolf.com>
From: Sean Doran <smd@ebone.net>
List: tech-kern
Date: 08/25/2000 00:10:18
| #         if (CDPART(bp->b_dev) != RAW_PART &&
|
| um, /dev/r?d[0-9]*[a-h] are raw partitions.
| /dev/?d[0-9]*[a-h] are block partitions.

Uhm, "raw partitions" is a bad term; 'un-blocked interfaces' perhaps is clearer?

RAW_PART (see above) is defined in places like this:

./arch/i386/include/disklabel.h:#define RAW_PART        3
               /* raw partition: XX?d (XXX) */

./arch/alpha/include/disklabel.h:#define        RAW_PART        2
	       /* raw partition: xx?c */

So, having learned alot about the "BSD way" of lseek versus vnodes,
can anyone explain to me why we don't do bounds-checking on RAW_PART in
cdstrategy/sdstrategy/etc.?

[Also, should we note in the pax(1) man page that one wants to use !RAW_PART
when writing to / reading from a device whose strategy routine behaves this
way?]

	Sean.