Home | History | Annotate | Download | only in utils
      1 /*
      2  * Radiotap parser
      3  *
      4  * Copyright 2007		Andy Green <andy (at) warmcat.com>
      5  *
      6  * This program is free software; you can redistribute it and/or modify
      7  * it under the terms of the GNU General Public License version 2 as
      8  * published by the Free Software Foundation.
      9  *
     10  * Alternatively, this software may be distributed under the terms of BSD
     11  * license.
     12  *
     13  * See README and COPYING for more details.
     14  */
     15 
     16 #ifndef __RADIOTAP_ITER_H
     17 #define __RADIOTAP_ITER_H
     18 
     19 #include "radiotap.h"
     20 
     21 /* Radiotap header iteration
     22  *   implemented in radiotap.c
     23  */
     24 /**
     25  * struct ieee80211_radiotap_iterator - tracks walk thru present radiotap args
     26  * @rtheader: pointer to the radiotap header we are walking through
     27  * @max_length: length of radiotap header in cpu byte ordering
     28  * @this_arg_index: IEEE80211_RADIOTAP_... index of current arg
     29  * @this_arg: pointer to current radiotap arg
     30  * @arg_index: internal next argument index
     31  * @arg: internal next argument pointer
     32  * @next_bitmap: internal pointer to next present u32
     33  * @bitmap_shifter: internal shifter for curr u32 bitmap, b0 set == arg present
     34  */
     35 
     36 struct ieee80211_radiotap_iterator {
     37 	struct ieee80211_radiotap_header *rtheader;
     38 	int max_length;
     39 	int this_arg_index;
     40 	unsigned char *this_arg;
     41 
     42 	int arg_index;
     43 	unsigned char *arg;
     44 	uint32_t *next_bitmap;
     45 	uint32_t bitmap_shifter;
     46 };
     47 
     48 extern int ieee80211_radiotap_iterator_init(
     49    struct ieee80211_radiotap_iterator *iterator,
     50    struct ieee80211_radiotap_header *radiotap_header,
     51    int max_length);
     52 
     53 extern int ieee80211_radiotap_iterator_next(
     54    struct ieee80211_radiotap_iterator *iterator);
     55 
     56 #endif /* __RADIOTAP_ITER_H */
     57