[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Linux device number bug report
From: |
Shen Feng |
Subject: |
Re: Linux device number bug report |
Date: |
Thu, 15 Jan 2004 08:38:36 +0800 |
Hello,
No. It's the latest glibc.
Please refer to /usr/include/sys/sysmacros.h.
The Linux device number is extended to 32 bit, not 16 bit.
As following, "major" should be 12-bit, and "minor" should be 20-bit.
mmmm mmmm mmmm MMMM MMMM MMMM mmmm mmmm
"M" means major device number.
"m" means minor device number.
Regards,
Shen Feng
--------------------------------------------------
Dept. of Technology and Development
Nanjing Fujitsu Nanda Software Tech. Co., Ltd.(FNST)
No. 16-5, Guanzhou Rd., Nanjing, P.R.China
PHONE: +86+25-86630523-633
FUJITSU INTERNAL: 79955-633
FAX: +86+25-83317685
Mail: address@hidden
--------------------------------------------------
----- Original Message -----
From: "Yoshinori K. Okuji" <address@hidden>
To: "Shen Feng" <address@hidden>
Cc: <address@hidden>
Sent: Wednesday, January 14, 2004 7:43 PM
Subject: Re: Linux device number bug report
> On Tuesday 13 January 2004 04:38, Shen Feng wrote:
> > I think the following code in lib/device.c
> >
> > 60 # ifndef MAJOR
> > 61 # ifndef MINORBITS
> > 62 # define MINORBITS 8
> > 63 # endif /* ! MINORBITS */
> > 64 # define MAJOR(dev) ((unsigned int) ((dev) >> MINORBITS))
> > 65 # endif /* ! MAJOR */
> >
> > should be changed as following:
> >
> > 60 # ifndef MAJOR
> > 61 # define MAJOR(dev) ((dev >> 8) & 0xfff) | ((unsigned
> > int) (dev >> 32) & ~0xfff) 62 # endif /* ! MAJOR */
>
> It seems not to change anything. Did you try the code?
>
> > The code "((dev >> 8) & 0xfff) | ((unsigned int) (dev >> 32) &
> > ~0xfff)" is from glibc. I think this will fix the Linux device number
> > extention bug. Is it OK?
>
> I guess it is in an old version of glibc.
>
> Okuji