From: Johannes Berg Date: Thu, 7 Feb 2019 20:44:41 +0000 (+0100) Subject: cfg80211: add and use strongly typed element iteration macros X-Git-Url: https://jxself.org/git/?a=commitdiff_plain;h=1a1623e0968ebe738c2f6e3f6e2d95d74f9fa187;hp=1a1623e0968ebe738c2f6e3f6e2d95d74f9fa187;p=carl9170fw.git cfg80211: add and use strongly typed element iteration macros Rather than always iterating elements from frames with pure u8 pointers, add a type "struct element" that encapsulates the id/datalen/data format of them. Then, add the element iteration macros * for_each_element * for_each_element_id * for_each_element_extid which take, as their first 'argument', such a structure and iterate through a given u8 array interpreting it as elements. While at it and since we'll need it, also add * for_each_subelement * for_each_subelement_id * for_each_subelement_extid which instead of taking data/length just take an outer element and use its data/datalen. Also add for_each_element_completed() to determine if any of the loops above completed, i.e. it was able to parse all of the elements successfully and no data remained. Use for_each_element_id() in cfg80211_find_ie_match() as the first user of this. Signed-off-by: Johannes Berg Signed-off-by: Christian Lamparter ---