[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] misc *BSD fixes (device names, support for non-BSD userland)
From: |
Robert Millan |
Subject: |
Re: [PATCH] misc *BSD fixes (device names, support for non-BSD userland) |
Date: |
Wed, 13 Aug 2003 17:17:22 +0000 |
User-agent: |
Mutt/1.5.4i |
On Mon, Jul 28, 2003 at 02:29:14AM +0000, Robert Millan wrote:
>
> Hi there,
>
> Any comments on this patch? I sent it a week ago but haven't recieved
> any response..
Second ping on this..
I noticed that Okuji is offline for a while and he asked other developers
with CVS access to maintain it till he's back. Is any active developer with
write access around?
> On Tue, Jul 22, 2003 at 06:57:25PM +0000, Robert Millan wrote:
> >
> > Hi!
> >
> > I made a patch with some *BSD related fixes:
> >
> > - Add compatibility for non-BSD systems using *BSD kernels (such as
> > GNU/FreeBSD). These don't define __*BSD__, but do define __*BSD_kernel__,
> > so i added compatibility defines in lib/device.c and then switch
> > from __*BSD__ to __*BSD_kernel__ (see the patch, it's self-explanatory)
> > - Devices for FreeBSD's kernel are outdated. Recent 5.x versions don't
> > add a "r" prefix to the device name, so it is now "fd%d", "ad%d", etc.
> > I'm adding a detection for __FreeBSD_kernel__'s version number.
> >
> > My patch differed against pristine sources would conflict with my dynamic
> > allocation one sent a while ago, so I'm differing against my patched
> > version.
> >
> > You need to apply my previous patch [1] before this one. If this is a
> > problem
> > tell me and i'll adapt my changes.
> >
> > [1] http://mail.gnu.org/archive/html/bug-grub/2003-07/msg00055.html
> >
> > --
> > Robert Millan
>
> > diff -ur grub.old/lib/device.c grub/lib/device.c
> > --- grub.old/lib/device.c 2003-07-22 05:40:40.000000000 +0200
> > +++ grub/lib/device.c 2003-07-22 05:52:46.000000000 +0200
> > @@ -35,6 +35,15 @@
> > #include <errno.h>
> > #include <limits.h>
> >
> > +/* compatibility for non-BSD systems using *BSD kernels */
> > +#if defined(__FreeBSD__) && !defined(__FreeBSD_kernel__)
> > +# define __FreeBSD_kernel__ __FreeBSD__
> > +#elif defined(__NetBSD__) && !defined(__NetBSD_kernel__)
> > +# define __NetBSD_kernel__ __NetBSD__
> > +#elif defined(__OpenBSD__) && !defined(__OpenBSD_kernel__)
> > +# define __OpenBSD_kernel__ __OpenBSD__
> > +#endif
> > +
> > #ifdef __linux__
> > # if !defined(__GLIBC__) || \
> > ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1)))
> > @@ -71,11 +80,11 @@
> > # endif /* ! BLKGETSIZE */
> > #endif /* __linux__ */
> >
> > -#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
> > +#if defined(__FreeBSD_kernel__) || defined(__NetBSD_kernel__) ||
> > defined(__OpenBSD_kernel__)
> > # include <sys/ioctl.h> /* ioctl */
> > # include <sys/disklabel.h>
> > # include <sys/cdio.h> /* CDIOCCLRDEBUG */
> > -#endif /* __FreeBSD__ || __NetBSD__ || __OpenBSD__ */
> > +#endif /* __FreeBSD_kernel__ || __NetBSD_kernel__ || __OpenBSD_kernel__ */
> >
> > #ifdef HAVE_OPENDISK
> > # include <util.h>
> > @@ -116,8 +125,8 @@
> > return;
> > }
> >
> > -#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
> > - /* FreeBSD, NetBSD or OpenBSD */
> > +#elif defined(__FreeBSD_kernel__) || defined(__NetBSD_kernel__) ||
> > defined(__OpenBSD_kernel__)
> > + /* kernel of FreeBSD, NetBSD or OpenBSD */
> > {
> > struct disklabel hdg;
> > if (ioctl (fd, DIOCGDINFO, &hdg))
> > @@ -199,15 +208,19 @@
> > #elif defined(__GNU__)
> > /* GNU/Hurd */
> > asprintf (&name, "/dev/fd%d", unit);
> > -#elif defined(__FreeBSD__)
> > - /* FreeBSD */
> > +#elif defined(__FreeBSD_kernel__)
> > + /* kernel of FreeBSD */
> > +# if __FreeBSD_kernel__ >= 5
> > + asprintf (&name, "/dev/fd%d", unit);
> > +# else /* __FreeBSD_kernel__ <= 4 */
> > asprintf (&name, "/dev/rfd%d", unit);
> > -#elif defined(__NetBSD__)
> > - /* NetBSD */
> > +# endif /* __FreeBSD_kernel__ <= 4 */
> > +#elif defined(__NetBSD_kernel__)
> > + /* kernel of NetBSD */
> > /* opendisk() doesn't work for floppies. */
> > asprintf (&name, "/dev/rfd%da", unit);
> > -#elif defined(__OpenBSD__)
> > - /* OpenBSD */
> > +#elif defined(__OpenBSD_kernel__)
> > + /* kernel of OpenBSD */
> > asprintf (&name, "/dev/rfd%dc", unit);
> > #elif defined(__QNXNTO__)
> > /* QNX RTP */
> > @@ -230,15 +243,17 @@
> > #elif defined(__GNU__)
> > /* GNU/Hurd */
> > asprintf (&name, "/dev/hd%d", unit);
> > -#elif defined(__FreeBSD__)
> > - /* FreeBSD */
> > -# if __FreeBSD__ >= 4
> > +#elif defined(__FreeBSD_kernel__)
> > + /* kernel of FreeBSD */
> > +# if __FreeBSD_kernel__ >= 5
> > + asprintf (&name, "/dev/ad%d", unit);
> > +# elif __FreeBSD_kernel__ >= 4
> > asprintf (&name, "/dev/rad%d", unit);
> > -# else /* __FreeBSD__ <= 3 */
> > +# else /* __FreeBSD_kernel__ <= 3 */
> > asprintf (&name, "/dev/rwd%d", unit);
> > -# endif /* __FreeBSD__ <= 3 */
> > -#elif defined(__NetBSD__) && defined(HAVE_OPENDISK)
> > - /* NetBSD */
> > +# endif /* __FreeBSD_kernel__ <= 3 */
> > +#elif defined(__NetBSD_kernel__) && defined(HAVE_OPENDISK)
> > + /* kernel of NetBSD */
> > char shortname[16];
> > int fd;
> > name = malloc (16); // FIXME: can opendisk deal with dynamic buffers?
> > @@ -249,8 +264,8 @@
> > 0 /* char device */
> > );
> > close (fd);
> > -#elif defined(__OpenBSD__)
> > - /* OpenBSD */
> > +#elif defined(__OpenBSD_kernel__)
> > + /* kernel of OpenBSD */
> > asprintf (&name, "/dev/rwd%dc", unit);
> > #elif defined(__QNXNTO__)
> > /* QNX RTP */
> > @@ -275,11 +290,15 @@
> > #elif defined(__GNU__)
> > /* GNU/Hurd */
> > asprintf (&name, "/dev/sd%d", unit);
> > -#elif defined(__FreeBSD__)
> > - /* FreeBSD */
> > +#elif defined(__FreeBSD_kernel__)
> > + /* kernel of FreeBSD */
> > +# if __FreeBSD_kernel__ >= 5
> > + asprintf (&name, "/dev/da%d", unit);
> > +# else /* __FreeBSD_kernel__ <= 4 */
> > asprintf (&name, "/dev/rda%d", unit);
> > -#elif defined(__NetBSD__) && defined(HAVE_OPENDISK)
> > - /* NetBSD */
> > +# endif /* __FreeBSD_kernel__ <= 4 */
> > +#elif defined(__NetBSD_kernel__) && defined(HAVE_OPENDISK)
> > + /* kernel of NetBSD */
> > char shortname[16];
> > int fd;
> > name = malloc (16); // FIXME: can opendisk deal with dynamic buffers?
> > @@ -290,8 +309,8 @@
> > 0 /* char device */
> > );
> > close (fd);
> > -#elif defined(__OpenBSD__)
> > - /* OpenBSD */
> > +#elif defined(__OpenBSD_kernel__)
> > + /* kernel of OpenBSD */
> > asprintf (&name, "/dev/rsd%dc", unit);
> > #elif defined(__QNXNTO__)
> > /* QNX RTP */
> > @@ -378,12 +397,12 @@
> > # endif /* ! CDROM_GET_CAPABILITY */
> > #endif /* __linux__ */
> >
> > -#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
> > +#if defined(__FreeBSD_kernel__) || defined(__NetBSD_kernel__) ||
> > defined(__OpenBSD_kernel__)
> > # ifdef CDIOCCLRDEBUG
> > if (ioctl (fileno (fp), CDIOCCLRDEBUG, 0) >= 0)
> > return 0;
> > # endif /* CDIOCCLRDEBUG */
> > -#endif /* __FreeBSD__ || __NetBSD__ || __OpenBSD__ */
> > +#endif /* __FreeBSD_kernel__ || __NetBSD_kernel__ || __OpenBSD_kernel__ */
> >
> > /* Attempt to read the first sector. */
> > if (fread (buf, 1, 512, fp) != 512)
>
> > _______________________________________________
> > Bug-grub mailing list
> > address@hidden
> > http://mail.gnu.org/mailman/listinfo/bug-grub
>
>
> --
> Robert Millan
>
> "[..] but the delight and pride of Aule is in the deed of making, and in the
> thing made, and neither in possession nor in his own mastery; wherefore he
> gives and hoards not, and is free from care, passing ever on to some new
> work."
>
> -- J.R.R.T, Ainulindale (Silmarillion)
>
>
> _______________________________________________
> Bug-grub mailing list
> address@hidden
> http://mail.gnu.org/mailman/listinfo/bug-grub
--
Robert Millan
"[..] but the delight and pride of Aule is in the deed of making, and in the
thing made, and neither in possession nor in his own mastery; wherefore he
gives and hoards not, and is free from care, passing ever on to some new work."
-- J.R.R.T, Ainulindale (Silmarillion)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [PATCH] misc *BSD fixes (device names, support for non-BSD userland),
Robert Millan <=