[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20070712161146.78e078b5.akpm@linux-foundation.org>
Date: Thu, 12 Jul 2007 16:11:46 -0700
From: Andrew Morton <akpm@...ux-foundation.org>
To: "Robert P. J. Day" <rpjday@...dspring.com>
Cc: Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] Make asm-generic/ioctl.h more generic using
conditionals.
On Tue, 10 Jul 2007 06:33:26 -0400 (EDT)
"Robert P. J. Day" <rpjday@...dspring.com> wrote:
>
> Allow individual architectures to override a small set of macros
> before including asm-generic/ioctl.h, in order to greatly simplify a
> number of existing ioctl.h files.
>
> The overrideable macros would be:
>
> _IOC_SIZEBITS
> _IOC_DIRBITS
> _IOC_NONE
> _IOC_WRITE
> _IOC_READ
>
> ---
>
> i've submitted this once before, and it didn't seem to garner a lot
> of attention one way or the other. this patch can be applied
> standalone and shouldn't affect anything, but it would subsequently
> allow at least a few ioctl.h files to be shortened considerably.
It would be good if we could see one of these followon patches. If such an
example patch (cc'ed to the arch maintainer, please) looks OK then we can
go ahead with this base patch.
> diff --git a/include/asm-generic/ioctl.h b/include/asm-generic/ioctl.h
> index cd02729..4fb087a 100644
> --- a/include/asm-generic/ioctl.h
> +++ b/include/asm-generic/ioctl.h
> @@ -21,8 +21,19 @@
> */
> #define _IOC_NRBITS 8
> #define _IOC_TYPEBITS 8
> -#define _IOC_SIZEBITS 14
> -#define _IOC_DIRBITS 2
> +
> +/*
> + * Let any architecture override either of the following before
> + * including this file.
> + */
> +
> +#ifndef _IOC_SIZEBITS
> +# define _IOC_SIZEBITS 14
> +#endif
> +
> +#ifndef _IOC_DIRBITS
> +# define _IOC_DIRBITS 2
> +#endif
>
> #define _IOC_NRMASK ((1 << _IOC_NRBITS)-1)
> #define _IOC_TYPEMASK ((1 << _IOC_TYPEBITS)-1)
> @@ -35,11 +46,21 @@
> #define _IOC_DIRSHIFT (_IOC_SIZESHIFT+_IOC_SIZEBITS)
>
> /*
> - * Direction bits.
> + * Direction bits, which any architecture can choose to override
> + * before including this file.
> */
> -#define _IOC_NONE 0U
> -#define _IOC_WRITE 1U
> -#define _IOC_READ 2U
> +
> +#ifndef _IOC_NONE
> +# define _IOC_NONE 0U
> +#endif
> +
> +#ifndef _IOC_WRITE
> +# define _IOC_WRITE 1U
> +#endif
> +
> +#ifndef _IOC_READ
> +# define _IOC_READ 2U
> +#endif
>
> #define _IOC(dir,type,nr,size) \
> (((dir) << _IOC_DIRSHIFT) | \
>
> --
> ========================================================================
> Robert P. J. Day
> Linux Consulting, Training and Annoying Kernel Pedantry
> Waterloo, Ontario, CANADA
>
> http://fsdev.net/wiki/index.php?title=Main_Page
> ========================================================================
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists