Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 31 Oct 2009 19:54:43 +0100
From:      Ed Schouten <ed@80386.nl>
To:        Christian Brueffer <brueffer@FreeBSD.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r198714 - head/sbin/mknod
Message-ID:  <20091031185443.GE1293@hoeg.nl>
In-Reply-To: <200910311222.n9VCMOGk089115@svn.freebsd.org>
References:  <200910311222.n9VCMOGk089115@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--Rm5rkB9L8kG9H2n8
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Hello Christian,

* Christian Brueffer <brueffer@FreeBSD.org> wrote:
> The majors file was removed long ago, 0 should be used instead.

It's a bit more complex than that. Right now devices are automatically
numbered, using a 32-bits integer. The following macros are used to
obtain the minor and major numbers (see <sys/types.h>):

| #define major(x)	((int)(((u_int)(x) >> 8)&0xff))	/* major number */
| #define minor(x)	((int)((x)&0xffff00ff))		/* minor number */

This means that a device number above 255 may (or may not) have a
non-zero major number. Just run the following code:

| #include <fcntl.h>
| #include <stdlib.h>
| #include <unistd.h>
|=20
| int
| main(int argc, char *argv[])
| {
|=20
| 	while (posix_openpt(O_RDWR|O_NOCTTY) >=3D 0);
| 	sleep(30);
| 	return (0);
| }

On my system it even generates device nodes in /dev/pts with a major
number of 4. I wrote a manpage for these macros some time ago. See
makedev(3).

--=20
 Ed Schouten <ed@80386.nl>
 WWW: http://80386.nl/

--Rm5rkB9L8kG9H2n8
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (FreeBSD)

iEYEARECAAYFAkrsh/MACgkQ52SDGA2eCwVVuACfe4j8+CKF2Hb4Rxn3pEbz3Zpz
yYcAnjCOF15CDu9zQoIwL76KydvkWvU1
=A2LX
-----END PGP SIGNATURE-----

--Rm5rkB9L8kG9H2n8--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20091031185443.GE1293>