| /* |
| * Radiotap parser |
| * |
| * Copyright 2007 Andy Green <andy@warmcat.com> |
| * |
| * This program is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License version 2 as |
| * published by the Free Software Foundation. |
| * |
| * Alternatively, this software may be distributed under the terms of BSD |
| * license. |
| * |
| * See README and COPYING for more details. |
| */ |
| |
| #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 */ |