> Am 29.09.2017 um 17:29 schrieb Mauro Carvalho Chehab 
> <mche...@s-opensource.com>:
> 
> Em Thu, 28 Sep 2017 18:28:32 +0200
> Markus Heiser <markus.hei...@darmarit.de> escreveu:
> 
>> Hi Mauro,
>> 
>>> Am 27.09.2017 um 23:10 schrieb Mauro Carvalho Chehab 
>>> <mche...@s-opensource.com>:
> 
>>> +It is possible to document nested structs unions, like::
>>> +
>>> +      /**
>>> +       * struct nested_foobar - a struct with nested unions and structs
>>> +       * @arg1: - first argument of anonymous union/anonymous struct
>>> +       * @arg2: - second argument of anonymous union/anonymous struct
>>> +       * @arg3: - third argument of anonymous union/anonymous struct
>>> +       * @arg4: - fourth argument of anonymous union/anonymous struct
>>> +       * @bar.st1.arg1 - first argument of struct st1 on union bar
>>> +       * @bar.st1.arg2 - second argument of struct st1 on union bar
>>> +       * @bar.st2.arg1 - first argument of struct st2 on union bar
>>> +       * @bar.st2.arg2 - second argument of struct st2 on union bar

With totally broken I mean "broken in sense of kernel-doc markup".
E.g. the missing ":" at the end of "@bar.st2.arg2:"  instead, there
is a minus "-". And in the first example you gave, there also missed
a ";" at the end of some of the elements. Anyway, the example
above is obsolete.

>>>  
>> 
>> Sorry, this example is totally broken --> below I attached a more
>> elaborate example. 
>> 
>> /* parse-SNIP: my_struct */
>> /**
>> * struct my_struct - a struct with nested unions and structs
>> * @arg1: first argument of anonymous union/anonymous struct
>> * @arg2: second argument of anonymous union/anonymous struct
>> * @arg3: third argument of anonymous union/anonymous struct
>> * @arg4: fourth argument of anonymous union/anonymous struct
>> * @bar.st1.arg1: first argument of struct st1 on union bar
>> * @bar.st1.arg2: second argument of struct st1 on union bar
>> * @bar.st2.arg1: first argument of struct st2 on union bar
>> * @bar.st2.arg2: second argument of struct st2 on union bar
>> * @bar.st3.arg2: second argument of struct st3 on union bar
>> */
>> struct my_struct {
>>   /* Anonymous union/struct*/
>>   union {
>>      struct {
>>          __u8 arg1 : 1;
>>          __u8 arg2 : 3;
>>      };
>>       struct {
>>           int arg1;
>>           int arg2;
>>       };
> 
> I added a:
> 
>       #define __u8 char
> 
> In order to compile the above. As reported by gcc 7, this is broken:
> 
> test2.h:22:16: error: duplicate member ‘arg1’
>            int arg1;
>                ^~~~
> test2.h:23:16: error: duplicate member ‘arg2’
>            int arg2;
>                ^~~~
> 
> You can't have two symbols with the same name on different anonymous
> structs.

Ah, ok lets fix the example.

 -- Markus --

--
To unsubscribe from this list: send the line "unsubscribe linux-doc" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to