finally move buildroot-ng to trunk
[openwrt/staging/jogo.git] / package / broadcom-wl / src / wlc / include / wlutils.h
1 /*
2 * Broadcom wireless network adapter utility functions
3 *
4 * Copyright 2006, Broadcom Corporation
5 * All Rights Reserved.
6 *
7 * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
8 * KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
9 * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
10 * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
11 *
12 * $Id: wlutils.h,v 1.1.1.12 2006/02/27 03:43:20 honor Exp $
13 */
14
15 #ifndef _wlutils_h_
16 #define _wlutils_h_
17
18 #include <typedefs.h>
19 #include <wlioctl.h>
20
21 /*
22 * Pass a wlioctl request to the specified interface.
23 * @param name interface name
24 * @param cmd WLC_GET_MAGIC <= cmd < WLC_LAST
25 * @param buf buffer for passing in and/or receiving data
26 * @param len length of buf
27 * @return >= 0 if successful or < 0 otherwise
28 */
29 extern int wl_ioctl(char *name, int cmd, void *buf, int len);
30
31 /*
32 * Probe the specified interface.
33 * @param name interface name
34 * @return >= 0 if a Broadcom wireless device or < 0 otherwise
35 */
36 extern int wl_probe(char *name);
37
38 extern int wl_iovar_set(char *ifname, char *iovar, void *param, int paramlen);
39 extern int wl_iovar_get(char *ifname, char *iovar, void *bufptr, int buflen);
40 /*
41 * Set/Get named variable.
42 * @param ifname interface name
43 * @param iovar variable name
44 * @param param input param value/buffer
45 * @param paramlen input param value/buffer length
46 * @param bufptr io buffer
47 * @param buflen io buffer length
48 * @param val val or val pointer for int routines
49 * @return success == 0, failure != 0
50 */
51 /*
52 * set named driver variable to int value
53 * calling example: wl_iovar_setint(ifname, "arate", rate)
54 */
55 static inline int
56 wl_iovar_setint(char *ifname, char *iovar, int val)
57 {
58 return wl_iovar_set(ifname, iovar, &val, sizeof(val));
59 }
60
61 /*
62 * get named driver variable to int value and return error indication
63 * calling example: wl_iovar_getint(ifname, "arate", &rate)
64 */
65 static inline int
66 wl_iovar_getint(char *ifname, char *iovar, int *val)
67 {
68 return wl_iovar_get(ifname, iovar, val, sizeof(int));
69 }
70
71 /*
72 * Set/Get named variable indexed by BSS Configuration
73 * @param ifname interface name
74 * @param iovar variable name
75 * @param bssidx bsscfg index
76 * @param param input param value/buffer
77 * @param paramlen input param value/buffer length
78 * @param bufptr io buffer
79 * @param buflen io buffer length
80 * @param val val or val pointer for int routines
81 * @return success == 0, failure != 0
82 */
83 extern int wl_bssiovar_get(char *ifname, char *iovar, int bssidx, void *outbuf, int len);
84 extern int wl_bssiovar_set(char *ifname, char *iovar, int bssidx, void *param, int paramlen);
85 /*
86 * set named & bss indexed driver variable to int value
87 */
88 static inline int
89 wl_bssiovar_setint(char *ifname, char *iovar, int bssidx, int val)
90 {
91 return wl_bssiovar_set(ifname, iovar, bssidx, &val, sizeof(int));
92 }
93
94 static inline int
95 wl_bssiovar_getint(char *ifname, char *iovar, int bssidx, int *val)
96 {
97 return wl_bssiovar_get(ifname, iovar, bssidx, val, sizeof(int));
98 }
99
100 extern int wl_bssiovar_setint(char *ifname, char *iovar, int bssidx, int val);
101
102 #endif /* _wlutils_h_ */