Re: [PATCH v2 09/13] scripts: kernel-doc: parse next structs/unions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> Am 29.09.2017 um 17:29 schrieb Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxxx>:
> 
> Em Thu, 28 Sep 2017 18:28:32 +0200
> Markus Heiser <markus.heiser@xxxxxxxxxxx> escreveu:
> 
>> Hi Mauro,
>> 
>>> Am 27.09.2017 um 23:10 schrieb Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxxx>:
> 
>>> +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 --




[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux