Disconnect hostapd from building in base
[dragonfly.git] / contrib / hostapd / src / utils / radiotap_iter.h
CommitLineData
4781064b
JM
1/*
2 * Radiotap parser
3 *
4 * Copyright 2007 Andy Green <andy@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
a875087d
JL
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
36struct 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
48extern int ieee80211_radiotap_iterator_init(
49 struct ieee80211_radiotap_iterator *iterator,
50 struct ieee80211_radiotap_header *radiotap_header,
51 int max_length);
52
53extern int ieee80211_radiotap_iterator_next(
54 struct ieee80211_radiotap_iterator *iterator);
55
56#endif /* __RADIOTAP_ITER_H */