Subject: Re: major device numbers
To: Valentin Pepelea <firstname.lastname@example.org>
From: Jason Thorpe <email@example.com>
Date: 01/28/1999 12:01:09
On Wed, 27 Jan 1999 15:30:40 -0800 (PST)
Valentin Pepelea <firstname.lastname@example.org> wrote:
> I'm confused about major device numbers. The 'ls -l /dev/*wd0*' command shows
> both character and block disk devices using major number 16. How is this
> possible? Attempting to clear out the confusion, I read /dev/ata/wd.c to see
> what numbers it uses. There I can find the statement
> wdstrategy = readdisklabel(MAKEWDDEV(0, wd->sc_dev.dv_unit, RAW_PART), ...
> which implies that /dev/rwd0c uses major number 0. Ok, I give up. :-P
Character and block devices are in different tables altogether, so having
the same major both both does not constitute a collision.
On the issue of hard-coding major 0 into wd.c, "who thought that was a good
idea?!" It's certainly not correct on all ports.
Also, for the most part, once you're IN a driver, the major number doesn't
matter a whole lot... note that the line in wdgetdisklabel() _passes in_
a pointer to wdstrategy()... the major number is only used to select which
driver is used, and since the driver is being referenced directly, it's
-- Jason R. Thorpe <email@example.com>