Mon, Jun 12, 2017 at 03:57:05PM CEST, j...@mojatatu.com wrote:
>On 17-06-12 07:47 AM, Jiri Pirko wrote:
>> Mon, Jun 12, 2017 at 01:16:05PM CEST, j...@mojatatu.com wrote:
>> > On 17-06-11 10:13 AM, Jiri Pirko wrote:
>
>> > This also is not useful.
>> > It happens to be ok for this use case but not for the
>> > general case. i.e.
>> > We need to get the whole struct not just the values
>> > and use the selector to pick what bits are affected.
>> > Example if bit X is set to 1 in selector and bit X in value
>> > is 0, then we set the kernel's bit X to 0.
>> 
>> Sure, have another helper for selector then.
>> Or, you can have:
>> 
>>      struct nla_flag_bits *fb;
>>      fb = nla_get_flag_bits(tb[TCA_ROOT_FLAGS]);
>> 
>> Or all 3 helpers. My point is, it is a specific netlink attribute with
>> specific format, it should have get/put helpers.
>> 
>
>I did try nla_get_flag_bits(tb[TCA_ROOT_FLAGS], &fb) so i dont have
>to do alloc/free - it ended being a single line function which
>does a memcpy.
>Is this really necessary?

Yes please, it is necessary! By the same logic, nla_get_u32 would not be
necessary.

I don't understand why you need alloc/free...


>The user of this structure better know it to make use of it.
>
>cheers,
>jamal

Reply via email to