Re: [PATCH 4/6] new kfifo API v0.3 - add DEFINE_KFIFO and friends, add very tiny functions

Joe Perches
2009-08-14T15:21:32Z

On Fri, 2009-08-14 at 13:44 +0200, Stefani Seibold wrote:

Couple of trivial comments

> This is patch 4/6 of the new kfifo API:
> Add KFIFO_INIT - macro to generate a kfifo initializer

Is it really necessary to use KFIFO_INIT and INIT_KFIFO?
I think it'll cause confusion and misuse.

> Add INIT_KFIFO - macro to initialize a with DECLARE_KFIFO declared kfifo

What does the description mean?

> Add DEFINE_KFIFO - macro to define and initialize a kfifo as a global or local object

What does this mean? Is scope relevant to the macro?

I think you should mention somewhere that these macros
actually define 2 objects. "name##_buffer" might have
unexpected clashes and be prefixed with kfifo.
maybe something like "kfifo_##name##_buffer"?

> + * KFIFO_INIT - macro to generate a kfifo initializer
> + * @s: size of the fifo buffer
> + * @b: address of the fifo buffer
> + */
> +#define KFIFO_INIT(s, b) \
> + (struct kfifo) { \
> + .size = s, \
> + .in = 0, \
> + .out = 0, \
> + .buffer = b \
> + }

> +/**
> + * INIT_KFIFO - macro to initialize a with DECLARE_KFIFO declared kfifo
> + * @name: name of the declared kfifo datatype
> + * @size: size of the fifo buffer
> + */
> +#define INIT_KFIFO(name) \
> + name = KFIFO_INIT(sizeof(name##_buffer) - sizeof(struct kfifo), \
> + name##_buffer)

Perhaps

#define __kfifo_initializer ?