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

Randy Dunlap
2008-01-24T21:00:44Z

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.

> 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