Merge wpa_supplicant and hostapd driver wrapper implementations
[wpasupplicant] / src / drivers / drivers.c
1 /*
2  * Driver interface list
3  * Copyright (c) 2004-2005, Jouni Malinen <j@w1.fi>
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 as
7  * published by the Free Software Foundation.
8  *
9  * Alternatively, this software may be distributed under the terms of BSD
10  * license.
11  *
12  * See README and COPYING for more details.
13  */
14
15 #include "includes.h"
16
17
18 #ifdef CONFIG_DRIVER_WEXT
19 extern struct wpa_driver_ops wpa_driver_wext_ops; /* driver_wext.c */
20 #endif /* CONFIG_DRIVER_WEXT */
21 #ifdef CONFIG_DRIVER_NL80211
22 extern struct wpa_driver_ops wpa_driver_nl80211_ops; /* driver_nl80211.c */
23 #endif /* CONFIG_DRIVER_NL80211 */
24 #ifdef CONFIG_DRIVER_HOSTAP
25 extern struct wpa_driver_ops wpa_driver_hostap_ops; /* driver_hostap.c */
26 #endif /* CONFIG_DRIVER_HOSTAP */
27 #ifdef CONFIG_DRIVER_PRISM54
28 extern struct wpa_driver_ops wpa_driver_prism54_ops; /* driver_prism54.c */
29 #endif /* CONFIG_DRIVER_PRISM54 */
30 #ifdef CONFIG_DRIVER_HERMES
31 extern struct wpa_driver_ops wpa_driver_hermes_ops; /* driver_hermes.c */
32 #endif /* CONFIG_DRIVER_HERMES */
33 #ifdef CONFIG_DRIVER_MADWIFI
34 extern struct wpa_driver_ops wpa_driver_madwifi_ops; /* driver_madwifi.c */
35 #endif /* CONFIG_DRIVER_MADWIFI */
36 #ifdef CONFIG_DRIVER_ATMEL
37 extern struct wpa_driver_ops wpa_driver_atmel_ops; /* driver_atmel.c */
38 #endif /* CONFIG_DRIVER_ATMEL */
39 #ifdef CONFIG_DRIVER_NDISWRAPPER
40 /* driver_ndiswrapper.c */
41 extern struct wpa_driver_ops wpa_driver_ndiswrapper_ops;
42 #endif /* CONFIG_DRIVER_NDISWRAPPER */
43 #ifdef CONFIG_DRIVER_BROADCOM
44 extern struct wpa_driver_ops wpa_driver_broadcom_ops; /* driver_broadcom.c */
45 #endif /* CONFIG_DRIVER_BROADCOM */
46 #ifdef CONFIG_DRIVER_IPW
47 extern struct wpa_driver_ops wpa_driver_ipw_ops; /* driver_ipw.c */
48 #endif /* CONFIG_DRIVER_IPW */
49 #ifdef CONFIG_DRIVER_BSD
50 extern struct wpa_driver_ops wpa_driver_bsd_ops; /* driver_bsd.c */
51 #endif /* CONFIG_DRIVER_BSD */
52 #ifdef CONFIG_DRIVER_NDIS
53 extern struct wpa_driver_ops wpa_driver_ndis_ops; /* driver_ndis.c */
54 #endif /* CONFIG_DRIVER_NDIS */
55 #ifdef CONFIG_DRIVER_WIRED
56 extern struct wpa_driver_ops wpa_driver_wired_ops; /* driver_wired.c */
57 #endif /* CONFIG_DRIVER_WIRED */
58 #ifdef CONFIG_DRIVER_TEST
59 extern struct wpa_driver_ops wpa_driver_test_ops; /* driver_test.c */
60 #endif /* CONFIG_DRIVER_TEST */
61 #ifdef CONFIG_DRIVER_RALINK
62 extern struct wpa_driver_ops wpa_driver_ralink_ops; /* driver_ralink.c */
63 #endif /* CONFIG_DRIVER_RALINK */
64 #ifdef CONFIG_DRIVER_OSX
65 extern struct wpa_driver_ops wpa_driver_osx_ops; /* driver_osx.m */
66 #endif /* CONFIG_DRIVER_OSX */
67 #ifdef CONFIG_DRIVER_PS3
68 extern struct wpa_driver_ops wpa_driver_ps3_ops; /* driver_ps3.c */
69 #endif /* CONFIG_DRIVER_PS3 */
70 #ifdef CONFIG_DRIVER_IPHONE
71 extern struct wpa_driver_ops wpa_driver_iphone_ops; /* driver_iphone.m */
72 #endif /* CONFIG_DRIVER_IPHONE */
73 #ifdef CONFIG_DRIVER_ROBOSWITCH
74 /* driver_roboswitch.c */
75 extern struct wpa_driver_ops wpa_driver_roboswitch_ops;
76 #endif /* CONFIG_DRIVER_ROBOSWITCH */
77 #ifdef CONFIG_DRIVER_ATHEROS
78 extern struct wpa_driver_ops wpa_driver_atheros_ops; /* driver_atheros.c */
79 #endif /* CONFIG_DRIVER_ATHEROS */
80 #ifdef CONFIG_DRIVER_NONE
81 extern struct wpa_driver_ops wpa_driver_none_ops; /* driver_none.c */
82 #endif /* CONFIG_DRIVER_NONE */
83 #ifdef CONFIG_AP
84 extern struct wpa_driver_ops ap_driver_ops; /* wpa_supplicant/ap.c */
85 #endif /* CONFIG_AP */
86
87
88 struct wpa_driver_ops *wpa_drivers[] =
89 {
90 #ifdef CONFIG_DRIVER_WEXT
91         &wpa_driver_wext_ops,
92 #endif /* CONFIG_DRIVER_WEXT */
93 #ifdef CONFIG_DRIVER_NL80211
94         &wpa_driver_nl80211_ops,
95 #endif /* CONFIG_DRIVER_NL80211 */
96 #ifdef CONFIG_DRIVER_HOSTAP
97         &wpa_driver_hostap_ops,
98 #endif /* CONFIG_DRIVER_HOSTAP */
99 #ifdef CONFIG_DRIVER_PRISM54
100         &wpa_driver_prism54_ops,
101 #endif /* CONFIG_DRIVER_PRISM54 */
102 #ifdef CONFIG_DRIVER_HERMES
103         &wpa_driver_hermes_ops,
104 #endif /* CONFIG_DRIVER_HERMES */
105 #ifdef CONFIG_DRIVER_MADWIFI
106         &wpa_driver_madwifi_ops,
107 #endif /* CONFIG_DRIVER_MADWIFI */
108 #ifdef CONFIG_DRIVER_ATMEL
109         &wpa_driver_atmel_ops,
110 #endif /* CONFIG_DRIVER_ATMEL */
111 #ifdef CONFIG_DRIVER_NDISWRAPPER
112         &wpa_driver_ndiswrapper_ops,
113 #endif /* CONFIG_DRIVER_NDISWRAPPER */
114 #ifdef CONFIG_DRIVER_BROADCOM
115         &wpa_driver_broadcom_ops,
116 #endif /* CONFIG_DRIVER_BROADCOM */
117 #ifdef CONFIG_DRIVER_IPW
118         &wpa_driver_ipw_ops,
119 #endif /* CONFIG_DRIVER_IPW */
120 #ifdef CONFIG_DRIVER_BSD
121         &wpa_driver_bsd_ops,
122 #endif /* CONFIG_DRIVER_BSD */
123 #ifdef CONFIG_DRIVER_NDIS
124         &wpa_driver_ndis_ops,
125 #endif /* CONFIG_DRIVER_NDIS */
126 #ifdef CONFIG_DRIVER_WIRED
127         &wpa_driver_wired_ops,
128 #endif /* CONFIG_DRIVER_WIRED */
129 #ifdef CONFIG_DRIVER_TEST
130         &wpa_driver_test_ops,
131 #endif /* CONFIG_DRIVER_TEST */
132 #ifdef CONFIG_DRIVER_RALINK
133         &wpa_driver_ralink_ops,
134 #endif /* CONFIG_DRIVER_RALINK */
135 #ifdef CONFIG_DRIVER_OSX
136         &wpa_driver_osx_ops,
137 #endif /* CONFIG_DRIVER_OSX */
138 #ifdef CONFIG_DRIVER_PS3
139         &wpa_driver_ps3_ops,
140 #endif /* CONFIG_DRIVER_PS3 */
141 #ifdef CONFIG_DRIVER_IPHONE
142         &wpa_driver_iphone_ops,
143 #endif /* CONFIG_DRIVER_IPHONE */
144 #ifdef CONFIG_DRIVER_ROBOSWITCH
145         &wpa_driver_roboswitch_ops,
146 #endif /* CONFIG_DRIVER_ROBOSWITCH */
147 #ifdef CONFIG_DRIVER_ATHEROS
148         &wpa_driver_atheros_ops,
149 #endif /* CONFIG_DRIVER_ATHEROS */
150 #ifdef CONFIG_DRIVER_NONE
151         &wpa_driver_none_ops,
152 #endif /* CONFIG_DRIVER_NONE */
153 #ifdef CONFIG_AP
154         &ap_driver_ops,
155 #endif /* CONFIG_AP */
156         NULL
157 };