Thu, Oct 22, 2009 at 04:18:32PM CEST, [email protected] wrote:
>On Thu, 2009-10-22 at 15:52 +0200, Jiri Pirko wrote:
>> This helpers should be used by network drivers to access to netdev
>> multicast lists.
>[...]
>> +static inline void netdev_mc_walk(struct net_device *dev,
>> +                              void (*func)(void *, unsigned char *),
>> +                              void *data)
>> +{
>> +    struct dev_addr_list *mclist;
>> +    int i;
>> +
>> +    for (i = 0, mclist = dev->mc_list; mclist && i < dev->mc_count;
>> +         i++, mclist = mclist->next)
>> +            func(data, mclist->dmi_addr);
>> +}
>[...]
>
>We usually implement iteration as macros so that any context doesn't
>have to be squeezed through a single untyped (void *) variable.  A macro
>for this would look something like:
>
>#define netdev_for_each_mc_addr(dev, addr)                                     
>        \
>       for (addr = (dev)->mc_list ? (dev)->mc_list->dmi_addr : NULL;           
>         \
>            addr;                                                              
>         \
>            addr = (container_of(addr, struct dev_addr_list, dmi_addr)->next ? 
>         \
>                    container_of(addr, struct dev_addr_list, 
> dmi_addr)->next->dmi_addr : \
>                    NULL))

I admit this would look better. Going to change this and then repost.

Thanks Ben

>
>Once you change the list type this can presumably be made less ugly.
>
>Ben.
>
>-- 
>Ben Hutchings, Senior Software Engineer, Solarflare Communications
>Not speaking for my employer; that's the marketing department's job.
>They asked us to note that Solarflare product names are trademarked.
>

------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
E1000-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/e1000-devel

Reply via email to