Re: [PATCH v3 1/3] iio: add struct declarations for iio types

From: Andy Shevchenko
Date: Mon Nov 28 2022 - 09:06:29 EST


On Mon, Nov 28, 2022 at 02:48:48PM +0100, Michael Riesch wrote:
> On 11/28/22 14:27, Andy Shevchenko wrote:
> > On Mon, Nov 28, 2022 at 01:18:04PM +0100, Gerald Loacker wrote:
> >> Am 25.11.2022 um 12:01 schrieb Andy Shevchenko:

...

> > It's a rule to use _t for typedef:s in the kernel. That's why
> > I suggested to leave struct definition and only typedef the same structures
> > (existing) to new names (if needed).
>
> Andy, excuse our ignorance but we are not sure how this typedef approach
> is supposed to look like...
>
> >> or
> >
> >> typedef iio_val_int_plus_micro iio_val_int_plus_micro_db;
>
> ... because
>
> #include <stdio.h>
>
> struct iio_val_int_plus_micro {
> int integer;
> int micro;
> };
>
> typedef iio_val_int_plus_micro iio_val_int_plus_micro_db;
>
> int main()
> {
> struct iio_val_int_plus_micro a = { .integer = 100, .micro = 10, };
> struct iio_val_int_plus_micro_db b = { .integer = 20, .micro = 10, };
> return 0;
> }
>
> won't compile.

I see. Thanks for pointing this out.

Then the question is why do we need the two same structures with different
names?

--
With Best Regards,
Andy Shevchenko