Re: possible SCSI device numbering solution

Albert Cahalan (albert@ccs.neu.edu)
Wed, 26 Jun 1996 14:29:25 -0400 (EDT)


> > Break up device numbers on nibble boundries for readability.
> >=20
> > controller:4
> > bus:4
> > device:8
> > lun:8
> > partition:4
> >=20
> > Hmmm, that is only 28 bits. Did I miss something? If SCSI, IDE,
> > and all the weird stuff gets unified naming, then 36 bits are left
> > over! Even with 8-bit partition numbers, 32 bits is enough.
> >=20
>
> Major number maybe?! [And no, we are *NOT* getting rid of the major nu=
> mber.]
>
> -hpa

The major number is useful for character devices, which can be
split 12:20. For block devices, a block device is just a block
device. If you just need a major number to fill some software
"need", then just make it 0 for all block devices.

I think these are the most practical suggestions so far:

16:16 Fits in existing struct, symmetric. Too small?
12:20 for char, 0:32 for block. Fits in existing struct.
32:32 This is symmetric.
16:48 48-bit minors are great for disks.
16:32 Almost like above, with padding. Better for "ls -l /dev"

32-bit is easy to fit in the inode. I suspect that 64-bit numbers
would require a hacked fsck (because numbers go in the block list).

16:48 is awesome: With a major for Ethernet, every ethernet card in
the world can have its own minor. With a major for TCP/IP, every port
on every machine can have a minor number. With a major for IDE, every
sector (byte?) on every disk in a machine can have a minor number.

What about tar? I know it can be compiled to support HP-UX 32-bit
device numbers. Can it do 64-bit device numbers? What about cpio?

Being practical, I think 12:20/0:32 is the best choice.