Re: [patch 07/26] Add INIT_ARRAY() to kernel.h

Mathieu Desnoyers
2008-01-24T21:04:46Z

* Randy Dunlap (randy.dunlap@oracle.com) wrote:
> On Thu, 24 Jan 2008 15:27:13 -0500 Mathieu Desnoyers wrote:
>
> > Add initialization of an array, which needs brackets that would pollute kernel
> > code, to kernel.h. It is used to declare arguments passed as function parameters
>
> Hi Mathieu,
>
> Maybe you have explained this previously, but please give a short
> explanation of "brackets that would pollute kernel code".
>
> Thanks.
>

Try opening such code in vim, and the syntax highlighting gets all
messed up :-/

The other option is to do the *right thing* and fix vim, of course, but
this change won't be in distros for a while.

Mathieu

> > such as:
> > text_poke(addr, INIT_ARRAY(unsigned char, 0xf0, len), len);
> >
> > Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
> > ---
> > include/linux/kernel.h | 2 ++
> > 1 file changed, 2 insertions(+)
> >
> > Index: linux-2.6-lttng.mm/include/linux/kernel.h
> > ===================================================================
> > --- linux-2.6-lttng.mm.orig/include/linux/kernel.h 2008-01-24 14:10:54.000000000 -0500
> > +++ linux-2.6-lttng.mm/include/linux/kernel.h 2008-01-24 14:23:06.000000000 -0500
> > @@ -423,4 +423,6 @@ struct sysinfo {
> > #define NUMA_BUILD 0
> > #endif
> >
> > +#define INIT_ARRAY(type, val, len) ((type [len]) { [0 ... (len)-1] = (val) })
> > +
> > #endif
>
> ---
> ~Randy