1*7273ec43Smmehari #include "ieee80211_radiotap.h" 2*7273ec43Smmehari 3*7273ec43Smmehari /* Radiotap header iteration 4*7273ec43Smmehari * implemented in net/wireless/radiotap.c 5*7273ec43Smmehari * docs in Documentation/networking/radiotap-headers.txt 6*7273ec43Smmehari */ 7*7273ec43Smmehari /** 8*7273ec43Smmehari * struct ieee80211_radiotap_iterator - tracks walk thru present radiotap args 9*7273ec43Smmehari * @rtheader: pointer to the radiotap header we are walking through 10*7273ec43Smmehari * @max_length: length of radiotap header in cpu byte ordering 11*7273ec43Smmehari * @this_arg_index: IEEE80211_RADIOTAP_... index of current arg 12*7273ec43Smmehari * @this_arg: pointer to current radiotap arg 13*7273ec43Smmehari * @arg_index: internal next argument index 14*7273ec43Smmehari * @arg: internal next argument pointer 15*7273ec43Smmehari * @next_bitmap: internal pointer to next present u32 16*7273ec43Smmehari * @bitmap_shifter: internal shifter for curr u32 bitmap, b0 set == arg present 17*7273ec43Smmehari */ 18*7273ec43Smmehari 19*7273ec43Smmehari struct ieee80211_radiotap_iterator { 20*7273ec43Smmehari struct ieee80211_radiotap_header *rtheader; 21*7273ec43Smmehari int max_length; 22*7273ec43Smmehari int this_arg_index; 23*7273ec43Smmehari u8 *this_arg; 24*7273ec43Smmehari 25*7273ec43Smmehari int arg_index; 26*7273ec43Smmehari u8 *arg; 27*7273ec43Smmehari __le32 *next_bitmap; 28*7273ec43Smmehari u32 bitmap_shifter; 29*7273ec43Smmehari }; 30*7273ec43Smmehari 31*7273ec43Smmehari extern int ieee80211_radiotap_iterator_init( 32*7273ec43Smmehari struct ieee80211_radiotap_iterator *iterator, 33*7273ec43Smmehari struct ieee80211_radiotap_header *radiotap_header, 34*7273ec43Smmehari int max_length); 35*7273ec43Smmehari 36*7273ec43Smmehari extern int ieee80211_radiotap_iterator_next( 37*7273ec43Smmehari struct ieee80211_radiotap_iterator *iterator); 38*7273ec43Smmehari 39