xref: /freebsd/contrib/wpa/src/fst/fst_internal.h (revision b626f5a73a48f44a31a200291b141e1da408a2ff)
1*325151a3SRui Paulo /*
2*325151a3SRui Paulo  * FST module - auxiliary definitions
3*325151a3SRui Paulo  * Copyright (c) 2014, Qualcomm Atheros, Inc.
4*325151a3SRui Paulo  *
5*325151a3SRui Paulo  * This software may be distributed under the terms of the BSD license.
6*325151a3SRui Paulo  * See README for more details.
7*325151a3SRui Paulo  */
8*325151a3SRui Paulo 
9*325151a3SRui Paulo #ifndef FST_INTERNAL_H
10*325151a3SRui Paulo #define FST_INTERNAL_H
11*325151a3SRui Paulo 
12*325151a3SRui Paulo #include "utils/includes.h"
13*325151a3SRui Paulo #include "utils/common.h"
14*325151a3SRui Paulo #include "common/defs.h"
15*325151a3SRui Paulo #include "common/ieee802_11_defs.h"
16*325151a3SRui Paulo #include "fst/fst_iface.h"
17*325151a3SRui Paulo #include "fst/fst_group.h"
18*325151a3SRui Paulo #include "fst/fst_session.h"
19*325151a3SRui Paulo 
20*325151a3SRui Paulo #define fst_printf(level, format, ...) \
21*325151a3SRui Paulo 	wpa_printf((level), "FST: " format, ##__VA_ARGS__)
22*325151a3SRui Paulo 
23*325151a3SRui Paulo #define fst_printf_group(group, level, format, ...) \
24*325151a3SRui Paulo 	wpa_printf((level), "FST: %s: " format, \
25*325151a3SRui Paulo 		   fst_group_get_id(group), ##__VA_ARGS__)
26*325151a3SRui Paulo 
27*325151a3SRui Paulo #define fst_printf_iface(iface, level, format, ...) \
28*325151a3SRui Paulo 	fst_printf_group(fst_iface_get_group(iface), (level), "%s: " format, \
29*325151a3SRui Paulo 			 fst_iface_get_name(iface), ##__VA_ARGS__)
30*325151a3SRui Paulo 
31*325151a3SRui Paulo enum mb_band_id fst_hw_mode_to_band(enum hostapd_hw_mode mode);
32*325151a3SRui Paulo 
33*325151a3SRui Paulo struct fst_ctrl_handle {
34*325151a3SRui Paulo 	struct fst_ctrl ctrl;
35*325151a3SRui Paulo 	struct dl_list global_ctrls_lentry;
36*325151a3SRui Paulo };
37*325151a3SRui Paulo 
38*325151a3SRui Paulo extern struct dl_list fst_global_ctrls_list;
39*325151a3SRui Paulo 
40*325151a3SRui Paulo #define foreach_fst_ctrl_call(clb, ...) \
41*325151a3SRui Paulo 	do { \
42*325151a3SRui Paulo 		struct fst_ctrl_handle *__fst_ctrl_h; \
43*325151a3SRui Paulo 		dl_list_for_each(__fst_ctrl_h, &fst_global_ctrls_list, \
44*325151a3SRui Paulo 			struct fst_ctrl_handle, global_ctrls_lentry) \
45*325151a3SRui Paulo 			if (__fst_ctrl_h->ctrl.clb) \
46*325151a3SRui Paulo 				__fst_ctrl_h->ctrl.clb(__VA_ARGS__);\
47*325151a3SRui Paulo 	} while (0)
48*325151a3SRui Paulo 
49*325151a3SRui Paulo #endif /* FST_INTERNAL_H */
50