1 /* Copyright (c) 2003,2004 Benedikt Meurer <benny@xfce.org>
2  *
3  * Redistribution and use in source and binary forms, with or without
4  * modification, are permitted provided that the following conditions
5  * are met:
6  *
7  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
14  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
15  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
16  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
17  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
18  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
19  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
20  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
22  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23  */
24 
25 #ifndef __WI_H__
26 #define __WI_H__
27 
28 #define WI_MAXSTRLEN  (512)
29 
30 struct wi_device;
31 
32 struct wi_stats
33 {
34   char  ws_netname[WI_MAXSTRLEN]; /* current SSID */
35   int   ws_quality;               /* current signal quality (percent or dBm) */
36   char  ws_qunit[4];              /* % or dBm ? */
37   int   ws_rate;                  /* current rate (Mbps) */
38   char  ws_vendor[WI_MAXSTRLEN];  /* device vendor name */
39 };
40 
41 enum
42 {
43   WI_OK         =  0,  /* everything ok */
44   WI_NOCARRIER  = -1,  /* no carrier signal, some of the stats may be invalid */
45   WI_NOSUCHDEV  = -2,  /* device is currently not attached */
46   WI_INVAL      = -3,  /* invalid parameters given */
47 };
48 
49 extern struct wi_device* wi_open(const char *);
50 extern void wi_close(struct wi_device *);
51 extern int wi_query(struct wi_device *, struct wi_stats *);
52 extern const char *wi_strerror(int);
53 
54 #endif  /* !__WI_H__ */
55