41 lines
1.2 KiB
C
41 lines
1.2 KiB
C
#ifndef __RADIOTAP_ITER_H
|
|
#define __RADIOTAP_ITER_H
|
|
|
|
#include "radiotap.h"
|
|
|
|
/* Radiotap header iteration
|
|
* implemented in radiotap.c
|
|
*/
|
|
/**
|
|
* struct ieee80211_radiotap_iterator - tracks walk thru present radiotap args
|
|
* @rtheader: pointer to the radiotap header we are walking through
|
|
* @max_length: length of radiotap header in cpu byte ordering
|
|
* @this_arg_index: IEEE80211_RADIOTAP_... index of current arg
|
|
* @this_arg: pointer to current radiotap arg
|
|
* @arg_index: internal next argument index
|
|
* @arg: internal next argument pointer
|
|
* @next_bitmap: internal pointer to next present u32
|
|
* @bitmap_shifter: internal shifter for curr u32 bitmap, b0 set == arg present
|
|
*/
|
|
|
|
struct ieee80211_radiotap_iterator {
|
|
struct ieee80211_radiotap_header *rtheader;
|
|
int max_length;
|
|
int this_arg_index;
|
|
unsigned char *this_arg;
|
|
|
|
int arg_index;
|
|
unsigned char *arg;
|
|
uint32_t *next_bitmap;
|
|
uint32_t bitmap_shifter;
|
|
};
|
|
|
|
extern int ieee80211_radiotap_iterator_init(
|
|
struct ieee80211_radiotap_iterator *iterator,
|
|
struct ieee80211_radiotap_header *radiotap_header,
|
|
int max_length);
|
|
|
|
extern int ieee80211_radiotap_iterator_next(
|
|
struct ieee80211_radiotap_iterator *iterator);
|
|
|
|
#endif /* __RADIOTAP_ITER_H */
|