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

Stefani Seibold
2009-08-14T17:04:14Z

Am Freitag, den 14.08.2009, 08:20 -0700 schrieb Joe Perches:
> 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.

You are right.

> > + * 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 ?
>

I like your idea to rename into __kfifo_initializer. It is only for internal use.

>
>
> > Add INIT_KFIFO - macro to initialize a with DECLARE_KFIFO declared kfifo
>
> What does the description mean?

Exactly what it meas. If you declare a kfifo with DECLARE_KIFO than you
must initialize this fifo which INIT_KFIFO.

>
> > 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?
>

Yes, the scope is relevant, because i found no way to use unnamed unions
for global or local declarations in a way i need it.

> 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"?
>

Maybe name it name##_kfifo_buffer?

But before doing this i will wait for more response and for inclusion
into -mm. If i get an okay i will do a maintainance patch. It is to much
work to handle this splitted patches.

Grettings,
Stefani