blob: c8285d011671e907c1fc319c2441da9b2fca8f2a [file] [log] [blame]
The Android Open Source Projecte943f2f2008-12-17 18:04:04 -08001<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml">
3<head>
4<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
5<title>Doxygen-Generated Content</title>
6<link href="doxygen.css" rel="stylesheet" type="text/css" />
7<style type="text/css">
8<!--
9.navigation {
10 display: none;
11}
12-->
13</style>
14</head>
15<body>
16<!-- Generated by Doxygen 1.5.6 -->
17<div class="navigation" id="top">
18 <div class="tabs">
19 <ul>
20 <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
21 <li><a href="namespaces.html"><span>Namespaces</span></a></li>
22 <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
23 <li class="current"><a href="files.html"><span>Files</span></a></li>
24 </ul>
25 </div>
26</div>
27<div class="contents">
28<h1>wifi.h File Reference</h1>
29<p>
30<a href="wifi_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
31<tr><td></td></tr>
32<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
33<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="wifi_8h.html#ef0be2b5d0603acb8e0ab99051969bb7">wifi_load_driver</a> ()</td></tr>
34
35<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Load the Wi-Fi driver. <a href="#ef0be2b5d0603acb8e0ab99051969bb7"></a><br></td></tr>
36<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="wifi_8h.html#a0c054da650a0162e40f327eb05679cb">wifi_unload_driver</a> ()</td></tr>
37
38<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Unload the Wi-Fi driver. <a href="#a0c054da650a0162e40f327eb05679cb"></a><br></td></tr>
39<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="wifi_8h.html#3372e235a7899484912d7f85887e8a47">wifi_start_supplicant</a> ()</td></tr>
40
41<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Start supplicant. <a href="#3372e235a7899484912d7f85887e8a47"></a><br></td></tr>
42<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="wifi_8h.html#08b97e58f2909489f1f3d59fb31f2c19">wifi_stop_supplicant</a> ()</td></tr>
43
44<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Stop supplicant. <a href="#08b97e58f2909489f1f3d59fb31f2c19"></a><br></td></tr>
45<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="wifi_8h.html#d81473c3f314ba581e88bb9f1ae37904">wifi_connect_to_supplicant</a> ()</td></tr>
46
47<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Open a connection to supplicant. <a href="#d81473c3f314ba581e88bb9f1ae37904"></a><br></td></tr>
48<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="wifi_8h.html#a3f8c99b26cfd95e90012cae63ec4826">wifi_close_supplicant_connection</a> ()</td></tr>
49
50<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Close connection supplicant. <a href="#a3f8c99b26cfd95e90012cae63ec4826"></a><br></td></tr>
51<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="wifi_8h.html#656495e1beea1e39a144cdff776cdb96">wifi_wait_for_event</a> (char *buf, size_t len)</td></tr>
52
53<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="wifi_8h.html#656495e1beea1e39a144cdff776cdb96" title="wifi_wait_for_event() performs a blocking call to get a Wi-Fi event and returns a...">wifi_wait_for_event()</a> performs a blocking call to get a Wi-Fi event and returns a string representing a Wi-Fi event when it occurs. <a href="#656495e1beea1e39a144cdff776cdb96"></a><br></td></tr>
54<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="wifi_8h.html#b84f92e035b7bc6a5d669b3738c93e32">wifi_command</a> (const char *command, char *reply, size_t *reply_len)</td></tr>
55
56<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="wifi_8h.html#b84f92e035b7bc6a5d669b3738c93e32" title="wifi_command() issues a command to the Wi-Fi driver.">wifi_command()</a> issues a command to the Wi-Fi driver. <a href="#b84f92e035b7bc6a5d669b3738c93e32"></a><br></td></tr>
57<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="wifi_8h.html#c6876a5403aaeee922d000043a47b25a">do_dhcp_request</a> (int *ipaddr, int *gateway, int *mask, int *dns1, int *dns2, int *server, int *lease)</td></tr>
58
59<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="wifi_8h.html#c6876a5403aaeee922d000043a47b25a" title="do_dhcp_request() issues a dhcp request and returns the acquired information.">do_dhcp_request()</a> issues a dhcp request and returns the acquired information. <a href="#c6876a5403aaeee922d000043a47b25a"></a><br></td></tr>
60<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="wifi_8h.html#8f25ea8ec313efb45affe65fd7c108ee">get_dhcp_error_string</a> ()</td></tr>
61
62<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the error string of the last <a class="el" href="wifi_8h.html#c6876a5403aaeee922d000043a47b25a" title="do_dhcp_request() issues a dhcp request and returns the acquired information.">do_dhcp_request()</a>. <a href="#8f25ea8ec313efb45affe65fd7c108ee"></a><br></td></tr>
63</table>
64<hr><h2>Function Documentation</h2>
65<a class="anchor" name="c6876a5403aaeee922d000043a47b25a"></a><!-- doxytag: member="wifi.h::do_dhcp_request" ref="c6876a5403aaeee922d000043a47b25a" args="(int *ipaddr, int *gateway, int *mask, int *dns1, int *dns2, int *server, int *lease)" -->
66<div class="memitem">
67<div class="memproto">
68 <table class="memname">
69 <tr>
70 <td class="memname">int do_dhcp_request </td>
71 <td>(</td>
72 <td class="paramtype">int *&nbsp;</td>
73 <td class="paramname"> <em>ipaddr</em>, </td>
74 </tr>
75 <tr>
76 <td class="paramkey"></td>
77 <td></td>
78 <td class="paramtype">int *&nbsp;</td>
79 <td class="paramname"> <em>gateway</em>, </td>
80 </tr>
81 <tr>
82 <td class="paramkey"></td>
83 <td></td>
84 <td class="paramtype">int *&nbsp;</td>
85 <td class="paramname"> <em>mask</em>, </td>
86 </tr>
87 <tr>
88 <td class="paramkey"></td>
89 <td></td>
90 <td class="paramtype">int *&nbsp;</td>
91 <td class="paramname"> <em>dns1</em>, </td>
92 </tr>
93 <tr>
94 <td class="paramkey"></td>
95 <td></td>
96 <td class="paramtype">int *&nbsp;</td>
97 <td class="paramname"> <em>dns2</em>, </td>
98 </tr>
99 <tr>
100 <td class="paramkey"></td>
101 <td></td>
102 <td class="paramtype">int *&nbsp;</td>
103 <td class="paramname"> <em>server</em>, </td>
104 </tr>
105 <tr>
106 <td class="paramkey"></td>
107 <td></td>
108 <td class="paramtype">int *&nbsp;</td>
109 <td class="paramname"> <em>lease</em></td><td>&nbsp;</td>
110 </tr>
111 <tr>
112 <td></td>
113 <td>)</td>
114 <td></td><td></td><td></td>
115 </tr>
116 </table>
117</div>
118<div class="memdoc">
119
120<p>
121<a class="el" href="wifi_8h.html#c6876a5403aaeee922d000043a47b25a" title="do_dhcp_request() issues a dhcp request and returns the acquired information.">do_dhcp_request()</a> issues a dhcp request and returns the acquired information.
122<p>
123All IPV4 addresses/mask are in network byte order.<p>
124<dl compact><dt><b>Parameters:</b></dt><dd>
125 <table border="0" cellspacing="2" cellpadding="0">
126 <tr><td valign="top"></td><td valign="top"><em>ipaddr</em>&nbsp;</td><td>return the assigned IPV4 address </td></tr>
127 <tr><td valign="top"></td><td valign="top"><em>gateway</em>&nbsp;</td><td>return the gateway being used </td></tr>
128 <tr><td valign="top"></td><td valign="top"><em>mask</em>&nbsp;</td><td>return the IPV4 mask </td></tr>
129 <tr><td valign="top"></td><td valign="top"><em>dns1</em>&nbsp;</td><td>return the IPV4 address of a DNS server </td></tr>
130 <tr><td valign="top"></td><td valign="top"><em>dns2</em>&nbsp;</td><td>return the IPV4 address of a DNS server </td></tr>
131 <tr><td valign="top"></td><td valign="top"><em>server</em>&nbsp;</td><td>return the IPV4 address of DHCP server </td></tr>
132 <tr><td valign="top"></td><td valign="top"><em>lease</em>&nbsp;</td><td>return the length of lease in seconds.</td></tr>
133 </table>
134</dl>
135<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 if successful, &lt; 0 if error. </dd></dl>
136
137</div>
138</div><p>
139<a class="anchor" name="8f25ea8ec313efb45affe65fd7c108ee"></a><!-- doxytag: member="wifi.h::get_dhcp_error_string" ref="8f25ea8ec313efb45affe65fd7c108ee" args="()" -->
140<div class="memitem">
141<div class="memproto">
142 <table class="memname">
143 <tr>
144 <td class="memname">const char* get_dhcp_error_string </td>
145 <td>(</td>
146 <td class="paramname"> </td>
147 <td>&nbsp;)&nbsp;</td>
148 <td></td>
149 </tr>
150 </table>
151</div>
152<div class="memdoc">
153
154<p>
155Return the error string of the last <a class="el" href="wifi_8h.html#c6876a5403aaeee922d000043a47b25a" title="do_dhcp_request() issues a dhcp request and returns the acquired information.">do_dhcp_request()</a>.
156<p>
157
158</div>
159</div><p>
160<a class="anchor" name="a3f8c99b26cfd95e90012cae63ec4826"></a><!-- doxytag: member="wifi.h::wifi_close_supplicant_connection" ref="a3f8c99b26cfd95e90012cae63ec4826" args="()" -->
161<div class="memitem">
162<div class="memproto">
163 <table class="memname">
164 <tr>
165 <td class="memname">void wifi_close_supplicant_connection </td>
166 <td>(</td>
167 <td class="paramname"> </td>
168 <td>&nbsp;)&nbsp;</td>
169 <td></td>
170 </tr>
171 </table>
172</div>
173<div class="memdoc">
174
175<p>
176Close connection supplicant.
177<p>
178<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success, &lt; 0 on failure. </dd></dl>
179
180</div>
181</div><p>
182<a class="anchor" name="b84f92e035b7bc6a5d669b3738c93e32"></a><!-- doxytag: member="wifi.h::wifi_command" ref="b84f92e035b7bc6a5d669b3738c93e32" args="(const char *command, char *reply, size_t *reply_len)" -->
183<div class="memitem">
184<div class="memproto">
185 <table class="memname">
186 <tr>
187 <td class="memname">int wifi_command </td>
188 <td>(</td>
189 <td class="paramtype">const char *&nbsp;</td>
190 <td class="paramname"> <em>command</em>, </td>
191 </tr>
192 <tr>
193 <td class="paramkey"></td>
194 <td></td>
195 <td class="paramtype">char *&nbsp;</td>
196 <td class="paramname"> <em>reply</em>, </td>
197 </tr>
198 <tr>
199 <td class="paramkey"></td>
200 <td></td>
201 <td class="paramtype">size_t *&nbsp;</td>
202 <td class="paramname"> <em>reply_len</em></td><td>&nbsp;</td>
203 </tr>
204 <tr>
205 <td></td>
206 <td>)</td>
207 <td></td><td></td><td></td>
208 </tr>
209 </table>
210</div>
211<div class="memdoc">
212
213<p>
214<a class="el" href="wifi_8h.html#b84f92e035b7bc6a5d669b3738c93e32" title="wifi_command() issues a command to the Wi-Fi driver.">wifi_command()</a> issues a command to the Wi-Fi driver.
215<p>
216Android extends the standard commands listed at /link <a href="http://hostap.epitest.fi/wpa_supplicant/devel/ctrl_iface_page.html">http://hostap.epitest.fi/wpa_supplicant/devel/ctrl_iface_page.html</a> to include support for sending commands to the driver:<p>
217<table border="2" cellspacing="2" cellpadding="2">
218<tr>
219<td><b>Command / Command summary</b> </td><td><b>Form of Response</b> </td><td><b>Processing</b> </td></tr>
220<tr>
221<td>DRIVER START<br>
222&nbsp;&nbsp;Turn on Wi-Fi Hardware </td><td>OK if successful </td><td>OK ? true : false </td></tr>
223<tr>
224<td>DRIVER STOP<br>
225&nbsp;&nbsp;Turn off Wi-Fi hardware </td><td>OK if successful </td><td>OK ? true : false </td></tr>
226<tr>
227<td>DRIVER RSSI<br>
228&nbsp;&nbsp;Return received signal strength indicator in -db for current AP </td><td>&lt;ssid&gt; Rssi xx </td><td>*s *s d", &amp;rssi </td></tr>
229<tr>
230<td>DRIVER LINKSPEED<br>
231&nbsp;&nbsp;Return link speed in MBPS </td><td>LinkSpeed xx </td><td>*s d", &amp;linkspd </td></tr>
232<tr>
233<td>DRIVER MACADDR<br>
234&nbsp;&nbsp;Return mac address of the station </td><td>Macaddr = xx.xx.xx.xx.xx.xx </td><td>"%*s = %s", &amp;macadr </td></tr>
235<tr>
236<td>DRIVER SCAN-ACTIVE<br>
237&nbsp;&nbsp;Set scan type to active </td><td>"OK" if successful </td><td>"OK" ? true : false </td></tr>
238<tr>
239<td>DRIVER SCAN-PASSIVE<br>
240&nbsp;&nbsp;Set scan type to passive </td><td>"OK" if successful </td><td>"OK" ? true : false </td></tr>
241</table>
242<p>
243See libs/android_runtime/android_net_wifi_Wifi.cpp for more information describing how these and other commands are invoked.<p>
244<dl compact><dt><b>Parameters:</b></dt><dd>
245 <table border="0" cellspacing="2" cellpadding="0">
246 <tr><td valign="top"></td><td valign="top"><em>command</em>&nbsp;</td><td>is the string command </td></tr>
247 <tr><td valign="top"></td><td valign="top"><em>reply</em>&nbsp;</td><td>is a buffer to receive a reply string </td></tr>
248 <tr><td valign="top"></td><td valign="top"><em>reply_len</em>&nbsp;</td><td>on entry, this is the maximum length of the reply buffer. On exit, the number of bytes in the reply buffer.</td></tr>
249 </table>
250</dl>
251<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 if successful, &lt; 0 if an error. </dd></dl>
252
253</div>
254</div><p>
255<a class="anchor" name="d81473c3f314ba581e88bb9f1ae37904"></a><!-- doxytag: member="wifi.h::wifi_connect_to_supplicant" ref="d81473c3f314ba581e88bb9f1ae37904" args="()" -->
256<div class="memitem">
257<div class="memproto">
258 <table class="memname">
259 <tr>
260 <td class="memname">int wifi_connect_to_supplicant </td>
261 <td>(</td>
262 <td class="paramname"> </td>
263 <td>&nbsp;)&nbsp;</td>
264 <td></td>
265 </tr>
266 </table>
267</div>
268<div class="memdoc">
269
270<p>
271Open a connection to supplicant.
272<p>
273<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success, &lt; 0 on failure. </dd></dl>
274
275</div>
276</div><p>
277<a class="anchor" name="ef0be2b5d0603acb8e0ab99051969bb7"></a><!-- doxytag: member="wifi.h::wifi_load_driver" ref="ef0be2b5d0603acb8e0ab99051969bb7" args="()" -->
278<div class="memitem">
279<div class="memproto">
280 <table class="memname">
281 <tr>
282 <td class="memname">int wifi_load_driver </td>
283 <td>(</td>
284 <td class="paramname"> </td>
285 <td>&nbsp;)&nbsp;</td>
286 <td></td>
287 </tr>
288 </table>
289</div>
290<div class="memdoc">
291
292<p>
293Load the Wi-Fi driver.
294<p>
295<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success, &lt; 0 on failure. </dd></dl>
296
297</div>
298</div><p>
299<a class="anchor" name="3372e235a7899484912d7f85887e8a47"></a><!-- doxytag: member="wifi.h::wifi_start_supplicant" ref="3372e235a7899484912d7f85887e8a47" args="()" -->
300<div class="memitem">
301<div class="memproto">
302 <table class="memname">
303 <tr>
304 <td class="memname">int wifi_start_supplicant </td>
305 <td>(</td>
306 <td class="paramname"> </td>
307 <td>&nbsp;)&nbsp;</td>
308 <td></td>
309 </tr>
310 </table>
311</div>
312<div class="memdoc">
313
314<p>
315Start supplicant.
316<p>
317<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success, &lt; 0 on failure. </dd></dl>
318
319</div>
320</div><p>
321<a class="anchor" name="08b97e58f2909489f1f3d59fb31f2c19"></a><!-- doxytag: member="wifi.h::wifi_stop_supplicant" ref="08b97e58f2909489f1f3d59fb31f2c19" args="()" -->
322<div class="memitem">
323<div class="memproto">
324 <table class="memname">
325 <tr>
326 <td class="memname">int wifi_stop_supplicant </td>
327 <td>(</td>
328 <td class="paramname"> </td>
329 <td>&nbsp;)&nbsp;</td>
330 <td></td>
331 </tr>
332 </table>
333</div>
334<div class="memdoc">
335
336<p>
337Stop supplicant.
338<p>
339<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success, &lt; 0 on failure. </dd></dl>
340
341</div>
342</div><p>
343<a class="anchor" name="a0c054da650a0162e40f327eb05679cb"></a><!-- doxytag: member="wifi.h::wifi_unload_driver" ref="a0c054da650a0162e40f327eb05679cb" args="()" -->
344<div class="memitem">
345<div class="memproto">
346 <table class="memname">
347 <tr>
348 <td class="memname">int wifi_unload_driver </td>
349 <td>(</td>
350 <td class="paramname"> </td>
351 <td>&nbsp;)&nbsp;</td>
352 <td></td>
353 </tr>
354 </table>
355</div>
356<div class="memdoc">
357
358<p>
359Unload the Wi-Fi driver.
360<p>
361<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success, &lt; 0 on failure. </dd></dl>
362
363</div>
364</div><p>
365<a class="anchor" name="656495e1beea1e39a144cdff776cdb96"></a><!-- doxytag: member="wifi.h::wifi_wait_for_event" ref="656495e1beea1e39a144cdff776cdb96" args="(char *buf, size_t len)" -->
366<div class="memitem">
367<div class="memproto">
368 <table class="memname">
369 <tr>
370 <td class="memname">int wifi_wait_for_event </td>
371 <td>(</td>
372 <td class="paramtype">char *&nbsp;</td>
373 <td class="paramname"> <em>buf</em>, </td>
374 </tr>
375 <tr>
376 <td class="paramkey"></td>
377 <td></td>
378 <td class="paramtype">size_t&nbsp;</td>
379 <td class="paramname"> <em>len</em></td><td>&nbsp;</td>
380 </tr>
381 <tr>
382 <td></td>
383 <td>)</td>
384 <td></td><td></td><td></td>
385 </tr>
386 </table>
387</div>
388<div class="memdoc">
389
390<p>
391<a class="el" href="wifi_8h.html#656495e1beea1e39a144cdff776cdb96" title="wifi_wait_for_event() performs a blocking call to get a Wi-Fi event and returns a...">wifi_wait_for_event()</a> performs a blocking call to get a Wi-Fi event and returns a string representing a Wi-Fi event when it occurs.
392<p>
393<dl compact><dt><b>Parameters:</b></dt><dd>
394 <table border="0" cellspacing="2" cellpadding="0">
395 <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>is the buffer that receives the event </td></tr>
396 <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>is the maximum length of the buffer</td></tr>
397 </table>
398</dl>
399<dl class="return" compact><dt><b>Returns:</b></dt><dd>number of bytes in buffer, 0 if no event (for instance, no connection), and less than 0 if there is an error. </dd></dl>
400
401</div>
402</div><p>
403</div>
404</body>
405</html>