Subject: Re: libahdi [Re: CVS commit: basesrc]
To: None <tech-userlevel@netbsd.org>
From: der Mouse <mouse@Rodents.Montreal.QC.CA>
List: tech-userlevel
Date: 02/15/2000 17:08:52
>> What's the "root sector"?  [...]
> [Atari-specific explanation]

That belongs in the Atari-specific goop, then, it seems to me, rather
than being up at the top level where all ports have it even when it's
meaningless to most of them.

>> As for Suns, well, I've got 16-partition disks on /sparc and /sun3
>> already.
> Is this compatible with native Sun disklabels?

Yes: if partitions i through p are all size=0 offset=0 the resulting
label is exactly a native Sun label, and even if they're not, all other
Sun label-readers I know of can still use partitions a through h
normally.  (There's a chunk of unused space in native Sun labels; I put
the `extra' 8 partitions there, with magic numbers and checksums.)

>>>   Data sizes
>>>     All data sizes must be explicitly specified.
>> Only if there are structs describing "foreign" on-disk data
>> structures (often a bad idea anyway, if only for endianness
>> reasons).
> But, see above.  I think the same struct should be able to describe
> one ports on-disk data structure for all ports.

This is not possible.  Take Sun labels, for example: there is no way to
write a struct definition for a little-endian machine that accurately
describes a (big-endian) Sun label...at least not unless and until it's
possible to do something like

	__byteswapped__ u_int32_t sl_magic;

(or perhaps __bigendian__ and __littlendian__; I can see uses for all
three).

> The Atari also uses a partition 'type' - a 3 byte partition id.
> Presumably not compatible with the DOS partition type?

How could it be, when the DOS type is only eight bits long? :-)

					der Mouse

			       mouse@rodents.montreal.qc.ca
		     7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B