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